|
- Instructions for making a Release:
-
- Authors: Conor MacNeill
- Stefan Bodewig
- Magesh Umasankar
- Antoine Levy-Lambert
-
- Note: This document was updated in the context of releasing Ant 1.9.5.
- Please interpret the branch names, tags, etc. according to
- your context.
-
- 1. Propose a release plan for vote. This should set out the timetable for
- the release under ideal circumstances.
-
- The issue of whether to create a branch for the release should be
- discussed in the release vote.
-
- 2. We used until Ant 1.6 to create branches, for instance ANT_16_BRANCH
- to allow parallel development on master and on the current branch.
- Given the slow development speed we've reached with 1.9.x this
- doesn't seem to be necessary anymore.
-
- For more information on performing branching and merging, please visit
- http://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Nutshell
-
- 3. Ensure you have all the external libraries that Ant uses in your
- lib/optional directory. All dependencies are either provided by
- JDK 1.5.0 or downloadable using
- ant -f fetch.xml -Ddest=optional.
- To find out whether you have all the libraries you need, execute
- the build with -verbose option and scan for lines beginning with
- "Unable to load...".
-
- 4. Create a branch just for the release, even if you've decided to
- not work with long lived branches in step 2. This branch can be
- removed after the release.
-
- Switch to that branch.
-
- $ git checkout -b prepare_Ant_1.9.5
-
- 5. 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.
-
- 6. Set the version number in several files to the required new
- versions. See the end of this file for a list of files containing
- version information.
-
- 7. Next bootstrap, build and run the tests. Then build the
- distribution on the branch. It is important that this be a clean
- build. Tag this with a tag ANT_195_RC1.
-
- The file release.sh gives an idea of how to do this build process.
- build.xml specifies that the code should be compiled with
- source=1.5 and target=1.5.
-
- git tag -s -m "Tagging RC1 for version 1.9.5 of Ant" ANT_195_RC1
- git push --tags
-
- 8. Sign the distribution files using the script release/signit.xml
-
- This script requires using commons-openpgp to sign the artefacts,
-
- This tool can be checked out from
- http://svn.apache.org/repos/asf/commons/sandbox/openpgp/trunk
- You have to build it using maven
-
- You can create a property file gnupg.properties in your home directory
- with your key id
- and pass your key passphrase on the command line with -Dpassword=****
-
- Before you do that, ensure that the key you use is inside the KEYS
- file in Ant's git repository
- <https://git-wip-us.apache.org/repos/asf?p=ant-antlibs-common.git;a=blob;f=KEYS;h=dc62b011b1b429bd6de913f8f2bce79b715f96db;hb=HEAD> -
- and that you copy the KEYS file to
- /www/www.apache.org/dist/ant
-
- Also make sure you have sent the key that you use to a public
- keyserver.
-
- 9. Convert the part of the WHATSNEW file covering the changes
- since the last release into HTML for the README file on the
- website. See the previous release directories for examples of these files.
- Add instructions and warnings (GNU tar format issues, etc).
-
- Use the target txt2html of docs.xml
-
- This target generates a file build/html/WHATSNEW.html
-
- Add an html head element with a title like "Release Notes of Apache Ant
- 1.9.5" (from the default txt2html)
-
- Cut all sections about previous releases to keep only the current release,
- and save as RELEASE-NOTES-1.9.5.html inside the distribution folder.
-
- Copy the file RELEASE-NOTES-1.9.5.html also as README.html
-
- 10. The distribution is now ready to go.
- Create a SVN sandbox on your computer with https://dist.apache.org/repos/dist/dev/ant in it
- Copy the distribution folder to the location of the sandbox.
- svn add the files and commit into https://dist.apache.org/repos/dist/dev/ant
-
- 11. Upload the maven artifacts located under java-repository/org/apache/ant
- these artifacts comprise currently for each ant jar of one POM
- file, the corresponding jar file and the corresponding GPG
- signatures (x.pom, x.jar, x.pom.asc, x.jar.asc) MD5 and SHA1 are
- generated by ivy during the upload
-
- to
-
- https://repository.apache.org (nexus repository)
-
- using the build file release/upload.xml
-
- ant -Dupload.user=foo -Dupload.password=secret -lib location_of_ivy_jar -f upload.xml
-
- After the upload, you need to access 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 click the button
- "Close" on the top of the table listing the uploads make a note of
- the location of the staging repository for the vote email
-
-
- 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
-
- 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. Update the files listed at the end of the document (files containing
- version information) to prepare the development of the next
- version of Ant on the master branch.
-
- 14. If the vote fails, address the problems and recreate the next RC
- build.
-
- 15. Once the vote has passed, tag the last RC created with the final tag
-
- $ git tag -s -m "Tagging version 1.9.5 of Ant" ANT_195 HASH_OF_LAST_RC
- $ git push --tags
-
- 15. The distrib artifacts should be published the apache dist. It is
- managed via svnpubsub so the release should be committed to the
- subversion repository
- https://dist.apache.org/repos/dist/release/ant/.
-
- In order to keep the main dist area of a reasonable size, old releases
- should be removed. They will disapear from the main dist but will still be
- available via the archive. To do so, just use the "svn rm" command against
- the artifacts or folders to remove.
-
- * commit the new release files to
-
- https://dist.apache.org/repos/dist/release/ant/[source|binaries|manual].
-
- * 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".
- 4 hours later, the artefacts will be in the maven central repository.
-
-
- * Make README.html point to the new RELEASE-NOTES or a copy of
- it.
-
- 16. 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/faq.xml (Ant's history details - not for betas)
- * source/index.xml (Announcement, latest release details, link to
- manual under "Documentation")
- * source/srcdownload.xml
- * source/bindownload.xml
- * source/manualdownload.xml
-
- 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.
-
- Change the version of the manual published on the site: copy the manual into
- the production folder - since the site still uses svn and Ant
- proper uses git there currently is no way to use the scm for this.
-
- 17. Address the available version tags in BugZilla. Create new
- milestones and versions 1.9.6.
- Assign all existing 1.9.5 bugs to 1.9.6.
- Note that such changes can be done at once by choosing the
- link "Change several bugs at once" at the bottom of the bug list
- displaying the 1.9.5 bugs.
-
- 18. 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.
-
- 19. Add a new release tag to doap_Ant.rdf in Ant's site.
-
- Add a new release at https://reporter.apache.org/
-
- 20. If you've created a temporary branch you can delete it now.
-
- 21. You can now reacquaint yourself with your family and friends.
-
- (*) Mirrors : the srcdownload.html, bindownload.html and
- manualdownload.html each list a number of mirrors. For ant 1.6.0
- the mirrors picked up the new version in 8 hours or less, the
- release having been done at midnight on Dec 18th, the mirrors had
- it on Dec 19th at 8 am. The
- srcdownload/bindownload/manualdownload pages all contain a note
- advising users to be patient immediately after the release.
-
- (+) Don't expect the old releases to disappear from
- www.apache.org/dist as soon as the new releases are there.
- The rsync process from people.a.o to www.a.o adds files once per
- hour but only deletes once per day.
-
-
- Related Information
-
- http://www.apache.org/dev/#releases
- http://commons.apache.org/releases/index.html
- http://wiki.apache.org/commons/SigningReleases
-
- Files containing version information
- ------------------------------------
-
- * manual/cover.html
- * manual/credits.html
- * build.xml properties : project.version,manifest-version,pom.version
- * POM files under src/etc/poms and subdirectories
- * ivy.xml in release subdirectory
- * WHATSNEW
- * src/etc/testcases/taskdefs/conditions/antversion.xml
-
- cover.html, credits.html, POM files, antversion.xml should be
- adjusted for the [newversion] right after the build and tagging
- of the release
-
- build.xml
- ---------
-
- right before a release :
-
- the project.version gets bumped to the exact release
- number, for instance 1.9.5
-
- right after a release :
-
- project.version property in build.xml gets bumped to
- [newversion]alpha, for example 1.9.6alpha
-
- manifest-version gets bumped to the exact next release number
- for example 1.9.6
-
- pom.version gets bumped to [newversion]-SNAPSHOT
-
-
|