Skip to content

Release checklist

Maximilian Marx edited this page Apr 3, 2024 · 3 revisions

How to do a Nemo release

This checklist details the steps to take for releasing Nemo version X.Y.0.

Prepare the release branch

  • ensure the local repository is up to date: git pull
  • create a new branch from current main: git switch -c release-X.Y main
  • update the nix inputs: nix flake update --commit-lock-file
  • if necessary, bump the version bounds of dependencies in the Cargo.toml files
  • commit the changes: git add Cargo.lock && git commit -m 'Bump dependencies'
  • bump the Nemo version number (version under workspace.package) to X.Y.0 in Cargo.toml
  • make sure the list of authors in Cargo.toml is up to date (compare with git shortlog --summary --numbered --email)
  • update the cargo dependencies to propagate the new version number: cargo update
  • commit the changes: git add Cargo.{toml,lock} && git commit -m 'Bump Nemo version'
  • check that the project builds cargo clean && cargo build --release
  • check that the flake evaluates: nix flake check
  • make sure the README.md is up to date
  • commit the changes: git add README.md && git commit -m 'Update README'
  • bump the Nemo version number to X.Y.1-dev in Cargo.toml
  • update the cargo dependencies to propagate the new version number: cargo update
  • commit the changes: git add Coargo.{toml,lock} && git commit -m 'Bump Nemo version'
  • push the branch and tag: git push origin release-X.Y
  • create a Pull Request and merge the release branch
  • switch to the main branch: git switch main
  • pull them main branch: git pull
  • tag the release, making sure not to include the bump to X.Y.1-dev: git tag -s vX.Y.0 -m 'Nemo version X.Y' HEAD^
  • push the tag: git push --tags

Create the release

  • wait for the release workflow to create a draft release
  • write the release notes for the new release
  • publish the release
  • celebrate!

Recover from mistakes

  • delete the release tag on GitHub: git push origin :vX.Y.0
  • delete the release tag locally: git tag --delete vX.Y.0
  • create the tag on the correct commit: git tag -s vX.Y.0 -m 'Nemo version X.Y' <committish>, where <committish> is the correct commit
  • push the tag: git push --tags
  • wait for the release workflow to update the release
Clone this wiki locally