Skip to content

chore(release): prep CHANGELOG for v4.0.1 GA - #2768

Merged
bpamiri merged 1 commit into
developfrom
release/changelog-prep-v4.0.1
May 20, 2026
Merged

chore(release): prep CHANGELOG for v4.0.1 GA#2768
bpamiri merged 1 commit into
developfrom
release/changelog-prep-v4.0.1

Conversation

@bpamiri

@bpamiri bpamiri commented May 20, 2026

Copy link
Copy Markdown
Collaborator

Summary

Pre-flight prep for the v4.0.1 GA tag. Mirrors #2606 (the v4.0.0 analog). Once this lands, the remaining release-day step is a single release/v4.0.1-to-main PR.

What changed

  • CHANGELOG header — promoted ## [Unreleased] to # [4.0.1](...) => 2026-05-20. This is the line release.yml grep-validates for => TBD. Bump the date here on develop if the release-to-main PR slides past today.
  • Section terminator fix — changed the ---- (4 dashes) separator between the new 4.0.1 block and the 4.0.0 block to --- (3 dashes). release.yml's release-notes extraction is awk '/^# \[VERSION\]/,/^---$/' — that pattern matches only the 3-dash form. Without this fix, the GitHub Release body for 4.0.1 would bleed into the 4.0.0 section. Same issue, same fix as chore: prep CHANGELOG for v4.0.0 GA #2606.
  • Short patch tagline — one-line blockquote summarizing the release theme (Adobe CF 2023/2025 compat hardening, Windows Scoop install fixes, paginationNav() framework presets, plural mappings).

Pre-flight checks

  • CHANGELOG has no => TBD for 4.0.1 → release.yml validation step passes
  • wheels.json version is clean (4.0.1, no -snapshot suffix) → already bumped by bump-develop-version.yml after the v4.0.0 GA
  • Release-notes awk extraction terminates at the correct boundary: awk '/^# \[4\.0\.1\]/,/^---$/' CHANGELOG.md | wc -l reports 85 lines, ending immediately before # [4.0.0]
  • develop CI is green (last push, run 26171463495, success in 8m31s)

Scope of v4.0.1

103 commits / ~97 unique PR references since the v4.0.0 tag (8 days). Highlights:

