Cut a release
The version, the date and the author of a release are never typed — not by a person and not by a coding agent. One command sets them; what you write is the release notes.
1. Prepare
On a clean, up-to-date main:
mise run release 0.4.2
This switches to a new branch release/0.4.2, sets the version in Cargo.toml
and Cargo.lock, and opens a dated entry in the three changelogs:
-
packaging/rpm/wusel.spec(%changelog) -
packaging/deb/debian/changelog -
documentation/modules/ROOT/pages/project/changelog.adoc
It refuses a version that is not above the current one, or that already has a branch, tag or changelog entry.
2. Write the release notes
Replace the TODO: describe the release line in each of the three files. The
RPM entry is terse, the Debian entry a little fuller, the documentation page
says why. Leave the header lines as they are.
mise run headers-check warns about a TODO left behind and about a weekday
that does not match its date.
3. Merge
git commit -am 'chore(release): 0.4.2'
git push -u origin release/0.4.2
Merge the branch into main like any other change.
4. Publish
Tag the merged main and push the tag to the public repository:
git tag v0.4.2
git push github v0.4.2
The tag starts the release workflow, which builds the RPM and the Debian
package and attaches them to the release. It stops before building anything if
the tag and the version in Cargo.toml disagree.