blob: 4592f94c4deb6cdb37f24a19c06933261dbbc17e [file] [log] [blame]
Instructions for making an Antlib Release:
Authors: Conor MacNeill
Stefan Bodewig
Magesh Umasankar
Antoine Levy-Lambert
Note: this document is based on Ant core's ReleaseInstructions file
<https://git-wip-us.apache.org/repos/asf?p=ant.git;a=blob;f=ReleaseInstructions>
and adapted while Stefan was preparing the 1.4 release of AntUnit
1. Propose a release plan for vote. This should set out the timetable for
the release under ideal circumstances.
2. The Ant release instructions say you should create a branch at
the freeze date. In the case of the Antlibs (and maybe in general) it
may be simpler and more convenient to delay the creation of a
branch until you want to start new development in trunk.
3. We don't want tags for failed votes to end up on our branches so
the release is first created from a detached head.
Checkout the HEAD of the master branch as a detached head:
$ git checkout master^0
4. Make sure that your directory tree is clean by running git status.
Some tests leave behind leftovers which end up in the source
distribution otherwise.
5. Create a file version.properties in the projects root dir or
edit it if it already exists. Change the value of property
artifact.version to 1.4.
[[ TODO: Check if the documentation files also need to be updated to point
to the right areas of Ant's website. ]]
6. Before a build :
the artifact.version property in version.properties governs the naming of
the distribution files.
Update the following files for version number:
* docs/index.html
* version.properties (artifact.version property)
Fix the release date inside changes.xml.
Commit your changes.
7. Ensure you have all the external libraries that the Antlib uses
available to your build.
8. Next build and run the tests. Then build the distribution. It is
important that this be a clean build.
$ ant clean antlib
$ ant test -lib DEPENDENCIES_OF_YOUR_LIBRARY -lib ANTUNIT \
-lib build/lib/YOUR_LIBRARY
To build the distribution run the distribution target or the
fat-distribution target if you intend to create a binary
distribution that also contains all dependencies.
To build the mvn artifacts run the prepare-upload target.
9. Create a tag, push all changes.
$ git tag -s -m "Tagging RC1 for version 1.5 of Compress Antlib" 1_5_RC1
$ git push --tags
10. Sign the distribution files using the following simple script
#!/bin/sh
for i in `/usr/bin/find distribution \( -name "*.bz2" -o -name "*.zip" -o -name "*.gz" \)`
do
echo "Signing " $i
gpg --use-agent --detach-sign --armor $i
done
for i in `/usr/bin/find build/java-repository -type f`
do
echo "Signing " $i
gpg --use-agent --detach-sign --armor $i
done
Before you do that, ensure that the key you use is inside the KEYS
file in Ant's svn repository - and that you perform an svn update on
the KEYS file in /www/www.apache.org/dist/ant/
Also make sure you have sent the key that you use to a public
keyserver.
11. The distribution is now ready to go. Check in all your
distribution files to
https://dist.apache.org/repos/dist/release/ant/antlibs/ANTLIB
Copy the file README.html from dist-bin to
https://dist.apache.org/repos/dist/dev/ant/antlibs/ANTLIB as
RELEASE-NOTES-x.y.z.html.
To upload mvn artifacts to the Nexus repository manager run
ant upload -Dupload.user=YOUR-ASF-ID -Dupload.password=SVN-PASSWORD
Before others can see the artifacts you've uploaded, you need to
close the staging repository that has just been created.
See http://www.apache.org/dev/publishing-maven-artifacts.html#close-stage
Nexus will create .md5 and .sha1 files for your .asc signatures
that can savely be deleted via
https://repository.apache.org/index.html#stagingRepositories
(log in using your ASF credentials).
12. Once this is committed send a release vote email on dev@ant.
The email will typically mention :
- the git tag for the release including commit hash,
- the location of the tarballs, including revision number in
dist.apache.org repository
- the URL for the maven artifacts
- pointers to the KEYS file containing the key used to sign the artifacts
The vote will only pass if at least three PMC members have voted +1
and more +1s than -1s have been cast. The vote will run for 3 days.
13. Once the vote has passed, push the release and RELEASE-NOTES files
into the release directory.
The files should go to
https://dist.apache.org/repos/dist/release/ant/antlibs/ANTLIB
You can (sparsely) check out https://dist.apache.org/repos/dist
and perform the "svn mv" operation there or build up a pretty long
svnmucc command line to move all files from dev to release with a
single commit.
Tag the last RC created with the final tag
$ git tag -s -m "Tagging version 1.5 of Compress Antlib" rel/1.5 HASH_OF_LAST_RC
$ git push --tags
release the maven artifacts using the web interface of nexus under
https://repository.apache.org
- login using your Apache credentials
- in the left pane, below "build promotion", click on the
"Stagings Repositories" links
- expand org.apache.ant
- select the checkbox next to the upload that you just did
- and click the button "Release".
About 4 hours later, the artifacts will be in the maven central repository.
14. Update the Apache Reporter System
https://reporter.apache.org/addrelease.html?ant
15. Address the available version tags in BugZilla. Create new
milestone 1.6 and version 1.5.
Most likely they already exist because of Ant itself.
16. Add a new release tag to doap_*.rdf in Ant's site.
17. checkout the master branch, merge the tag but don't push the
commit
Update the following files for version number ([newversion]alpha):
* docs/index.html (if there is a version number)
* version.properties (artefact.version property)
* changes.xml (add new section)
18. wait a few hours for the mirrors to catch up
19. Update the ant.apache.org site :
The website is managed here: https://svn.apache.org/repos/asf/ant/site/ant/
Update the following files for version number:
* source/antnews.xml (Announcement)
* source/index.xml (Announcement, latest release details, link to
manual under "Documentation")
* source/antlibs/proper.xml
* source/antlibs/srcdownload.xml
* source/antlibs/bindownload.xml
* source/antlib/ANTLIB/index.xml and other antlib specific pages
Generate the html files by invoking 'ant'
Commit the modified/generated files in the 'production' folder, it will go
live on ant.apache.org in a matter on seconds.
20. At this point in time, the release is done and announcements are made.
PGP-sign your announcement posts.
Apache mailing lists that should get the announcements:
announce@apache.org, dev@ant and user@ant.
21. You can now reacquaint yourself with your family and friends.
22. After a few days "svn rm" the older release artifacts and release
notes from https://dist.apache.org/repos/dist/release/ant/
Related Information
http://www.apache.org/dev/release-publishing.html
http://jakarta.apache.org/commons/releases/
http://wiki.apache.org/jakarta-commons/SigningReleases