diff --git a/.github/ISSUE_TEMPLATE/release.md b/.github/ISSUE_TEMPLATE/release.md index 56f7465b0..998f00f66 100644 --- a/.github/ISSUE_TEMPLATE/release.md +++ b/.github/ISSUE_TEMPLATE/release.md @@ -1,20 +1,20 @@ --- name: Release about: Issue template to prepare a release step by step. -title: "Release vX.Y.Z" +title: "Release vX.Y.Z (or vX.Y.Zrc?)" --- Release check-list: +- [ ] Choose the version number, e.g. `vX.Y.Z` (can be `vX.Y.Zrc?` for Release Candidates) following semantic versioning: https://semver.org/ +- [ ] Update the version in pyproject.toml to `X.Y.Z` (or `vX.Y.Zrc?`) - [ ] Check the release milestone issues, cut out what can't be completed in time -- [ ] Choose the version number, e.g. `vX.Y.Z` following semantic versioning: https://semver.org/ -- [ ] Update the version in pyproject.toml to `X.Y.Z` -- [ ] Checkout the commit for release, create a signed tag with the version name `git tag -s -a -m "vX.Y.Z release" vX.Y.Z`, push it to GitHub with `git push origin refs/tags/vX.Y.Z` +- [ ] Checkout the commit for release, create a signed tag with the version name (careful for RC) `git tag -s -a -m "vX.Y.Z release" vX.Y.Z`, push it to GitHub with `git push origin refs/tags/vX.Y.Z` - [ ] Run sanity checks inside the dev docker: `make pcc` and `make pytest && make coverage` - [ ] On the build machine with docker installed, run in your OS terminal in the project dir: `make release_docker` -- [ ] Re-tag the image with `docker tag concretefhe-release:latest ghcr.io/zama-ai/concretefhe-release:vX.Y.Z` +- [ ] Re-tag the image with `docker tag concretefhe-release:latest ghcr.io/zama-ai/concretefhe-release:vX.Y.Z` (or `vX.Y.Zrc?`) - [ ] `docker login ghcr.io`, input your username and GitHub Personal Access Token (PAT). If not already done add `write:packages` to your PAT -- [ ] Push the release image `docker push ghcr.io/zama-ai/concretefhe-release:vX.Y.Z` -- [ ] See [here](https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) to create the release in GitHub using the existing tag, add the pull link \(`ghcr.io/zama-ai/concretefhe-release:vX.Y.Z`\) for the uploaded docker image +- [ ] Push the release image `docker push ghcr.io/zama-ai/concretefhe-release:vX.Y.Z` (or `vX.Y.Zrc?`) +- [ ] See [here](https://docs.github.com/en/github/administering-a-repository/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release) to create the release in GitHub using the existing tag, add the pull link \(`ghcr.io/zama-ai/concretefhe-release:vX.Y.Z`\) (or `vX.Y.Zrc?`) for the uploaded docker image All done! diff --git a/docs/dev/howto/RELEASING.md b/docs/dev/howto/RELEASING.md index a1b631aef..36974d20f 100644 --- a/docs/dev/howto/RELEASING.md +++ b/docs/dev/howto/RELEASING.md @@ -1,3 +1,9 @@ # Creating A Release On GitHub -Please open an issue with the release template: https://github.com/zama-ai/concretefhe-internal/issues/new?assignees=&labels=&template=release.md. The check-list will guide you through what's required. +## Release Candidate cycle + +Before settling for a final release, we go through a Release Candidate (RC) cycle. The idea is that once the code base and documentations look ready for a release you create an RC Release by opening an issue with the release template here: https://github.com/zama-ai/concretefhe-internal/issues/new?assignees=&labels=&template=release.md starting with version `vX.Y.Zrc0` and then with versions `vX.Y.Zrc1`, `vX.Y.Zrc2`... + +## Proper release + +Once the last RC is deemed ready, open an issue with the release template using the last RC version from which you remove the `rc?` part (i.e. `v12.67.19` if your last RC version was `v12.67.19-rc4`): https://github.com/zama-ai/concretefhe-internal/issues/new?assignees=&labels=&template=release.md.