Skip to content

chore: release v0.3.0#23

Open
Goosterhof wants to merge 1 commit into
engineer/log-builder-truncate-rulefrom
chore/release-v0.3.0
Open

chore: release v0.3.0#23
Goosterhof wants to merge 1 commit into
engineer/log-builder-truncate-rulefrom
chore/release-v0.3.0

Conversation

@Goosterhof
Copy link
Copy Markdown
Contributor

Summary

Cuts v0.3.0 — collapses three contractual rule widenings into a single Major bump per ADR-0021 §Versioning, all with 0-violator pre-cascade audit verdicts.

Rule Doctrine Cascade audit (2026-05-XX) Verdict
EnforceResourceDataValidatorOptInRule (Phase 2, queue #55) ADR-0009 §EAGER_LOAD validator opt-in 0 violators across 5 territories (2026-05-08) Minor-at-rule-level
LogRule static-call expansion (#4) ADR-0001 §Append-only 0 violators across 5 territories (2026-05-13) Minor-at-rule-level
LogBuilderTruncateRule (#8) ADR-0001 §Append-only 0 violators across 5 territories (2026-05-13) Minor-at-rule-level

Release-as-a-whole stays MAJOR — Major represents the contract widening (consumers upgrading from ^0.2 to ^0.3 accept three broader rule contracts), not the empirical violation count.

Stacked PR notice

This PR is stacked on PR #22 (engineer/log-builder-truncate-rule). Base set to engineer/log-builder-truncate-rule; GitHub auto-retargets to main when PR #22 merges. Review/merge order: #22 first, then this PR, then tag v0.3.0.

Pre-release work already complete

  • Phase A pin sweep (^0.1.x^0.2) — all four laggard consumers (kendo, entreezuil, emmie, BIO) bumped between 2026-05-06 and 2026-05-08 via independent dispatches (Commander manual bump for kendo; Engineer PRs #159 + #208 for entreezuil + emmie which also retired their local audit-snapshot arch tests; Dependabot PR #168 for BIO). Verified clean by 4-territory Medic wave 2026-05-13.
  • Three pre-cascade audits filed as campaign reports:
    • campaigns/phpstan-warroom-rules/2026-05-08-pre-cascade-audit-resource-data-validator-opt-in.md
    • campaigns/phpstan-warroom-rules/2026-05-13-pre-cascade-audit-log-rule-static-call.md
    • campaigns/phpstan-warroom-rules/2026-05-13-pre-cascade-audit-log-builder-truncate.md
  • Release-cut campaign: campaigns/phpstan-warroom-rules/2026-05-13-v0.3.0-release-cut-plan.md

Post-merge plan

  1. Tag v0.3.0 on the release-PR's merge commit. release.yml webhook auto-publishes to Packagist.
  2. Phase B pin sweep (^0.2^0.3) dispatches as a separate war-room operation across all 5 consumer territories — each PR references this v0.3.0 release tag and the three audit campaign reports. Single-wave dispatch (no consumer-side ignoreErrors migrations required, per the 0-violator verdicts).

Test plan

  • CHANGELOG move [Unreleased][0.3.0] — 2026-05-13 clean
  • CHANGELOG link footer updated ([Unreleased] now compares against v0.3.0; [0.3.0] link added)
  • Audit-verdict sentences appended to all three rule entries citing campaign reports
  • composer test — 50 tests pass
  • composer phpstan — clean
  • composer format:check — clean
  • CI passes on PHP 8.4 and 8.5 (pending)
  • One approving review from @script-development/phpstan-warroom-admins
  • PR engineer: add LogBuilderTruncateRule (closes #8) #22 merges first (auto-retargets this PR's base to main)
  • Merge this PR, tag v0.3.0 on merge commit

🤖 Generated with Claude Code

Cuts v0.3.0 — collapses three contractual rule widenings into a single
Major bump per ADR-0021 §Versioning:

1. EnforceResourceDataValidatorOptInRule (queue #55 Phase-2 promotion,
   ADR-0009 §EAGER_LOAD validator opt-in) — Phase 2 rule
2. LogRule static-call expansion (issue #4, ADR-0001 §Append-only) —
   Model::destroy() / Model::forceDestroy() shapes
3. LogBuilderTruncateRule (issue #8, ADR-0001 §Append-only) —
   Builder->truncate() on table('<log-named>') chains

Each rule's pre-cascade audit returned 0 violators across all 5
consumer territories (kendo, entreezuil, emmie, ublgenie, brick-inventory-orchestrator):

- ResourceDataValidator audit: campaigns/phpstan-warroom-rules/2026-05-08-pre-cascade-audit-resource-data-validator-opt-in.md
- LogRule static-call audit: campaigns/phpstan-warroom-rules/2026-05-13-pre-cascade-audit-log-rule-static-call.md
- LogBuilderTruncate audit: campaigns/phpstan-warroom-rules/2026-05-13-pre-cascade-audit-log-builder-truncate.md

No consumer-side ignoreErrors migrations required. The Major represents
the contract widening, not empirical violation count.

Phase A pin sweep (^0.1.x → ^0.2) closed pre-release — all 4 laggard
consumers bumped via independent dispatches between 2026-05-06 and
2026-05-08; verified by 4-territory Medic wave 2026-05-13 (no-op).
Phase B pin sweep (^0.2 → ^0.3) follows post-tag as a separate
war-room dispatch.

This PR is STACKED on PR #22 (engineer/log-builder-truncate-rule).
GitHub auto-retargets to main when PR #22 merges. Tag v0.3.0 on the
release-PR merge commit; release.yml's webhook auto-publishes to
Packagist.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant