Skip to content

chore(release): promote changelog fragments into 4.2.0 - #4549

Merged
bpamiri merged 3 commits into
developfrom
peter/changelog-4.2.0
Oct 11, 2026
Merged

bpamiri merged 3 commits into
developfrom
peter/changelog-4.2.0

Conversation

@bpamiri

@bpamiri bpamiri commented Oct 11, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Runs tools/changelog-promote.sh 4.2.0 2026-10-11 on develop c3665d9. It assembles the 272 changelog.d fragments into a new # [4.2.0](…) => 2026-10-11 section of CHANGELOG.md (336 entries: Added, Changed, Removed, Performance, Fixed, Security), resets [Unreleased], and leaves changelog.d/ with only its README.

Release-prep PR: it merges as part of the 4.2.0 cut, not before.

  • The date is the prep date. If the tag lands on another day, it's a one-line edit to the # [4.2.0] heading.
  • A fragment that merges after this promote stays in changelog.d. It would need adding to this section, or re-running the promote, before the tag.

A second commit fills two gaps found while checking PRs merged since 4.1.2 that had no fragment:

The other fix/feat/perf PRs without a fragment are build-pipeline fixes, follow-ups to features new in 4.2 (their parent PRs carry the line), or have no behaviour change.

Checks

  • changelog-promote.sh --preview and the promote both succeed (they fail loudly on a malformed fragment)
  • release.yml's release-notes extraction (awk '/^# \[4\.2\.0\]/,/^---$/') returns the 4.2.0 section only: 357 lines, one version heading, no bleed into 4.1.2
  • Bullet text is as the fragments were reviewed; nothing was reworded

🤖 Generated with Claude Code

Runs tools/changelog-promote.sh 4.2.0 2026-10-11: assembles the 272
changelog.d fragments into a new 4.2.0 section and empties changelog.d.
The date is the prep date and moves to the tag date at the cut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@github-actions github-actions Bot added the docs label Oct 11, 2026
…4.2.0 changelog

#4237 and #4243 changed released Linux package behaviour without a fragment.
The framework-suite datasource line (added by #4295 for #4254) gains its
issue reference.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@bpamiri

bpamiri commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator Author

rev1-r3 review @ 4eaf1f4: APPROVE (one wording fix recommended before the cut; see below)

Fragments are all consumed, with nothing lost or duplicated. I compared every changelog.d/*.md at the base (c3665d90e, 272 fragments, 293 top-level bullets) with the new # [4.2.0] section, bullet by bullet, matching both the text and the heading.

The headings are Added, Changed, Removed, Performance, Fixed and Security, with no empty ones.

Structure:

  • ## [Unreleased] is reset to its "write a fragment" comment.
  • The new heading matches the previous release's form: # [4.2.0](…/releases/tag/v4.2.0) => 2026-10-11. The date is today's, so set it to the tag date at the cut.

Wording: the section uses no CVE, GHSA, exploit or vulnerability terms. The "advisory" hits in Changed are wheels upgrade check findings, which is fine.

Recommended before the cut: the two heartbeat() entries contradict each other

Both land in 4.2.0, and heartbeat() didn't exist in 4.1.x. So the Fixed entry describes a "before" no user ever had. Following the Added entry's guidance under the shipped default (300 s grace) gets a job reclaimed: a 1-hour-timeout job heartbeating every 10 minutes stops being protected.

Suggested fix:

  1. Rewrite the Added entry's sentence to the shipped rule: reclaimed once heartbeats stop for the grace (jobsHeartbeatGraceSeconds, default 300, or this.heartbeatGrace); heartbeat at least every grace / 3; this.timeout stays the hard cap.
  2. Move the fix(job): let heartbeats shorten dead-worker detection for long jobs #4502 entry's grace details into it and drop the Fixed entry. Alternatively, keep it in Changed without the "Before" framing.

PR CI: 12 pass, 3 skipping, 0 fail. Up to date with develop, MERGEABLE.

Folds the heartbeat Added entry (#4477) and the grace Fixed entry (#4502)
into one Added entry. The Fixed entry described a 'before' that never
shipped, and the Added entry's 'heartbeats more often than its timeout'
contradicted the grace rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Peter Amiri <peter@alurium.com>
@bpamiri

bpamiri commented Oct 11, 2026

Copy link
Copy Markdown
Collaborator Author

rev1-r3 re-check @ 315e05d: APPROVE

The heartbeat fold resolves the contradiction I flagged. #4477's Added entry and #4502's Fixed entry are now one Added entry, linking both issues. Checked against the code I reviewed in #4507:

  • The grace rule is right: this.heartbeatGrace, else jobsHeartbeatGraceSeconds, default 300, 0 off, raised to 30. So is "heartbeat at least every grace / 3".
  • The claim window for a job that never heartbeats is right: timeout + max(60 s, timeout).
  • this.timeout stays the hard cap, the stuck-perform() caveat is kept, and the rest is unchanged (lease renewal by the grace, Wheels.Job.Fenced, the per-claim reset, the heartbeatAt column).
  • "More often than its timeout" and the never-shipped "Before, …" are gone.

Re-ran the fragment-by-fragment comparison against base c3665d90e: 293 fragment bullets map to 293 changelog bullets. The only differences are the intended edits:

  • the merged heartbeat entry, which replaces the two fragments;
  • the (#4254) reference;
  • the Java 21+ Fixed line.

changelog.d/ is still only README.md. develop has moved one commit (#4550, API reference JSON), which adds no fragment and doesn't touch CHANGELOG.md.

PR CI: 12 pass, 3 skipping, 0 fail. Still to do at the cut: set the heading date to the tag date.

@bpamiri
bpamiri merged commit 1c8ea50 into develop Oct 11, 2026
15 checks passed
@bpamiri
bpamiri deleted the peter/changelog-4.2.0 branch October 11, 2026 19:00
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