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:
On people.apache.org, change directory to the distribution directory for your component:
cd /www/www.apache.org/dist/commons/foo/ Move source distributions, their detached signatures and md5 sums into position. All source versions live in the source subdirectory.
mv ~/public_html/foo-1.2-RC3/commons-foo-1.2-src* source Move the binary distributions, their detached signatures and md5 sums into position. All binary versions live in the binaries subdirectory. [Note: the source must have been moved already, otherwise the following command will also be applied to the source files.]
mv ~/public_html/foo-1.2-RC3/commons-foo-1.2* binaries Double check the permissions for both binaries and source distributions. The file permissions should be "-rw-rw-r--" and the group should be "commons", for example:
-rw-rw-r-- 1 userid commons 203 Feb 21 23:45 commons-foo-1.2-src.tar.gz.asc
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.
Update the latest release number. Please also read through and correct any mistakes you find and fix other items (eg. urls) which need updating.
Copy the revised README.html into the binary and source directories, replacing any old versions.
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.
Symbolic Links
These are no longer to be used, so please
do not use symbolic links in mirrored directories!
Update RELEASE-NOTES
Replace the current RELEASE-NOTES.txt with the new release notes.
mv ~/public_html/foo-1.2-RC3/RELEASE-NOTES.txt .
Download maven-metadata.xml for commons foo from repo1.maven.org. This file is located in the top-level directory for the component. The file should contain a versioning element, similar to the following:
<versioning>
<release>1.1</release>
<versions>
<version>1.0</version>
<version>1.1</version>
</versions>
<lastUpdated>20091011214529</lastUpdated>
</versioning> Create a version element for 1.2, update the release version and update the date in the lastUpdated element:
<versioning>
<release>1.2</release>
<versions>
<version>1.0</version>
<version>1.1</version>
<version>1.2</version>
</versions>
<lastUpdated>20100401214529</lastUpdated>
</versioning> Create the hash files, maven-metadata.xml.sha1 and maven-metadata.xml.md5 for the updated metadata file. If you do not have openssl or another suitable utility installed locally, you can upload the edited maven-metadata.xml file to people.apache.org and use the following commands to create these files:
md5 -q maven-metadata.xml > maven-metadata.xml.md5
sha1 -q maven-metadata.xml > maven-metadata.xml.sha1 Your Maven artifacts (jar and pom files with hashes and signatures) should be placed in /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/commons/commons-foo/1.2/ on people.apache.org. This assumes that your component has been migrated to use the org.apache.commons groupId. If the component still uses commons-foo as its groupId, the deployment location should be /www/people.apache.org/repo/m2-ibiblio-rsync-repository/commons-foo/commons-foo/1.2. If your RC directory includes a "maven" subdirectory including the maven artifacts, you can move the maven artifacts using the following commands (assuming the org.apache.commons groupId):
mkdir /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/commons/commons-foo/1.2
chgrp commons ~/public_html/foo-1.2-RC3/maven/*
chmod g+w ~/public_html/foo-1.2-RC3/maven/*
mv ~/public_html/foo-1.2-RC3/maven/* /www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/commons/commons-foo/1.2 Double-check permissions on the newly created directory and the deployed files. Also double-check that all of the artifacts have hashes and signature files associated with them.
The updated maven-metadata.xml and its sha1 and md5 hashes should be placed in the directory above the deployed artifacts (/www/people.apache.org/repo/m2-ibiblio-rsync-repository/org/apache/commons/commons-foo if org.apache.commons is the groupId).
The files placed here will be mirrored (after some delay) to the public distribution repository on http://repo1.maven.org/maven2/.
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>