Publishing The Release - Step By StepIntroduction
This document gives step-by-step instructions for publishing a release. These instructions
assume that the component uses
The starting point for this document is that a release candidate has been created and a
In particular, it is assumed:
1 Move Releases Into Distribution Directories
The distribution area of commons releases is populated from
https://dist.apache.org/repos/dist/release/commons/
via svnpubsub. In order to publish the release, you must move the distributions files
from You can perform multiple svnmucc -U https://dist.apache.org/repos/dist \ rm release/commons/foo/RELEASE-NOTES.txt \ mv dev/commons/foo/RELEASE-NOTES.txt release/commons/foo/RELEASE-NOTES.txt \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz release/commons/foo/binaries/commons-foo-1.2-bin.tar.gz \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.asc release/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.asc \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.md5 release/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.md5 \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.sha1 release/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.sha1 \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip release/commons/foo/binaries/commons-foo-1.2-bin.zip \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.asc release/commons/foo/binaries/commons-foo-1.2-bin.zip.asc \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.md5 release/commons/foo/binaries/commons-foo-1.2-bin.zip.md5 \ mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.sha1 release/commons/foo/binaries/commons-foo-1.2-bin.zip.sha1 \ mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz release/commons/foo/source/commons-foo-1.2-src.tar.gz \ mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.asc release/commons/foo/source/commons-foo-1.2-src.tar.gz.asc \ mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.md5 release/commons/foo/source/commons-foo-1.2-src.tar.gz.md5 \ mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.sha1 release/commons/foo/source/commons-foo-1.2-src.tar.gz.sha1 \ mv dev/commons/foo/source/commons-foo-1.2-src.zip release/commons/foo/source/commons-foo-1.2-src.zip \ mv dev/commons/foo/source/commons-foo-1.2-src.zip.asc release/commons/foo/source/commons-foo-1.2-src.zip.asc \ mv dev/commons/foo/source/commons-foo-1.2-src.zip.md5 release/commons/foo/source/commons-foo-1.2-src.zip.md5 \ mv dev/commons/foo/source/commons-foo-1.2-src.zip.sha1 release/commons/foo/source/commons-foo-1.2-src.zip.sha1 \ -m "Publish commons-foo 1.2 Release" 2 Update Release Directory
Update README cd binaries ln -s README.html ../README.html ln -s HEADER.html ../HEADER.html cd ../source ln -s README.html ../README.html ln -s HEADER.html ../HEADER.html Then update the latest release number in README.html. Please also read through and correct any mistakes you find and fix other items (eg. urls) which need updating.
Check KEYS file 3 Deploy Maven ArtifactsLogin to the Nexus web interface, select your staging repository and promote it. The files placed here will be mirrored (after some delay) to the public distribution repository on https://repo.maven.apache.org/maven2/. 4 Create SCM Tag for the Final ReleaseCopy the release candidate tag in subversion to a name without RC in its name: svn cp -m "Release commons foo 1.2 based on RC 1" \ https://svn.apache.org/repos/asf/commons/proper/foo/tags/foo-1.2-RC1 \ https://svn.apache.org/repos/asf/commons/proper/foo/tags/foo-1.2 Make sure you have the latest changes on the master branch and the release branch: git checkout release git pull origin master git pull origin release Now create the final tag (note that it should follow the same naming convention as for the release candidate, except for dropping the "rc" suffix and prepending the "rel/" string), bump the version number to the next development version, commit the new version and merge the release branch back into the master branch, so that the master branch also has the new development version: git tag -s rel/commons-foo-1.2 -m "Create Commons Foo 1.2 release tag" mvn versions:set -DnewVersion=1.3-SNAPSHOT -DgenerateBackupPoms=false git commit -am "Bump to next development version" git checkout master git merge release git push origin master git push origin rel/commons-foo-1.2 Make sure, that your release tags follows the naming conventions of the component. 5 Test Main Site Downloads
Wait until the release files are available from the main Apache web site
( Check the main directory:
Follow the links to the binaries and source directories. Check them in a similar manner. 6 Update Component Build and Website
7 Create AnnouncementsAnnounce the availability of the new release.
Please remember to give a brief description of your component. Please also remember to remind people
about verifying the signatures. The subject should be something like Wait to send the release announcement until you have verified that
The release announcement should go to (at least) the following mailing lists:
8 Update Main Website
9 Post Release CleanupThat's it! The release is out there - but there is still some tidying up to be done.
|