chore(release): v0.5.0 — ForbidHttpExceptionInActions + ForbidResourceWrappedInJsonResponse#42
Conversation
…ForbidResourceWrappedInJsonResponse) Moves the two #41 rules from [Unreleased] to [0.5.0] — 2026-06-25 so release.yml extracts the matching section on tag push. v0.4.0 (the 4 prepared-but-never-tagged rules) was tagged separately at the pre-#41 commit; this PR is the v0.5.0 link. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01QTokMFyG4fFg2JLsjRrhf8
Town Crier Review · 8/10 · PASS · 🔎 Independent — 🟡 1phpstan-warroom-rules #42 · AC anchor: PR description (release-cut changelog) · head Tip CHANGELOG-only release-cut for v0.5.0 — a single-commit doc PR documenting two rules (ForbidHttpExceptionInActionsRule, ForbidResourceWrappedInJsonResponseRule) that are already merged on origin/main with their tests, so there is no rule-semantics change to gate and the doc-vs-code fidelity is the real surface. The changelog accurately reflects the shipped code (both classes exist in src/Rules/, both identifiers match the source verbatim, version narrative is consistent), so it passes; the only blemish is a cosmetic Keep-a-Changelog link-reference gap that mostly pre-dates this PR. 1 finding(s) posted inline:
|
Goosterhof
left a comment
There was a problem hiding this comment.
COMMENT — our own PR (self-authored). Confirming jasper's PASS 8/10. Clean release-cut; doc-vs-code fidelity verified.
- Correctly sequenced — #41 (the two rules) is merged (
12:56:50Z), so this CHANGELOG-only cut legitimately follows it. The 4-line diff inserts## [0.5.0] — 2026-06-25+ the candidate-Major note between[Unreleased](now empty) and the### Addedrules — correct Keep-a-Changelog structure forrelease.ymlto extract the 0.5.0 section. - Doc-vs-code fidelity holds (the real surface here) — both descriptions match the merged source: the identifiers
forbidHttpExceptionInActions.httpExceptionInActionandforbidResourceWrappedInJsonResponse.resourceWrappedare verbatim, theForbidResourceWrappedInJsonResponseRuleentry documents the exact named-envelope exclusion + AST shapes I verified in #41, and the candidate-Major /^0.4 → ^0.5/ zero-violators-surveyed narrative is consistent. - Versioning is right — pre-1.0 minor bump as candidate-Major per ADR-0021 §Versioning; the caret (
^0.4excludes0.5.0) means tagging auto-adopts nobody, so consumers opt in per-territory. The safe rollout for new fleet rules.
Seconding jasper's cosmetic MINOR — the Keep-a-Changelog link-reference definitions at the file bottom ([0.5.0]: …/compare/v0.4.0…v0.5.0) are missing, but that gap pre-dates this PR (earlier versions lack them too), so it's fast-follow housekeeping, not a release blocker — worth a one-line backfill whenever someone next touches the file.
CI: release gates still running (2 pending) — they should be green before the tag. Own PR → COMMENT; tag-on-merge is the Commander's action.
Automated war-room agent review — posted because this PR carries the Agent Review Requested label.
Town Crier Review · 8/10 · PASS · 🤝 Confirmphpstan-warroom-rules #42 · AC anchor: PR description (release-cut; no reachable board) · head Tip Reviewed a CHANGELOG-only v0.5.0 release-cut: 4 added lines documenting two rules already merged on main, so the rule-set contract (src/, tests/, extension.neon) is untouched — confirmed unchanged vs base, nothing to gate. Corroborates the thread's PASS: both documented rule identifiers match the source verbatim, the scope carve-outs (ValidationException out-of-scope, named-envelope exclusion) are faithful, and the candidate-major caret rollout is described correctly. The lone cosmetic blemish — a missing Keep-a-Changelog link-reference — is already flagged inline on the PR, so it isn't re-filed here. No findings — clean against the review checklist. Bus thread · 2 prior review(s):
|
jasperboerhof
left a comment
There was a problem hiding this comment.
Auto-approved — Town Crier verdict PASS @Head, CI green, no open MAJOR+ thread. Our approval is our independent vote (approve-alongside): a peer's review / CHANGES_REQUESTED never withholds it — we verify every blocker ourselves, and a real one drops our own verdict below PASS. See the verdict comment + inline notes.
…re base Addresses jasperboerhof MINOR on PR #42: the new [0.5.0] heading (and the pre-existing [0.4.0]) had no matching release-tag link-reference definition, and [Unreleased] still compared from v0.3.0. Keep-a-Changelog hygiene only, no contract/behaviour change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RoFjXAQvP4ogm7fqiSwuwc
Town Crier Review · 9/10 · PASS · 🤝 Confirmphpstan-warroom-rules #42 · AC anchor: PR description (no Kendo board for phpstan-warroom-rules) · head Tip Doc-only v0.5.0 release-cut on the canonical PHPStan rules package: the diff is CHANGELOG.md alone, so the rule-set contract (src/, tests/, extension.neon) is provably untouched and no consumer (kendo/codebook/emmie) is affected — the real surface is doc-vs-code fidelity, which holds (both rule identifiers match source verbatim, the namespace/type gates and named-envelope carve-out are described faithfully). Corroborates the thread's multi-round PASS; the one cosmetic Keep-a-Changelog MINOR the thread carried is already resolved at this head (c4b31e3 added the [0.5.0] link-ref and bumped the Unreleased compare base), so nothing remains to file. No findings — clean against the review checklist. Bus thread · 4 prior review(s):
|
jasperboerhof
left a comment
There was a problem hiding this comment.
Auto-approved — Town Crier verdict PASS @Head, CI green, no open MAJOR+ thread. Our approval is our independent vote (approve-alongside): a peer's review / CHANGES_REQUESTED never withholds it — we verify every blocker ourselves, and a real one drops our own verdict below PASS. See the verdict comment + inline notes.
Release PR for v0.5.0 — the two new rules from #41 (Commander review of emmie PR #481, enforcement queue #123 + #124).
What this PR does: moves the two rules from
[Unreleased]to## [0.5.0] — 2026-06-25sorelease.ymlextracts the right CHANGELOG section on tag push. Code already merged via #41 — this is CHANGELOG-only.Release sequencing (context):
v0.4.0was prepared 2026-06-15 (4 rules + theextension.neonNEON-quoting fix) but never tagged — the 4 consumer remediation PRs merged, yet the tag was never cut, so it sat dormant. I tagged v0.4.0 at the pre-#41 commit (d6a3fb6) to unstick it, then this PR cuts v0.5.0 on top.On merge: tag
v0.5.0at the merge commit →release.ymlruns gates + GitHub release + packagist sync. Consumers adopt per-territory via^0.4 → ^0.5bump (caret excludes0.5.0, so nobody auto-adopts). Survey shows 0 violators on emmie + kendodevelopment.🤖 Generated with Claude Code