- Ensure
## [Unreleased]inCHANGELOG.mdis up to date. - Run
scripts/release.py <version>(e.g.scripts/release.py 1.2.3). This bumps the version inCMakeLists.txt, moves[Unreleased]content to[version]inCHANGELOG.md, commits both files, and creates an annotated git tag. - Push:
git push && git push --tags. - Create a GitHub release from the tag with
gh release create. The description has two sections:## A-sidecontaining a short rap, followed by## B-sidecontaining the new version's changelog entry verbatim.
- Up to four verses, four lines per verse.
- One emoji at the end of each line.
- Reference concrete changes from the changelog (commands, APIs, fixes), not generic flexing.
- Tone: playful, hip-hop bravado, technically accurate.