| Instructions for making a Release: |
| |
| Authors: Conor MacNeill |
| Stefan Bodewig |
| Magesh Umasankar |
| |
| Note: This document was created in the context of releasing Ant 1.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 level of bugs reported |
| can delay things. Generally, give a few weeks to "close" the source tree |
| to further changes so people can finalise contributions, etc. At this time, |
| the first beta will be cut and there will be then a period of beta testing, |
| usually 1 month but this should be flexible. |
| |
| 2. Note that any mention of a deadline causes a flood of bug fixes, new tasks, |
| etc. This needs to be managed as best it can. Some fixes will be applied, |
| others held over. Make this clear in the release plan. The committers and |
| particularly the release manager will need to make judgement calls here. |
| Anything too "big" is likely to be held over. |
| |
| 3. Once the freeze date arrives, create a branch for the release builds. You |
| will need to be comfortable in handling CVS branches with mutliple |
| merge-backs to the main branch and even selected merges from the the main |
| branch to the release branch. |
| |
| For more information on performing branching and merging, please visit |
| http://www.durak.org/cvswebsites/doc/cvs_54.php#SEC54 |
| |
| Label such branches ANT_15_BRANCH. |
| |
| 4. Once the branch is setup, the version numbers in CVS are changed. On the |
| branch, the build.xml version becomes 1.5Beta1 while the main branch is |
| updated to 1.6alpha. |
| |
| [[ TODO: Check if the documentation files also need to be updated to point |
| to the right areas of Ant's website. ]] |
| |
| 5. Ensure you have all the external libraries that Ant uses in your |
| lib/optional directory. To find out what libraries you need, execute |
| the build with -verbose option and scan for lines beginning with |
| "Unable to load...". |
| |
| 6. Next bootstrap, build and run the tests. Then build the distribution |
| on the branch. It is important that this be a clean build. Label this with |
| a tag ANT_15_B1. |
| |
| 7. Sign the distribution files using the following simple script |
| #!/bin/sh |
| for i in distribution/* |
| do |
| echo "Signing " $i |
| gpg -a -b --force-v3-sigs $i |
| done |
| |
| Try to do this on Linux since the gpg signatures generated on Windows may |
| cause some PGP users problems verifying signatures even though they seem |
| OK. |
| |
| Before you do that, ensure that the key you use is inside the KEYS |
| file in Ant's CVS repository - and that you perform a cvs update on |
| the KEYS file in /www/jakarta.apache.org/builds/jakarta-ant/release/ |
| |
| Also make sure you have sent the key that you use to a public |
| keyserver. |
| |
| 8. The beta distribution is now ready to go. Bundle it up into a tar.gz file |
| and scp to your apache account. |
| |
| 9. Meanwhile, convert the WHATSNEW file 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). |
| |
| You may choose to use the text2html convertor present at |
| http://www.aigeek.com/txt2html/ |
| |
| [[ TODO: This must perhaps be an Ant task. ]] |
| |
| 10. Once this is uploaded, unpack things, create the release directory, |
| something like v1.5Beta1, push the release and README files into this |
| directory. |
| |
| 11. Address the available release tags in BugZilla. Create a new tag 1.5Beta1 |
| and a 1.6alpha. Assign all existing 1.5 alpha bugs to one of these release |
| labels. |
| |
| 12. Once that is done, do a test download to make sure everything is OK. A |
| common problem may be: |
| * the file's mime type is not recognized and is interpreted as |
| text/plain. Fix it by using some .htaccess magic (AddEncoding stuff) |
| * Your gz.asc files are not being displayed properly (RemoveEncoing stuff) |
| |
| If it looks OK, announce it on ant-dev and ant-user. After a few |
| days pass and there are no major problems, a wider announcement is |
| made (main jakarta website, announcements@jakarta.apache.org, |
| etc). |
| |
| Also ensure you: |
| * Update antnews.xml (Announcement) |
| * Update faq.xml (Ant's history details - not for betas) |
| * Update index.xml (Announcement, latest release details) |
| * Update problems.xml (Debug Output details - not for betas IMHO -SB) |
| |
| Generate the html files by invoking ant on docs.xml - you need |
| jakarta-site2 checked out for this. Commit the modified/generated |
| files and also perform a cvs update on files in daedalus' |
| www/jakarta.apache.org/ant. |
| |
| Announce beta releases at freshmeat.net (Stefan Bodewig is the |
| owner of Ant's project entry - bug him ;-). |
| |
| 13. As problems in the beta are discovered, there may be a need for |
| one or more subsequent betas. The release manager makes this |
| call. Each time, the versions are updated and the above process is |
| repeated. Try not to have too many betas. |
| |
| 14. Try to advertise the need for testing of the betas as much as possible. |
| This would eliminate the need to release minor patch versions like |
| we had to do when releasing Ant 1.4. |
| |
| To monitor the number of downloads, look at the access_log |
| file under /usr/local/apache2/logs |
| |
| 15. When the final beta is considered OK, propose a vote on ant-dev to |
| officially adopt the latest beta as the Ant 1.5 release. If it is passed, |
| (it usually does,) this would be labelled ANT_15 and built in a similar |
| fashion to the above process. |
| |
| 16. Now and perhaps during previous betas any changes on the branch must |
| be merged back into the tree. |
| |
| 17. At this point in time, the release is done and announcements are made. |
| |
| [[TODO: Identify the mailing lists where announcements are to be made. |
| Also identify the webpages to which the announcements must go. ]] |
| |
| Apache mailing lists that should get the announcements: |
| announce@jakarta.apache.org, announce@xml.apache.org, |
| announce@apache.org, ant-dev and ant-user. |
| |
| Announce release at freshmeat.net and opensourcedirectory.org |
| (Stefan Bodewig is the owner of Ant's project entries - bug him |
| ;-). |
| |
| Announce release in the usenet groups comp.lang.java.softwaretools |
| and comp.lang.java.announce. |
| |
| 18. You can now reacquaint yourself with your family and friends. |
| |