Skip to content

docs: write the 3.0.0 release notes, and let Release take an explicit bump - #290

Merged
BernardJen merged 1 commit into
mainfrom
chore/release-3.0.0
Aug 25, 2026
Merged

docs: write the 3.0.0 release notes, and let Release take an explicit bump#290
BernardJen merged 1 commit into
mainfrom
chore/release-3.0.0

Conversation

@BernardJen

Copy link
Copy Markdown
Contributor

Groundwork for the 3.0.0 release. Two blockers.

The changelog stopped at 2.13.0

Everything from 2.14.0 to 2.19.0 shipped without being written up, and the stale [Unreleased] block still described that work as pending. It also carried two claims that are no longer true:

Both corrected. The 3.0.0 entry leads with the wall performance work, since that is the substance of the release, and records what was ruled out — software rendering, the detection downscale, resize() layout, the capture service — so nobody spends another evening re-investigating them.

Release could not express a major

The bump is derived from commit subjects (%s, so a BREAKING CHANGE: body footer is never even seen), and force_release only rescues a none bump — it cannot raise the level. The only way to ship 3.0.0 with the workflow as it stood was to write !: into a commit subject.

That would claim a breaking change, and there isn't one. I checked: no settings key or launch flag was removed, and nothing persists a screensaver name, so Julia Family replacing two registry entries is invisible to an existing settings.json. 3.0.0 is a milestone, not a break — the notes say so plainly.

So Release now takes an explicit bump input (auto/patch/minor/major). It skips analysis rather than overriding it afterwards, so a run with no qualifying commits still honours the request instead of taking the none early exit. This also fixes the longer-standing gap where a deliberate patch or hotfix had no way to be expressed.

Verification

  • 699 tests green, lint clean.
  • release.yml parses, and both dispatch inputs resolve (force_release, bump).
  • Changelog heading structure checked: v3.x3.0.0, v2.x2.13.0 and older, legacy v1.x intact.

Merging this only lands the notes and the input. The release itself is a separate workflow_dispatch with bump: major — and the input has to be on main before it can be selected.

🤖 Generated with Claude Code

… bump

Two things stood between `main` and a deliberate major.

**The changelog stopped at 2.13.0.** Everything from 2.14.0 to 2.19.0 shipped
without being written up, and the stale `[Unreleased]` block still described
that work as pending. It also carried two claims that are no longer true: the
screensaver set is 29, not 30, and Mandelbrot no longer exists as its own saver
since Julia Family absorbed it.

**The Release workflow could not express a major.** The bump is derived from
commit subjects, and `force_release` only rescues a `none` bump -- it cannot
raise the level. The only way to ship 3.0.0 was to write `!:` into a commit
subject, which asserts a breaking change. There isn't one: no settings key or
launch flag was removed, and an existing settings.json carries over untouched.
Fabricating that marker to move a version number would leave a permanent lie in
the history, so Release now takes an explicit `bump` input instead. It skips
analysis rather than overriding it afterwards, so a run with no qualifying
commits still honours the request instead of taking the `none` early exit.

3.0.0 is therefore a milestone, not a break, and the notes say so. The headline
is the wall: 1.4 fps to 59.7, a 43x improvement, from a per-frame GPU readback
that ran while Art-Net was disabled and a volume poll that compiled C# every two
seconds. The notes also record what was ruled out -- software rendering, the
detection downscale, resize() layout, the capture service -- so nobody spends
another evening re-investigating them.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@BernardJen
BernardJen merged commit 15543e4 into main Aug 25, 2026
1 check passed
@BernardJen
BernardJen deleted the chore/release-3.0.0 branch August 25, 2026 20:08
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