-
Notifications
You must be signed in to change notification settings - Fork 62
[Maintenance] Release Process, Container Updates
EasyCrypt now aims to release every 6 weeks, although we may skip some releases due to holidays. (Rather than delaying them.) This page documents the release process so the responsibility for issuing releases can be distributed among maintainers rather than being centralised.
The "correct" release process is to:
- create an annotated tag, then
- create a release from it using GitHub's release UI, then
-
move the
releasebranch forward to point to the newest release, then - consider bumping prover versions for provers present in the
build-boximmediately after release (letting the release settle first), to force progress on maintained proofs.
Making sure you are on main, and up to date with the GitHub main, run:
git tag -a ryyyy.mm -m "Release yyyy.mm"
then git push origin refs/tags/ryyyy.mm (assuming the GitHub remote is origin).
Go here, and:
- select the just created tag;
- select
mainas target; - Fill in "Release yyyy.mm" as "Release title"
- Click "Generate release notes"
- Make sure that "Set as the latest release" is ticked
- Click "Publish release"
- Bask
Most likely, you messed it up and are prevented from basking by the fact that you did not create the tag as an annotated tag before publishing a release from it, and asked GitHub to create a tag instead. To fix it, first make sure that git push -f will not do anything other than overwrite the tag (make a fresh clone of the repo if necessary):
git pull ryyyy.mmgit tag -f -a ryyyy.mm -m "Release yyyy.mm"git push -f --tags- Bask for real
The following should do the trick, since we keep our history linear-ish.
git checkout release
git rebase ryyyy.mm
git push
Until further notice, it may be a good idea to also update the latest branch in the same way, while the deprecation percolates through user scripts.