docs: write the 3.0.0 release notes, and let Release take an explicit bump - #290
Merged
Conversation
… 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 aBREAKING CHANGE:body footer is never even seen), andforce_releaseonly rescues anonebump — 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
bumpinput (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 thenoneearly exit. This also fixes the longer-standing gap where a deliberate patch or hotfix had no way to be expressed.Verification
release.ymlparses, and both dispatch inputs resolve (force_release,bump).v3.x→3.0.0,v2.x→2.13.0and older, legacyv1.xintact.Merging this only lands the notes and the input. The release itself is a separate
workflow_dispatchwithbump: major— and the input has to be onmainbefore it can be selected.🤖 Generated with Claude Code