Skip to content

Commit 92628c5

Browse files
Merge pull request #166 from wphillipmoore/release/1.1.6
release: 1.1.6
2 parents eedc44b + c335e5b commit 92628c5

27 files changed

Lines changed: 528 additions & 68 deletions

.github/workflows/add-to-project.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ jobs:
88
add-to-project:
99
runs-on: ubuntu-latest
1010
steps:
11-
- uses: actions/add-to-project@v1
11+
- uses: actions/add-to-project@v1.0.2
1212
with:
1313
project-url: https://github.com/users/wphillipmoore/projects/3
1414
github-token: ${{ secrets.PROJECT_TOKEN }}

.github/workflows/ci.yml

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,6 @@ name: CI - Test and Validate
22

33
on:
44
pull_request:
5-
push:
6-
branches:
7-
- develop
8-
- 'release/**'
95

106
permissions:
117
contents: read
@@ -16,7 +12,7 @@ concurrency:
1612

1713
jobs:
1814
docs-only:
19-
name: docs-only
15+
name: "ci: docs-only"
2016
runs-on: ubuntu-latest
2117
outputs:
2218
docs-only: ${{ steps.detect.outputs.docs-only }}
@@ -29,7 +25,7 @@ jobs:
2925
uses: wphillipmoore/standard-actions/actions/docs-only-detect@develop
3026

3127
standards-compliance:
32-
name: standards-compliance
28+
name: "ci: standards-compliance"
3329
runs-on: ubuntu-latest
3430
steps:
3531
- name: Checkout code
@@ -43,7 +39,7 @@ jobs:
4339
commit-cutoff-sha: "d103713"
4440

4541
dependency-audit:
46-
name: dependency-audit
42+
name: "ci: dependency-audit"
4743
runs-on: ubuntu-latest
4844
steps:
4945
- name: Checkout code
@@ -68,7 +64,7 @@ jobs:
6864
-B
6965
7066
release-gates:
71-
name: release-gates
67+
name: "release: gates"
7268
runs-on: ubuntu-latest
7369
steps:
7470
- name: Skip on non-PR events
@@ -106,7 +102,7 @@ jobs:
106102
main-version-command: git show origin/main:pom.xml | grep -m1 '<version>' | sed 's/.*<version>\(.*\)<\/version>.*/\1/'
107103

108104
test-and-validate:
109-
name: test-and-validate (${{ matrix.java-version }})
105+
name: "test: unit"
110106
runs-on: ubuntu-latest
111107
needs: docs-only
112108
strategy:
@@ -135,88 +131,99 @@ jobs:
135131
run: ./mvnw verify -B
136132

137133
codeql:
138-
name: codeql
134+
name: "security: codeql"
139135
runs-on: ubuntu-latest
140136
needs: docs-only
141-
if: needs.docs-only.outputs.docs-only != 'true'
142137
permissions:
143138
security-events: write
144139
steps:
140+
- name: Docs-only short-circuit
141+
if: needs.docs-only.outputs.docs-only == 'true'
142+
run: echo "Docs-only changes detected; skipping CodeQL."
143+
145144
- name: Checkout code
145+
if: needs.docs-only.outputs.docs-only != 'true'
146146
uses: actions/checkout@v6
147147

148148
- name: Run CodeQL analysis
149+
if: needs.docs-only.outputs.docs-only != 'true'
149150
uses: wphillipmoore/standard-actions/actions/security/codeql@develop
150151
with:
151152
language: java
152153

153154
trivy:
154-
name: trivy
155+
name: "security: trivy"
155156
runs-on: ubuntu-latest
156157
needs: docs-only
157-
if: needs.docs-only.outputs.docs-only != 'true'
158158
permissions:
159159
security-events: write
160160
steps:
161+
- name: Docs-only short-circuit
162+
if: needs.docs-only.outputs.docs-only == 'true'
163+
run: echo "Docs-only changes detected; skipping Trivy."
164+
161165
- name: Checkout code
166+
if: needs.docs-only.outputs.docs-only != 'true'
162167
uses: actions/checkout@v6
163168

164169
- name: Run Trivy vulnerability scan
170+
if: needs.docs-only.outputs.docs-only != 'true'
165171
uses: wphillipmoore/standard-actions/actions/security/trivy@develop
166172
with:
167173
scan-type: fs
168174

