amaranth
amaranth copied to clipboard
Document release process
Right now it is only documented in my head, which is suboptimal.
To release a new stable point release:
- Ensure changelog is up to date. (This should normally be the case, but is always worth a secondary check. This can be done by looking through the commits to
vMAJOR.MINOR.xstable branch since the latest tag. - Create a new unannotated tag
vMAJOR.MINOR.PATCHfrom the latest commit tovMAJOR.MINOR.x. Do not do this via GitHub's release interface. Do not create a GitHub release (a release will be created automatically by a CI workflow). An appropriate CLI command to do this is:git checkout vMAJOR.MINOR.x && git pull --no-merge && git tag vMAJOR.MINOR.PATCH. - Push the tag
vMAJOR.MINOR.PATCHto https://github.com/amaranth-lang/amaranth. This kicks off the automated test and release process via CI workflows. - Verify that the built artifacts have been pushed to https://pypi.org/project/amaranth and that a GitHub release has been created at https://github.com/amaranth-lang/amaranth/releases.
- Check out https://github.com/amaranth-lang/playground and update
src/config.tswith the URL of the built artifact for the newly released version. - Verify that
Version MAJOR.MINOR.PATCHappears in the version selector when running the playground locally (see the playground README for details). - Push updated
mainbranch of the playground and wait for CI to pass. - Update
livebranch of the playground from themainbranch, e.g. usinggit push origin main:livein the checkout used for the previous step. - Done! :tada:
2. Create a new annotated tag
vMAJOR.MINOR.PATCHfrom the latest commit tovMAJOR.MINOR.x.
This actually breaks our CI because of some horrific tag-related behavior: https://github.com/amaranth-lang/amaranth/actions/runs/10717897781/job/29718819926
Changing to use unannotated tags for now.