Skip to content

Commit a41d066

Browse files
Skip changelog validation for release pull requests (#139)
* [changelog] Skip release PR entry validation (#138) * Update wiki submodule pointer for PR #139 * [docs] Restore dependency workflow documentation updates (#138) * [docs] Refresh changelog state and PR skill guidance (#138) * Update wiki submodule pointer for PR #139 * [changelog] Record workflow docs and skill guidance follow-ups (#138) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
1 parent 9e34d06 commit a41d066

10 files changed

Lines changed: 33 additions & 9 deletions

File tree

.agents/skills/github-pull-request/SKILL.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ Use this skill to take a Fast Forward issue from "ready to implement" to an open
1919

2020
- Keep one branch and one PR per issue.
2121
- Branch from `main` or the repository integration branch, never from another feature branch.
22+
- When returning to `main` before starting a new implementation, always fetch and fast-forward from the remote before creating the next feature branch so release files, changelog state, and generated artifacts start from the latest published baseline.
2223
- Prefer local `git` for checkout, commit, and push.
2324
- Prefer connector-backed GitHub data for issue and PR context when available.
2425
- Use `phpunit-tests`, `package-readme`, and `sphinx-docs` when the change clearly affects tests or documentation.

.github/wiki

Submodule wiki updated from 6918161 to 7583c1a

.github/workflows/changelog.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565
validate_pull_request:
6666
name: Validate PR Changelog
6767
needs: resolve_php
68-
if: ${{ github.event.pull_request.number && github.event.pull_request.merged != true }}
68+
if: ${{ github.event.pull_request.number && github.event.pull_request.merged != true && !startsWith(github.event.pull_request.head.ref, inputs.release-branch-prefix || 'release/v') }}
6969
runs-on: ubuntu-latest
7070
env:
7171
CHANGELOG_FILE: ${{ inputs.changelog-file || 'CHANGELOG.md' }}

AGENTS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -181,6 +181,7 @@ composer dev-tools
181181
- **Documentation**: Sphinx-based docs in `docs/` directory
182182
- **Wiki**: GitHub wiki synced via `dev-tools wiki` and `dev-tools:sync`
183183
- **GitHub Actions**: Workflows in `.github/workflows/` (synced via `dev-tools:sync`)
184+
- **Dependency Health CI**: `.github/workflows/tests.yml` always runs the dependency-health job, and its default `max-outdated` input is `-1` so outdated packages are reported without failing CI on count alone
184185
- **Project Agents**: Packaged role prompts synchronized via `composer agents` and `dev-tools:sync`
185186

186187
## Skills Usage

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
### Changed
11+
12+
- Skip pull-request changelog entry validation for generated release branches so release PRs can promote `Unreleased` without failing CI (#138)
13+
- Restore dependency workflow documentation so README, AGENTS, and command guides match the required CI dependency-health behavior (#138)
14+
- Require the GitHub pull-request skill to refresh `main` from the remote before branching for a new implementation so changelog and release state start from the latest baseline (#138)
15+
1016
## [1.15.0] - 2026-04-20
1117

1218
### Changed

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -147,11 +147,15 @@ composer update-composer-json --force
147147
composer dev-tools:sync
148148
```
149149

150-
The `dependencies` command ships with both dependency analyzers and
151-
`rector/jack` as direct
150+
The `dependencies` command ships with
151+
`shipmonk/composer-dependency-analyser` and `rector/jack` as direct
152152
dependencies of `fast-forward/dev-tools`, so it works without extra
153153
installation in the consumer project.
154154

155+
The packaged `tests.yml` workflow runs dependency health as a required job and
156+
defaults to `--max-outdated=-1`, which keeps outdated-package findings visible
157+
in CI without failing the workflow for their count alone.
158+
155159
The `metrics` command ships with `phpmetrics/phpmetrics` as a direct
156160
dependency of `fast-forward/dev-tools`, so consumer repositories can generate
157161
metrics reports without extra setup.
@@ -215,7 +219,7 @@ skills they depend on.
215219
|---------|---------|
216220
| `composer dev-tools` | Runs the full `standards` pipeline. |
217221
| `composer tests` | Runs PHPUnit with local-or-packaged configuration. |
218-
| `composer dependencies` | Previews Jack dependency updates, then reports missing, unused, and overly outdated Composer dependencies. |
222+
| `composer dependencies` | Previews Jack dependency updates, then reports missing, unused, misplaced, and outdated Composer dependencies. |
219223
| `composer metrics` | Runs PhpMetrics for the current project and generates requested report artifacts. |
220224
| `composer changelog:entry` | Adds one categorized changelog entry to `Unreleased` or a published release section. |
221225
| `composer changelog:check` | Verifies that a changelog file contains meaningful `Unreleased` notes, optionally against a git base reference. |

docs/commands/dependencies.rst

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ Options
3232
``--max-outdated=<count>`` (optional)
3333
Maximum number of outdated packages allowed by ``jack breakpoint``.
3434

35-
Default: ``5``.
35+
Default: ``5`` when you run the command directly.
3636

3737
Use ``-1`` to keep the outdated dependency report in the output while
3838
ignoring Jack failures in the final command status.
@@ -134,6 +134,9 @@ Behavior
134134
the command.
135135
- ``--upgrade`` applies Jack's ``raise-to-installed`` and ``open-versions``
136136
commands before ``composer update -W`` and ``composer normalize``.
137+
- the packaged ``tests.yml`` workflow uses ``--max-outdated=-1`` by default so
138+
dependency health remains a required CI job while outdated-package counts are
139+
reported without failing the workflow on their own.
137140
- Returns a non-zero exit code when missing, unused, misplaced, or too many
138141
outdated dependencies are found.
139142
- Both tools must be available in ``vendor/bin/``.

docs/internals/release-publishing.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ used for recovery or exceptional maintenance.
9797

9898
The same workflow also owns pull-request changelog validation. Regular feature
9999
and fix pull requests SHOULD expect ``changelog:check`` to run against the base
100-
branch and fail when no meaningful ``Unreleased`` entry is added.
100+
branch and fail when no meaningful ``Unreleased`` entry is added. Generated
101+
``release/v...`` pull requests are excluded from that validation because the
102+
release-preparation flow intentionally empties ``Unreleased`` after promotion.
101103

102104
If maintainers must recover the release manually, create the tag from the
103105
verified ``main`` commit:

docs/running/specialized-commands.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,9 @@ Important details:
7474
outdated dependencies accumulate;
7575
- ``--max-outdated=-1`` keeps the Jack outdated report in the output but
7676
ignores Jack's failure so only dependency-analyser findings fail the command;
77+
- the packaged ``tests.yml`` workflow uses ``--max-outdated=-1`` by default,
78+
so dependency health stays required in CI while outdated-package counts are
79+
reported without failing the workflow on their own;
7780
- it previews ``jack raise-to-installed`` and ``jack open-versions`` before
7881
the analyzers;
7982
- ``--upgrade`` runs ``jack raise-to-installed``, ``jack open-versions``,

docs/usage/github-actions.rst

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,10 @@ The ``tests.yml`` workflow provides standard Continuous Integration.
6868

6969
* Runs PHPUnit tests across the supported PHP matrix.
7070
* Resolves the minimum supported PHP minor version from ``composer.lock`` or ``composer.json`` and builds the test matrix from that floor upward.
71-
* Runs dependency health as a separate non-blocking job when enabled.
71+
* Runs dependency health as a separate required job.
72+
* Defaults the dependency-health threshold to ``--max-outdated=-1`` so
73+
outdated packages stay visible in CI without failing the workflow on count
74+
alone.
7275
* Uses PR-scoped concurrency so newer pushes cancel older in-progress runs for the same pull request.
7376

7477
Fast Forward Changelog
@@ -92,7 +95,8 @@ wrapper in ``resources/github-actions/changelog.yml``.
9295
safely.
9396
* Fetches the base branch changelog reference.
9497
* Runs ``composer dev-tools changelog:check -- --against=<base-ref>`` against the base ref.
95-
* Fails when the current branch does not add a meaningful ``Unreleased`` change.
98+
* Fails when a normal non-release branch does not add a meaningful ``Unreleased`` change.
99+
* Skips the validation job for pull requests whose head branch matches the configured ``release-branch-prefix``, because release-preparation branches intentionally leave ``Unreleased`` empty after promotion.
96100
* **Manual Release Preparation**:
97101
* Checks out the repository default branch with full history.
98102
* Resolves the next version from ``Unreleased`` unless a version input is provided.

0 commit comments

Comments
 (0)