169175
semgrep:
170-
name: semgrep
176+
name: "security: semgrep"
171177
runs-on: ubuntu-latest
172178
needs: docs-only
173-
if: needs.docs-only.outputs.docs-only != 'true'
174179
permissions:
175180
security-events: write
176181
steps:
182+
- name: Docs-only short-circuit
183+
if: needs.docs-only.outputs.docs-only == 'true'
184+
run: echo "Docs-only changes detected; skipping Semgrep."
185+
177186
- name: Checkout code
187+
if: needs.docs-only.outputs.docs-only != 'true'
178188
uses: actions/checkout@v6
179189

180190
- name: Run Semgrep SAST scan
191+
if: needs.docs-only.outputs.docs-only != 'true'
181192
uses: wphillipmoore/standard-actions/actions/security/semgrep@develop
182193
with:
183194
language: java
184195

185196
integration-tests:
186-
name: integration-tests
197+
name: "test: integration"
187198
runs-on: ubuntu-latest
188199
needs: docs-only
189-
if: needs.docs-only.outputs.docs-only != 'true'
190200
steps:
191201
- name: Docs-only short-circuit
192202
if: needs.docs-only.outputs.docs-only == 'true'
193203
run: echo "Docs-only changes detected; skipping integration tests."
194204

195205
- name: Checkout code
206+
if: needs.docs-only.outputs.docs-only != 'true'
196207
uses: actions/checkout@v6
197208

198209
- name: Set up Java 17
210+
if: needs.docs-only.outputs.docs-only != 'true'
199211
uses: actions/setup-java@v5
200212
with:
201213
distribution: temurin
202214
java-version: "17"
203215
cache: maven
204216

205-
- name: Checkout mq-rest-admin-dev-environment
206-
uses: actions/checkout@v6
207-
with:
208-
repository: wphillipmoore/mq-rest-admin-dev-environment
209-
ref: develop
210-
path: .mq-rest-admin-dev-environment
211-
212217
- name: Setup MQ environment
213-
uses: ./.mq-rest-admin-dev-environment/.github/actions/setup-mq
218+
if: needs.docs-only.outputs.docs-only != 'true'
219+
uses: wphillipmoore/mq-rest-admin-dev-environment/.github/actions/setup-mq@main
214220
with:
215221
project-name: mq-rest-admin
216222
qm1-rest-port: "9453"
217223
qm2-rest-port: "9454"
218224

219225
- name: Run integration tests
226+
if: needs.docs-only.outputs.docs-only != 'true'
220227
env:
221228
MQ_REST_ADMIN_RUN_INTEGRATION: "1"
222229
run: ./mvnw verify -B

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ concurrency:
1616

1717
jobs:
1818
deploy:
19-
name: deploy
19+
name: "deploy: docs"
2020
runs-on: ubuntu-latest
2121
steps:
2222
- name: Checkout code

.github/workflows/publish.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ concurrency:
1717

1818
jobs:
1919
publish:
20-
name: publish
20+
name: "publish: release"
2121
runs-on: ubuntu-latest
2222
steps:
2323
- name: Checkout code

CHANGELOG.md

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,16 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/)
66
and this project adheres to [Semantic Versioning](https://semver.org/).
77

8-
## [1.1.5] - 2026-02-19
8+
## [1.1.6] - 2026-02-21
99

1010
### Bug fixes
1111

1212
- sync prepare_release.py ruff lint fixes from canonical (#122)
1313
- sync prepare_release.py empty changelog abort from canonical (#124)
1414
- sync shared tooling to v1.0.2
1515
- sync hook and lint scripts from standards-and-conventions (#135)
16+
- switch Maven Central publish wait to validated (#152)
17+
- update add-to-project action to v1.0.2 (#164)
1618

1719
### CI
1820

@@ -21,11 +23,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/).
2123
### Documentation
2224

2325
- rename mq-dev-environment references to mq-rest-admin-dev-environment (#136)
26+
- ban MEMORY.md usage in CLAUDE.md (#154)
27+
- ban heredocs in shell commands (#155)
2428

2529
### Features
2630

2731
- add canonical local validation script (#128)
2832
- add shared tooling sync from standard-tooling v1.0.0
33+
- add category prefixes to job names (#150)
34+
- adopt validate_local.sh dispatch architecture (#156)
2935

3036
### Refactoring
3137

CLAUDE.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,34 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
55
<!-- include: docs/standards-and-conventions.md -->
66
<!-- include: docs/repository-standards.md -->
77

8+
## Auto-memory policy
9+
10+
**Do NOT use MEMORY.md.** Claude Code's auto-memory feature stores behavioral
11+
rules outside of version control, making them invisible to code review,
12+
inconsistent across repos, and unreliable across sessions. All behavioral rules,
13+
conventions, and workflow instructions belong in managed, version-controlled
14+
documentation (CLAUDE.md, AGENTS.md, skills, or docs/).
15+
16+
If you identify a pattern, convention, or rule worth preserving:
17+
18+
1. **Stop.** Do not write to MEMORY.md.
19+
2. **Discuss with the user** what you want to capture and why.
20+
3. **Together, decide** the correct managed location (CLAUDE.md, a skill file,
21+
standards docs, or a new issue to track the gap).
22+
23+
This policy exists because MEMORY.md is per-directory and per-machine — it
24+
creates divergent agent behavior across the multi-repo environment this project
25+
operates in. Consistency requires all guidance to live in shared, reviewable
26+
documentation.
27+
28+
## Shell command policy
29+
30+
**Do NOT use heredocs** (`<<EOF` / `<<'EOF'`) for multi-line arguments to CLI
31+
tools such as `gh`, `git commit`, or `curl`. Heredocs routinely fail due to
32+
shell escaping issues with apostrophes, backticks, and special characters.
33+
Always write multi-line content to a temporary file and pass it via `--body-file`
34+
or `--file` instead.
35+
836
## Project Overview
937

1038
Java wrapper for the IBM MQ administrative REST API, ported from `pymqrest` (Python). Provides method-per-command API (`displayQueue()`, `defineQlocal()`, etc.) with attribute mapping between snake_case and MQSC parameter names.

docs/plans/open-decisions.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ implemented. One minor tooling item remains (docs-only validation).
9191
## CI and publishing
9292

9393
- **CI platform**: GitHub Actions (consistent with pymqrest).
94-
- **CI workflows**: 6-job pipeline (docs-only, standards-compliance,
95-
dependency-audit, release-gates, test-and-validate, integration-tests) with
94+
- **CI workflows**: 6-job pipeline (ci: docs-only, ci: standards-compliance,
95+
ci: dependency-audit, release: gates, test: unit, test: integration) with
9696
Java 17/21/25 matrix (decided 2026-02-13).
9797
- **Dependency audit**: `actions/dependency-review-action@v4` (GitHub-native,
9898
zero-config) over OWASP Dependency-Check Maven Plugin (decided 2026-02-13).

docs/repository-standards.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
- branching_model: library-release
3131
- release_model: artifact-publishing
3232
- supported_release_lines: current and previous
33+
- primary_language: java
3334
- canonical_local_validation_command: scripts/dev/validate_local.sh
3435

3536
## Local validation

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
<groupId>io.github.wphillipmoore</groupId>
99
<artifactId>mq-rest-admin</artifactId>
10-
<version>1.1.5</version>
10+
<version>1.1.6</version>
1111
<packaging>jar</packaging>
1212

1313
<name>mq-rest-admin</name>
@@ -401,7 +401,7 @@
401401
<configuration>
402402
<publishingServerId>central</publishingServerId>
403403
<autoPublish>true</autoPublish>
404-
<waitUntil>published</waitUntil>
404+
<waitUntil>validated</waitUntil>
405405
</configuration>
406406
</plugin>
407407
</plugins>

scripts/dev/commit.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
#!/usr/bin/env bash
2+
# Managed by standard-tooling — DO NOT EDIT in downstream repos.
3+
# Canonical source: https://github.com/wphillipmoore/standard-tooling
24
# Commit wrapper that constructs standards-compliant commit messages.
35
# Resolves Co-Authored-By identities from docs/repository-standards.md.
46

0 commit comments

Comments
 (0)