This document gives step-by-step instructions for publishing a release. These instructions assume that the component uses Maven to build the site.
The starting point for this document is that a release candidate has been created and a [VOTE] successfully passed. Guidelines for these preparations can be found here.
In particular, it is assumed:
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 dev to release.
You can perform multiple svn mv operations (with or without local working copies) or you can use svnmucc, for example:
svnmucc -U https://dist.apache.org/repos/dist \
mv dev/commons/foo/RELEASE-NOTES.txt release/commons/foo \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.asc release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.md5 release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.tar.gz.asc release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.asc release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.md5 release/commons/foo/binaries \
mv dev/commons/foo/binaries/commons-foo-1.2-bin.zip.asc release/commons/foo/binaries \
mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.asc release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.md5 release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.tar.gz.asc release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.zip release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.zip.asc release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.zip.md5 release/commons/foo/source \
mv dev/commons/foo/source/commons-foo-1.2-src.zip.asc release/commons/foo/source \
-m "Publish commons-foo 1.2 Release"
Update README
The contents of the README.html are displayed at the bottom of the html
showing the directory listing. This document should be updated to reflect the new release.
If this document is not present, then copy one from an existing release directory
and edit that.
The README must be https://dist.apache.org/repos/dist/release/commons/foo/README.html
Update the latest release number. Please also read through and correct any mistakes you find and fix other items (eg. urls) which need updating.
Check KEYS file
Check the KEYS file located in the main release directory. This should contain all the
public keys which have been used to sign Commons' releases. Make sure that this file exists and
that it contains the public key you've used to sign these releases. The KEYS file
gives instructions on how to do this.
Login 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 http://repo1.maven.org/maven2/.
Copy the release candidate tag in subversion to a name without RC in its name.
Wait until the release files are available from the main Apache web site (http://www.apache.org/dist/commons/foo/), then confirm things are good.
Check the main directory:
Follow the links to the binaries and source directories. Check them in a similar manner.
Announce 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 [ANNOUNCEMENT] Foo 1.2 Released. Send this mail from your Apache account. Please spell check the document!
Wait to send the release announcement until you have verified that
The release announcement should go to (at least) the following mailing lists:
That's it! The release is out there - but there is still some tidying up to be done.
<release>
<Version>
<name>x.y.z</name>
<created>yyyy-mm-dd</created>
<revision>x.y.z</revision>
</Version>
</release>