chore(release): v0.8.0 — EnforceActionResultDtoRule + ForbidInlineArrayJsonResponseInControllersRule - #53
Conversation
Goosterhof
left a comment
There was a problem hiding this comment.
✅ Clean release-cut — approve-worthy (own PR → COMMENT)
CHANGELOG-only (+2 lines: the ## [0.8.0] — 2026-07-13 header, [Unreleased] → tagged). Verified against reality:
- Both rules exist in the package (
EnforceActionResultDtoRule,ForbidInlineArrayJsonResponseInControllersRule— code hits at head), merged via #50 (2026-07-11). The CHANGELOG isn't claiming vaporware. - The release rationale is correct (WR-0330 / board-reconcile): #50's rules merged but no tagged release contains them (v0.6.1/v0.7.0 both predate the merge), so consumers can't adopt them until this cuts
0.8.0. The tag-first sequence (merge CHANGELOG → tagv0.8.0→ Packagist auto-sync) matches the composer release mechanics. - The version bump is right: both rules surface new errors in already-clean consumer code (an
array-returningexecute(); an inline-arrayJsonResponsein a controller) → a candidate MAJOR, but the pre-1.0 caret convention (^0.7excludes0.8.0) means tagging auto-adopts nobody — each consumer adopts on its own baseline-absorb pin-bump. That's the correct blast-radius posture for the Inspector General's package.
No source/rule change since #50; the diff is purely the version header. Rides the #52 ci-passed aggregate (TC-0069 trial). Approve-worthy.
Automated war-room agent review — posted because this PR carries the Agent Review Requested label.
dmooibroek
left a comment
There was a problem hiding this comment.
Clean. CHANGELOG-only v0.8.0 header on main HEAD; both rules present in src/Rules/ (merged #50); no v0.8.0 tag yet, so this precedes tagging. Confirm the-general's clean read.
…ayJsonResponseInControllersRule (#50) Move [Unreleased] → [0.8.0]. Candidate-MAJOR (two rules surface new errors in already-clean consumer code); pre-1.0 caret convention means ^0.7 excludes 0.8.0, so tagging auto-adopts nobody — each consumer opts in on its own pin bump. Unblocks queue #136/#137 per-territory adoption (war-room WR-0330). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FFY2M2jh9MLDWFwwcSi7Go
86b4c91 to
9ba95bd
Compare
There was a problem hiding this comment.
Delta re-review at 9ba95bd: the head advanced by committing composer.lock (same lockfile-commit as the already-approved #55) alongside the v0.8.0 CHANGELOG cut. Lockfile consistent with composer.json, no incompatible-major float, both rules unchanged since #50, version cut correct. Clean, CI green, mergeable. APPROVE.
The Rules-shipped table and the War Room ADR Projections section carried stale `[Unreleased]` markers on rules that shipped in v0.4.0 / v0.5.0 / v0.7.0. Flip each to its actual release tag; bump "Last synced" to 2026-07-14. The only two markers left as `[Unreleased]` are the genuinely untagged EnforceActionResultDtoRule + ForbidInlineArrayJsonResponseInControllersRule (on `main`, pending the v0.8.0 tag / release PR #53), now annotated as such. Doc-only; no rule or fixture change. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01PrEKZdivoToPfoRABcDDTS
The Rules-shipped table and the War Room ADR Projections section carried stale `[Unreleased]` markers on rules that shipped in v0.4.0 / v0.5.0 / v0.7.0. Flip each to its actual release tag; bump "Last synced" to 2026-07-14. The only two markers left as `[Unreleased]` are the genuinely untagged EnforceActionResultDtoRule + ForbidInlineArrayJsonResponseInControllersRule (on `main`, pending the v0.8.0 tag / release PR #53), now annotated as such. Doc-only; no rule or fixture change. Claude-Session: https://claude.ai/code/session_01PrEKZdivoToPfoRABcDDTS Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Release PR — moves
[Unreleased]→## [0.8.0] — 2026-07-13per the § Release process. On merge, tagv0.8.0(Packagist auto-syncs on tag push;release.ymlre-runs CI + creates the GH release).Why now (war-room WR-0330 / board-reconcile 2026-07-13)
PR #50 (the two rules) merged 2026-07-11, but no release contains it — v0.6.1 and v0.7.0 both predate the merge commit, so consumers cannot adopt
EnforceActionResultDtoRule(queue #136) orForbidInlineArrayJsonResponseInControllersRule(queue #137). This cuts the release that makes them consumable.Contents (candidate MAJOR)
Both rules surface new errors in already-clean consumer code (an
array-returningexecute(); an inline-arrayJsonResponsein a controller). Per the pre-1.0 caret convention^0.7excludes0.8.0, so tagging auto-adopts nobody — each consumer adopts on its own pin-bump PR (baseline-absorb posture). Also rides the tag: the #52 ci-passed aggregate check (TC-0069 trial, CI-only).CHANGELOG-only diff (+2 lines: the version header). No rule/source change since #50.
🤖 Generated with Claude Code