Manual steps for me (after this PR merges to develop)

  1. Pull develop locally.
  2. Verify the date in CHANGELOG still reflects the release day; bump on develop if it slid.
  3. Cut archive branches: archive/develop-pre-v4.0.1, archive/main-pre-v4.0.1 (keep for at least one cycle in case rollback is needed).
  4. Open release/v4.0.1-to-main (merge develop into main, since main's PR-required ruleset blocks direct push — see Release 4.0.0 — merge develop into main #2607 for the v4.0.0 pattern).
  5. PR to main, merge with "Create a merge commit". release.yml fires on the push to main, creates the v4.0.1 tag via softprops/action-gh-release, and publishes the GitHub Release.
  6. bump-develop-version.yml should auto-fire via repository_dispatch (the fix for #2609 shipped on develop), opening a follow-up PR to bump wheels.json to 4.0.2.

Test plan

  • commitlint passes on this PR
  • No-op CI on develop (this is a CHANGELOG-only change)

🤖 Generated with Claude Code

Promote `## [Unreleased]` to `# [4.0.1] => 2026-05-20` so `release.yml`'s
release-checklist step (which refuses to publish on `=> TBD`) and its
`awk '/^# \[VERSION\]/,/^---$/'` release-notes extraction both pick up
the section.

Change the section terminator from `----` (4 dashes) to `---` (3 dashes)
— mirrors the same fix shipped in #2606 for the 4.0.0 cut. The awk range
in `release.yml` matches only `^---$`, so a 4-dash terminator would let
the extraction bleed into 4.0.0's notes.

`wheels.json` is already at `4.0.1` (auto-bumped by
`bump-develop-version.yml` after the 4.0.0 GA), so no version bump is
needed here.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@github-actions github-actions Bot added the docs label May 20, 2026
@bpamiri
bpamiri merged commit 63777a0 into develop May 20, 2026
6 checks passed
@bpamiri
bpamiri deleted the release/changelog-prep-v4.0.1 branch May 20, 2026 15:37

@wheels-bot wheels-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Wheels Bot — Reviewer A

TL;DR: CHANGELOG-only pre-flight prep for the v4.0.1 GA tag. The three changes (header promotion, blockquote tagline, 4-dash to 3-dash separator) are all mechanically correct and well-motivated. Approving.


Correctness

Header promotion (## [Unreleased] to # [4.0.1](...) => 2026-05-20): heading level matches the # [4.0.0] precedent; date matches the PR landing date; URL follows the same pattern as the 4.0.0 entry.

Separator fix (line 102 area): release.yml uses awk '/^# [VERSION]/,/^---$/' CHANGELOG.md to extract release notes; the 4-dash form ---- would not match the ^---$ anchor, causing the GitHub Release body for 4.0.1 to bleed into the 4.0.0 section. The fix is correct and identical to the v4.0.0 analog (#2606). The preamble separators above the version header (lines 8 and 20) intentionally remain ---- — those precede the rebrand note and intro, not version blocks, so the awk range never reaches them.

Tagline accuracy: cross-checked against the CHANGELOG body. env() (#2756, confirmed at line 46 of the merged file), Vite asset-walk (lines 150-151), cfheader attributeCollection (#2750), Scoop wheels.cmd (#2766), viewStyle (#2718/#2731), and plural mappings (#2705/#2739) all have matching entries in the 4.0.1 ### Fixed / ### Added sections. The "~100 PRs" figure (PR body quotes 103 commits / ~97 unique PR refs) is a reasonable approximation.

Pre-flight checks in the PR body — awk line count reported at 85, no => TBD remaining, wheels.json already at 4.0.1 — provide strong independent assurance that the extraction boundary terminates correctly.

Commits

chore(release): prep CHANGELOG for v4.0.1 GA — type chore, scope release, subject under 100 chars, not ALL-CAPS. Conforms to commitlint.config.js.

Docs

This PR IS the doc change; no secondary docs update needed.


No correctness, cross-engine, test, or security concerns (CHANGELOG-only, no executable code). Clean approval.

@wheels-bot

wheels-bot Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

Wheels Bot — Reviewer B (round 1)

A's review checks out. The three claims (header level matches precedent, separator fix is mechanically correct, commit message conforms to commitlint) are all verified against the diff. No padding, no unsupported assertions.

Sycophancy

None detected. A cited specific evidence for every claim before approving.

False positives

None detected. Spot-checked each of A's assertions:

  • Header promotion: diff shows ## [Unreleased]# [4.0.1](...) => 2026-05-20, matching the # [4.0.0] H1 precedent at the end of the diff. Correct.
  • Separator fix: removed line is ---- (4 dashes), added line is --- (3 dashes). release.yml's awk range pattern /^---$/ requires exactly 3 dashes. Fix is correct.
  • A notes the preamble ---- separators (lines 8 and 20) intentionally remain — confirmed: they are outside any version block and the awk range never hits them.
  • Commit message: chore(release): prep CHANGELOG for v4.0.1 GA — valid type, optional scope, subject under 100 chars, sentence case. Correct.

Missed issues

None detected. This is a CHANGELOG.md-only change with no executable code. DCO is not a missed issue — the commit carries Signed-off-by: Peter Amiri <peter@alurium.com> (human-authored, not bot-authored) and the PR merged with the required DCO check passing.

Verdict alignment

APPROVE is consistent with the findings: pure documentation change, no cross-engine risk, no security surface, pre-flight assertions independently verifiable.

Convergence

Aligned. A's review is accurate and complete; verdict is correct. No changes needed.

bpamiri added a commit that referenced this pull request May 27, 2026
…ybook (#2818)

Prep for the 4.0.2 cut.

- CHANGELOG.md: the separator below [Unreleased]/[4.0.2] was `----`
  (4 dashes). release.yml extracts release notes with the awk range
  /^# \[VERSION\]/,/^---$/, which terminates only on exactly three
  dashes, so a 4-dash separator silently pulls all of 4.0.1's notes
  into the 4.0.2 release. Flipped to `---`. (Same regression as #2606,
  #2768.)
- release.yml: added a main-gated guard in the release-checklist step
  that mirrors the extraction awk and fails the release if the range
  bleeds into a later version heading, so this stops recurring.
- RELEASE_PLAYBOOK.md: corrected stale guidance — version source is
  wheels.json (not box.json) since the 4.0 rebrand, and the release-day
  flow is PR-into-main + softprops auto-tag (main's PRs-only ruleset
  rejects `git push origin main --tags`). Documented the new separator
  guard and its failure mode.

Signed-off-by: Peter Amiri <peter@alurium.com>
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
bpamiri added a commit that referenced this pull request Jun 10, 2026
Release-cut reconciliation ahead of the 4.0.3 GA:

- Rename [Unreleased] -> [4.0.3] with the 2026-06-09 release date and a
  summary blurb, matching the 4.0.2 promotion format (#2824).
- Consolidate the duplicated ### Changed / ### Fixed sections that
  accumulated from incremental entry additions into one Added/Changed/Fixed
  trio (same order as the 4.0.2 block).
- Drop the byte-identical duplicate #2844 (protectedControllerMethods) entry.
- Add the missing consolidated entry for the 24-command CLI audit sweep
  (#2882, #2883, #2884, #2885).
- Fix the separator below the promoted block to exactly '---' (3 dashes) so
  release.yml's release-notes awk extraction terminates correctly (the
  #2606/#2768 footgun its Validate Release Checklist step guards against).

Cutting the release branch from develop AFTER this lands avoids the 4.0.2
back-port dance (#2824) where the rename lived only on the release branch.

Signed-off-by: Peter Amiri <peter@alurium.com>
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant