Skip to content

Creating a Release

Gerben edited this page Sep 1, 2021 · 4 revisions

Creating a Release

Apache Annotator (incubating) follows Apache Software Foundation policy1 for releases. This page documents the process for making releases that adhere to this policy. Consult the policy for additional detail.

Creating a Release Candidate

Releases should be made from a release branch named for its major and minor version numbers, e.g. "v0.1.x". Check out the relevant branch and ensure that the working tree is clean. Run make check to verify that the automated code quality checks all pass. Create a signed tag with a version number that identifies the release candidate:

$ git tag -s vX.Y.Z-rc.N -m "vX.Y.Z-rc.N"
$ git push origin tag vX.Y.Z-rc.N

Run make distsign to build a tarball with checksums and a detached signature.

Publishing a Release Candidate

Add the files to the Apache distribution site:

$ svn co https://dist.apache.org/repos/dist/dev/incubator/annotator/source dev
$ mkdir -p dev/X.Y.Z/rc.N
$ cp apache-annotator-X.Y.Z-rc.N-incubating.tar.gz* dev/X.Y.Z/rc.N
$ # If this is the first release candidate:
$ svn add dev/X.Y.Z
$ # Otherwise:
$ svn add dev/X.Y.Z/rc.N
$ svn propset svn:mime-type text/plain dev/X.Y.Z/rc.N/*.gz.asc dev/X.Y.Z/rc.N/*.gz.sha*
$ svn ci -m "Add Annotator X.Y.Z rc.N to dev tree"

Voting to Release

Instructions for managing a release vote can be found in the Apache Software Foundation incubation policy section regarding releases 1. A project undergoing incubation requires two votes to approve a release. After requesting either vote, wait a minimum of 72 hours before closing the voting period. The release manager has the power to abort a vote at any time and for any reason.

Publish the Release

Tag the candidate with the version number:

$ git checkout vX.Y.Z-rc.N
$ git tag -s vX.Y.Z -m "vX.Y.Z"
$ git push origin tag vX.Y.Z

Rename the release files:

$ cp apache-annotator-X.Y.Z-rc.N-incubating.tar.gz apache-annotator-X.Y.Z-incubating.tar.gz
$ cp apache-annotator-X.Y.Z-rc.N-incubating.tar.gz.asc apache-annotator-X.Y.Z-incubating.tar.gz.asc
$ cp apache-annotator-X.Y.Z-rc.N-incubating.tar.gz.sha256 apache-annotator-X.Y.Z-incubating.tar.gz.sha256
$ cp apache-annotator-X.Y.Z-rc.N-incubating.tar.gz.sha512 apache-annotator-X.Y.Z-incubating.tar.gz.sha512

Add the release files to the Apache distribution site:

$ svn co https://dist.apache.org/repos/dist/release/incubator/annotator/source release
$ mkdir release/X.Y.Z
$ cp apache-annotator-X.Y.Z-incubating.tar.gz* release/X.Y.Z
$ svn add release/X.Y.Z
$ svn propset svn:mime-type text/plain release/X.Y.Z/*.gz.asc release/X.Y.Z/*.gz.sha*
$ cd release
$ svn ci -m "Add Annotator X.Y.Z release files"

Announce the Release

Wait for any scheduled release time before announcing the release. If there is no scheduled release time, wait at least 24 hours for the mirrors to be up-to-date. Send a release announcement to [email protected] and [email protected]. Announce the release on any other relevant media channels.