Fix changelog #104
Labels
No labels
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente#104
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Prod is right now on version 2.3 and everything we do is unreleased and will therefore be 2.4. Please fix this. Also shorten the release notes. There's far too much information in there, unimportant to most non-technical people.
In general, everything we do goes into an "Unreleased" section. Only if I manually trigger the prod release process, then we'll accumulate everything into a version changelog and create a new empty section for the next development cycle.
🤖 On it — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
Pushed to
claude/issue-104.What was wrong
The dialog listed 2.4.0, 2.4.1, 2.5.0, 2.6.0 and 2.7.0 while production sits on
v2.3.0— five versions that were never tagged and that nobody outside the repository had ever seen. That is what guessing a version number in the pull request that writes the entry produces. Twenty-one bullets across them, several about where a button moved to.What it does now
Everything goes into
Changelog.Unreleased, and nothing but a release ever names a version. The five phantom versions are folded back into that one block — which is what 2.4.0 will be when you cut it.Releasesnow starts at the 2.3.0 that actually shipped.The release promotes it.
.claude/skills/release/scripts/promote-changelog.py X.Y.Zmoves the whole block intoReleases, dates it the day it is tagged, and leaves an empty block behind for the next cycle. It has a--checkmode, refuses an empty block (a deploy fix gets no entry — that is correct, not a hole to fill), and refuses avprefix. It is wired into the release skill as its own step before the tag, landing as a smallrelease/vX.Y.ZPR sincemainis protected — which also means the final notes are on dev a minute before the tag ships them.The copy is much shorter, which was the other half of the ask: 21 bullets → 6 for everything unreleased, and every older release is now two lines.
ChangelogTestscaps an entry at seven bullets and a bullet at 260 characters, so it cannot grow back quietly.Latestand the "you haven't read this" dot stay about the newest release. The unreleased block has no version for a browser to remember and moves several times a week on dev, so it is there to be read rather than to nudge — the badge marks the newest release below it. On production the block is empty and the dialog is exactly what it was.Verified
dotnet build Ponente.sln— 0 errors, 0 warnings;dotnet test— 287 passed (7 new/changed changelog tests).ASPNETCORE_ENVIRONMENT=Development) and ranchangelog.spec.jsandinstall.spec.jsagainst it — passed; the screenshots above are that instance.i18n.spec.jspassed except one test that pins a cookie tolocalhost:8090, which my127.0.0.1:5000base URL cannot satisfy — unrelated to this change.2.4.0): the promoted, empty-Unreleasedshape also builds and passes all 287 tests, so the state production will be in is covered too.One thing left for you: the first release cut after this merges is the one that turns the block into
2.4.0— nothing in the repo will do it on its own.⏱ 15m 55s · 75 turns · tokens: 171.6k in / 49.1k out (+10142.9k cache-read)
📜 Full session transcript
→ Opened PR: #105