Pekko Release Process ‐ ATR CI‐assisted release - apache/pekko-site GitHub Wiki
The release is managed by a Release Manager (a human) and involves building and deploying artifacts (including generating SHA digests and PGP signatures for them). Emails must be sent to Apache mailing lists and a vote arranged.
The release be only finalized after passing the vote. This involves moving the release artifacts to official Apache release repo (from the staging repo). We also need to release the Maven artifacts. The Pekko web site must be updated to include links to download the release. Emails are also sent out announcing the release.
Relevant Reading
Agree to start the Release Process
- Email [email protected] similar to https://lists.apache.org/thread/6c4ppo9j8w9zmwskh1zq15cyc0ff9wd3 proposing to perform a release and volunteering to RM
Checklist
- Start a Release notes PR (we don't require it to be merged before tagging the release, though)
- Releasing off a branch other than main branch?
- We don't tend to backport changes like year changes in NOTICE files and dependency version updates
- so if you are releasing from a branch like 1.0.x, 1.1.x, etc., you should check if we need to update the year in the NOTICE files (check also the 'legal' directory)
- see if there are patch level dependency updates that can be added - maybe only if they fix CVEs and only if they don't require much uptake other than changing changing the jar version
- Start the release on https://release-test.apache.org/
Stage Release Candidate artifacts
- Use
git statusto ensure you are using the 'main' branch - Git tag - eg
git tag v1.0.0-RC1,git push origin tag v1.0.0-RC1 - Run the "Stage the source tarball to ATR" and "Stage the binary jars to nexus" parts of the Stage Release Candidate action for this tag
Organise Pekko review and vote
- Once the artifacts have been correctly uploaded to ATR and Nexus, run the "Generate vote email template" part and view its output
- Copy the vote email template from the GitHub Action output and use it to start the vote via https://release-test.apache.org/
Pekko
Vote Rules
- anyone can vote
- we need a minimum of 3 approvals from Pekko PMC members
- the review must include independently reproducing these artifacts.
- if we have more approvals than disapprovals, the vote passes (as long we have more approvals than disapprovals among all voters), eg 3 +1s and 2 -1s is a vote for release
- the vote can be cancelled by the Release Manager if there is a serious flaw found in the release candidate
If the Vote Fails
- delete the RC files in https://dist.apache.org/repos/dist/dev/pekko/1.0.0-RC1
- use https://repository.apache.org/ UI to remove the staged jars
If the Vote Succeeds
- Use https://release-test.apache.org/ to send the notification that the vote succeeded with a summary
- add git tag 'v1.0.0' to the same commit as the accepted RC and push it
- 'Release' the jars from Apache Maven Repository (staging)
- use https://repository.apache.org/ UI to release the staged 1.0.0 jars
- move the release files from ATR to https://dist.apache.org/repos/dist/release/pekko/1.0.0, notably dropping the 'RC'
- dist.apache.org is a huge repo so you probably want a sparse checkout - see https://svnbook.red-bean.com/en/1.8/svn.advanced.sparsedirs.html
- once this is committed to svn, you should receive an automated email from
[email protected]with a link tohttps://reporter.apache.org/addrelease.html?pekkoor something like that- follow that link and record the release and the date - prefix the release, eg 'Pekko 1.0.0'
- we will have a 'Pekko HTTP 1.0.0' in due course so we need to differentiate them
- update the download page in https://github.com/apache/pekko-site and publish the updated pages
- we need to match the contents of other Apache project download pages
- https://poi.apache.org/download.html (one example)
- there are some download links already - so try to match those
- we only need to link to most recent version of each module - there is already a general purpose link for to archives.apache.org
- note the links to the release files are of this format: https://www.apache.org/dyn/closer.lua/poi/release/src/poi-src-5.2.3-20220909.zip
- the page this returns shows links to https://dlcdn.apache.org/poi/release/src/poi-src-5.2.3-20220909.zip
- the files that we add to https://dist.apache.org/repos/dist/release/pekko will automatically be copied to https://dlcdn.apache.org (but it can take a while)
- send emails to Pekko users and dev lists - use a subject like
[ANNOUNCE] Apache Pekko 1.0.0 released - also to Apache Announce list
- ensure that you have updated the download page first
- this list is curated and don't be surprised if they bounce it back to you requesting fixes
- you can only send emails to [email protected] from your designated @apache.org email so make sure that you have SMTP outgoing mail-relay service setup.