6 Release process
Alex edited this page 2023-05-04 08:52:48 +00:00
  1. make sure version numbers are up to date in cargo.toml files in all subdirectories of src/ (not only the version number of the crates themselves, but also the version numbers of the dependencies to other garage crates)
  2. make sure cargo.lock is updated and that everything builds
  3. make sure cargo.nix is updated and that everything builds using nix as well
  4. make a git commit
  5. do cargo publish in all subdirectories, in topological sort order: db, util, rpc, table, model, api, web, garage
  6. make a git tag
  7. push the tag
  8. promote the tag build
  9. check that the tag build went well, that release page is updated, that docker image is updated
  10. write and publish release notes
  11. celebrate

Some of these things can be done out-of-order. E.g. release notes can be written before hand or during compilation, and published before the final binaries are available to download.