fix(release): tidy changelog + per-nightly changelog in hub release#3713
Conversation
|
Claude finished @insipx's task —— View job Code Review — 2026-06-03 22:14 UTCTodo List:
SummaryThe changes effectively solve both stated problems with minimal, well-targeted fixes. Code quality is high. Detailed Reviewcliff.toml (lines 22, 63)✅ Subject-line extraction (line 22): {{ commit.message | split(pat="\n") | first | trim | upper_first }}Clean solution. The pipeline correctly isolates the subject line from squash-merge bodies. ✅ Catch-all rule (line 63): { message = ".*", group = "Other" },Proper placement at the end of Minor observation: No issues, but consider whether "Miscellaneous" (line 57, .github/workflows/release.yml (lines 421-437)✅ Per-nightly changelog logic:
🔍 Edge case: Line 429 uses
Current approach is reasonable for robustness, but if git-cliff breaks due to the Lines 469-475: The conditional append of nightly changelog to the release body is well-structured. The heredoc formatting and test Test CoverageNo test changes included. Changelog generation is typically verified manually (as done in the PR description). For a config-only change, this is acceptable. Consider whether any of the following would add value:
Given the manual verification shown in the PR body ("regenerated from main" with before/after), this is not a blocker. Performance & Security
ConclusionChanges are well-designed and address the stated problems. No blocking issues. The one observability consideration (git-cliff silent failure) is a design choice, not a bug. |
ApprovabilityVerdict: Approved Minor CI/CD configuration changes to improve changelog generation for nightly releases. The changes only affect release note formatting, not production behavior, and the author owns both modified files. You can customize Macroscope's approvability policy. Learn more. |
fd017a7 to
dc5af90
Compare
Dismissing prior approval to re-evaluate dc5af90
dc5af90 to
72c80fe
Compare
… release Changelog-quality fixes to cliff.toml: 1. Render only the commit SUBJECT (first line), not the full message. GitHub squash-merges put the PR description in the commit body, so the prior template dumped PR boilerplate (Macroscope HTML-comment blocks, Co-authored-by trailers, even a pasted Nix build log) into the changelog. 2. Catch-all parser so non-conventional commits land in a single 'Other' group instead of fake per-scope sections like 'Xmtp_proto' / 'Bindings/mobile'. Plus a release.yml change: each nightly hub GitHub Release now appends a 'Changes since the last nightly' changelog — the git-cliff delta over <previous-nightly-tag>..HEAD (--strip header), computed before tagging this run. First nightly (no prior nightly tag) falls back to since-last-stable. Adds git-cliff to the hub job. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
72c80fe to
eecd171
Compare
Dismissing prior approval to re-evaluate eecd171
Two changelog improvements, both stemming from the scruffy first generated Release PR (#3712).
1. Tidy the generated changelog (
cliff.toml)Body-dump scruff — the template rendered
commit.message(full message = subject + body). GitHub squash-merges fill the commit body with the PR description, so each merge dumped its whole PR body into the changelog: Macroscope HTML-comment summary blocks,Co-authored-by:trailers, even a pasted Nix build-error log (~316 of #3712's 461 lines).Fake per-scope groups — non-conventional commits (e.g.
xmtp_proto: …,bindings/mobile: …) made git-cliff invent junk section headers likeXmtp_proto/Bindings/mobile. A catch-all collects them into oneOthergroup:+ { message = ".*", group = "<!-- 8 -->Other" },Result (regenerated from
main): group headers are exactly Features · Bug Fixes · Performance · Documentation · Other, every entry a clean subject line, zero scruff.2. Per-nightly changelog in the hub release (
release.yml)Each nightly hub GitHub Release now appends a "Changes since the last nightly" section — the git-cliff delta over
<previous-nightly-tag>..HEAD(--strip header), computed before this run is tagged so the newest existingv*-nightly.*tag is genuinely the prior one. First-ever nightly (no prior nightly tag) falls back to since-last-stable. Empty output is dropped. Adds git-cliff to the hub job.Verification
main: clean, 5 well-formed groups, no scruff.<tag>..HEAD --strip header): clean grouped output, 22 bullets, no header.Once merged, the open Release PR (#3712) regenerates clean on the next push to main, and the next real nightly carries a proper since-last-nightly changelog.
🤖 Generated with Claude Code
Note
Tidy generated changelog to show subject-only commits and group non-conventional commits into 'Other'
git-cliff, compute a delta changelog from the previous nightly tag toHEAD, and append aMacroscope summarized eecd171.