Add release change policy gate#104
Conversation
There was a problem hiding this comment.
Claude Code Review
This repository is configured for manual code reviews. Comment @claude review to trigger a review and subscribe this PR to future pushes, or @claude review once for a one-time review.
Tip: disable this comment in your organization's Code Review settings.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (4)
✅ Files skipped from review due to trivial changes (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThis PR adds a release-policy doc and top-level ChangesRelease Change Approval Policy and Changelog Gate
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
|
@coderabbitai review |
✅ Action performedReview finished.
|
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
.github/PULL_REQUEST_TEMPLATE.md (1)
48-51: ⚡ Quick winAlign checkbox wording with validator requirements.
The checkbox on line 50 says
CHANGELOG.mdhas an "Unreleased entry," but the validator (fromscripts/check_changelog.pylines 191-215) enforces two distinct requirements:
- A
## Unreleasedsection heading must exist- At least one non-placeholder bullet must appear under that section
The current wording is ambiguous—authors might add just the section or a placeholder bullet (e.g.,
- TBD) and believe they've satisfied the checkbox, only to have CI reject it.📝 Suggested refinement
## Release Notes -- [ ] `CHANGELOG.md` has an `Unreleased` entry, or this PR has no release-impacting paths. +- [ ] `CHANGELOG.md` has a `## Unreleased` section with at least one non-placeholder bullet, or this PR has no release-impacting paths. - [ ] Release-impacting ABI, metadata schema, authorization, role, deployment, or artifact changes are documented.Optionally, make line 51 more explicit about where documentation is expected:
-- [ ] Release-impacting ABI, metadata schema, authorization, role, deployment, or artifact changes are documented. +- [ ] Release-impacting ABI, metadata schema, authorization, role, deployment, or artifact changes are documented in `CHANGELOG.md`.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.github/PULL_REQUEST_TEMPLATE.md around lines 48 - 51, Change the checkbox wording to explicitly require both that the changelog contains a "## Unreleased" section header and that this section contains at least one non-placeholder bullet (e.g., not just "- TBD"), since the validator in scripts/check_changelog.py (lines ~191-215) enforces both rules; update the second bullet text (the current "CHANGELOG.md has an `Unreleased` entry") to read something like "CHANGELOG.md has a '## Unreleased' section AND at least one non-placeholder entry (not a placeholder like 'TBD')" so authors cannot mistakenly satisfy the checkbox with only a placeholder.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@scripts/check_changelog.py`:
- Around line 50-58: The current placeholder detection using the
PLACEHOLDER_ENTRIES set is too strict and misses variants like "TODO:", "TBD -
pending" — update the detection to perform a case-insensitive regex search
instead of exact set membership: build a pattern from the keys in
PLACEHOLDER_ENTRIES (e.g. r'\b(tbd|todo|none|n/?a|placeholder)\b') and use
re.search on each changelog line after stripping surrounding punctuation;
replace the existing membership checks that reference PLACEHOLDER_ENTRIES (both
occurrences) with this regex-based check so variants like "TODO:", "- TBD -
pending", or "n/a" are caught.
---
Nitpick comments:
In @.github/PULL_REQUEST_TEMPLATE.md:
- Around line 48-51: Change the checkbox wording to explicitly require both that
the changelog contains a "## Unreleased" section header and that this section
contains at least one non-placeholder bullet (e.g., not just "- TBD"), since the
validator in scripts/check_changelog.py (lines ~191-215) enforces both rules;
update the second bullet text (the current "CHANGELOG.md has an `Unreleased`
entry") to read something like "CHANGELOG.md has a '## Unreleased' section AND
at least one non-placeholder entry (not a placeholder like 'TBD')" so authors
cannot mistakenly satisfy the checkbox with only a placeholder.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: a91954e2-a02a-45c1-baaa-5450ae21af0a
📒 Files selected for processing (14)
.github/PULL_REQUEST_TEMPLATE.md.github/workflows/ci.ymlCHANGELOG.mdMakefileREADME.mddocs/release-policy.mddocs/status.mddocs/tooling.mdops/AUTONOMOUS_RUN.mdops/ROADMAP.mdscripts/check.ps1scripts/check.shscripts/check_changelog.pyscripts/test_changelog_check.py
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
Merge evidence for PR #104:
|
Summary
CHANGELOG.mdanddocs/release-policy.mdfor release-impacting changes, breaking-change approval, ABI/artifact baseline refresh expectations, and release checklist evidenceUnreleasedentries for release-impacting pathsmake check, Linux/Windows wrappers, CI, the PR template, README/tooling/status docs, roadmap, and autonomous run stateCloses #103.
Validation
python scripts\test_changelog_check.pypython scripts\check_changelog.pypython -m py_compile scripts\check_changelog.py scripts\test_changelog_check.pybash -n scripts/check.shscripts/check.ps1andscripts/bootstrap-windows.ps1rg -n "^#|^##|^###" ops\ROADMAP.md docs\release-policy.md CHANGELOG.mdgit diff --checkmake checkpowershell -ExecutionPolicy Bypass -File scripts\check.ps1Review Notes
This is a release-process/tooling/docs PR. It does not change Solidity runtime behavior or produce production release signatures/tags/address books.
Summary by CodeRabbit
New Features
Documentation
Chores