...
Links
- draft asf guidlines: http://incubator.apache.org/guides/releasemanagement.html
- here's how axis2 do it: http://wiki.apache.org/ws/FrontPage/Axis2C/releases/steps
Task Dependencies
...
- make the trunk reference the newly released parent pom and buildtools
- optionally make a branch
- stabilize code in branch (or trunk if development activity can be halted in trunk)
- check LICENSE and NOTICE files in project roots and in jar manifests
- run the rat tool against the source and check for exceptions
- once exceptions have been fixed, store the rat log and make a note of rat log exceptions which are there because they have to be
- repeat this as necessary during the release process if new files are included
- update release notes, readmes, etc
- Ensure the Tuscany project's root level svn STATUS file is up to date, and then copy/update it into the root folders of any source distribution that will be made, and to the location where the pom that creates the binary distribution will expect to find the STATUS file for packaging (may be the same location as for source distro)
- be aware that while the release process is continuing, the project STATUS file might change.
- .....
- check LICENSE and NOTICE files in project roots and in jar manifests
- Create release candidates and ask for feedback, iterating until ready for a PPMC vote ...
- Create local copies of source hierarchies, one per source distribution, using svn export <uri> <local-dir>
- Make archives of your clean exports in order to be able to distribute source
- Follow the instructions in BUILDING.txt in the root folders of the source distributions to produce the binary distribution
- If you have to do something different from those instructions to build the binary distro, then update BUILDING.txt in appropriate places in svn(and be aware thet your source distro archive is now out of date, so you'll need to iterate before going public)
- Test your binary distro; take the outputs of your build process and use them as if you were a new user who had just downloaded them
- create your sample programs source distribution
- ...... fill this in
- ....
- At this point you will need to have put in place distro signing capabilities (see "Ahead of Time" above)
- Sign and create md5 checksums for each of the source and binary distribution archives
- transfer the archives to a logical place under your public_html people.apache.org space and arrange suitably
- create a suitable readme for the root level of your release candidate folder, and ensure the readme names the release candidate version
- advertise the release candidate on tuscany-dev and tuscany-user and ask for feedback
- fix issues and repeat the release candidate process
- When ready for the PPMC to vote on your release candidate, create a tag from the branch (or trunk if no branch)
- Note that a release must have a referenceable tag from which it was built and that this may not be the end to your updates, so you have the option of creating new tags if the PPMC vote throws up more issues, or updating a single tag, you may like to bear your choice in mind when naming the tag
- Note also that svn will complain when you try to do an svn commit into a tag, which is a warning only, and during this phase of the release process, updates to a tag are justifiable
- Update the version elements of the poms to define the version of the parent pom and buildtools that should be used (CHECK where and when this should be done)
- Update the tags version names of the distributable artifacts to non SNAPSHOT titles that match the release name
- Update the tags version names of the dependencies to non SNAPSHOT versions, if not already done earlier in the release candidate process
- Ideally update the tags version names of maven plugins to non SNAPSHOT versions if not already done earlier in the release candidate process (note that if the plugin behaviour changes after release, your tag or source distribution may not build in the same way as it did when you released if you rely on SNAPSHOT plugin versions)
- Rebuild and upload a new release and candidate to people.apache.org
- Optionally take a snapshot archive of your local maven repository for future issue resolution
- Deploy the projects artifacts to the maven repository
- By this time you want to have in place easy authentication to people.apache.org (add link to apache description of how to do this), and to modify your maven ~/.m2/settings.xml file to use key based authentication, rather than password (I never got this going, so had to type in my password about 30 times per deploy) – If using pageant to make an ephermeral decrypted version of your SSL private key available to the authentication process, then make sure pageant is running, and you have lodged your private key with that invocation of pageant
- Run maven deploy (supplying your password multiple times if necessary – the build will fail if a password request times out)
- Check that the artifacts in the maven repository and the corresponding ones in your local repository are fresh and identical
- The deploy action will have created .md5 and .sha1 message digests for all newly deployed artifacts, you must manually add signatures for the artifacts
- for every archive artifact uploaded to the remote repository (see the "mvn deploy" execution log), create a signature for the corresponding artifact on your local machine
- upload that signature to sit alongside the artifact on the remote repository
- Request a vote on tuscany-dev on the new release candidate, and the deployed artifacts, publishing the rat log and exceptions stored earlier
- Iterate through the release candidate/vote process if necessary
- ask for ratification of the PPMC vote from the IPMC by posting to general@incubator.apache.org (I think you may have to use an apache.org email address to do this?)
- if necessary repeat the release candidate/PPMC vote/IPMC ratification steps
- Move your release candidate files to the proper people.apache.org tuscany download location
- /www/people.apache.org/dist/incubator/tuscany/java
- Add your ready prepared download section to the tuscany site downloads page, rebuild and deply the site update
- update the projects STATUS file and commit back to svn to say that the announcement has been made
- update the tuscany site's news page
- Announce the release by sending to anounce@apache.org (note that you must use an apache.org email address to do this), copying tuscany-dev, tuscany-user and general@incubator
- Momentarily reflect on life's joys
Command log
C:\Development\JiraDev\M3Release>svn export svn\M3ApiRelease apiExportDir\apache-tuscany-sdo-incubating-1.0-M3\sdo-api
Export complete.
...