We follow the standard ASF release process. One of the committers would volunteer to take on the release manager role for a given release. A few days will be spent stabilizing the cTAKES development trunk, improving its documentation and test coverage. The maven release plug-in (mvn release:prepare/perform) is recommended for this purpose (See details below).
Open JIRA issues will be reviewed and rearranged accordingly. Many of the issues will get resolved during this process and the remaining few will be accordingly prioritized and scheduled for a future release. The unit tests and integration tests will be used extensively during this critical period to keep the development in its most stable form. Move any existing open issues to the next release.
Finally the release manager would trigger the release build, sign the generated artifacts and host them on Apache Nexus & Maven Central. A release vote will be called urging all those interested to review the packages and provide feedback. Upon receiving the necessary number of votes, the artifacts will be uploaded to the appropriate servers for distribution.
Note: Using 3.1.1 as an example
Maven may prompt you to enter your PGP passphrase and SVN password multiple times for each module. Just enter them in - as passing them in through the CLI is found to be insecure.
Release: 3.1.1
Tag: ctakes-3.1.1
Next Dev Release: 3.1.2-SNAPSHOT
Update ctakes-distribution/RELEASE_NOTES.html and check in change into trunk or the branch for the release if using a branch
If you do a release:perform, it does a clean checkout from the tag (to ensure it's clean). rebuild and then deploy.
This will place the artifacts to the ASF Nexus area for staging for voting.
mvn release:perform -DconnectionUrl=scm:svn:https://svn.apache.org/repos/asf/ctakes/tags/ctakes-3.1.1
The step above with mvn release:perform
will publish the artifacts to https://dist.apache.org/repos/dist/dev/ctakes/
Commit the artifacts to https://dist.apache.org/repos/dist/dev/ctakes/
Send an email like the following to dev@ctakes.apache.org
with the subject line: [VOTE] Release Apache cTAKES
Hi, This is a call for a vote on releasing the following candidate as Apache cTAKES 3.1.1. For more detailed information on the changes/release notes, please visit: https://issues.apache.org/jira/secure/ReleaseNote.jspa?projectId=12313621&version=UPDATE_VERSION_ID_HERE The release was made using the cTAKES release process documented here: http://ctakes.apache.org/ctakes-release-guide.html The candidate is available at: https://dist.apache.org/repos/dist/dev/ctakes/ctakes-3.1.1/apache-ctakes-3.1.1-src.tar.gz /.zip The tag to be voted on: http://svn.apache.org/repos/asf/ctakes/tags/ctakes-3.1.1/ The MD5 checksum of the tarball can be found at: https://dist.apache.org/repos/dist/dev/ctakes/ctakes-3.1.1/apache-ctakes-3.1.1-src.tar.gz.md5 /.zip.md5 The signature of the tarball can be found at: https://dist.apache.org/repos/dist/dev/ctakes/ctakes-3.1.1/apache-ctakes-3.1.1-src.tar.gz.asc /.zip.asc Apache cTAKES' KEYS file, containing the PGP keys used to sign the release: https://dist.apache.org/repos/dist/dev/ctakes/KEYS Please vote on releasing these packages as Apache cTAKES 3.1.1. The vote is open for at least the next 72 hours. Only votes from the cTAKES PMC are binding, but folks are welcome to check the release candidate and voice their approval or disapproval. The vote passes if at least three binding +1 votes are cast. [ ] +1 Release the packages as Apache cTAKES 3.1.1 [ ] -1 Do not release the packages because... Also note that the convenience binary is: https://dist.apache.org/repos/dist/dev/ctakes/ctakes-3.1.1/apache-ctakes-3.1.1-bin.tar.gz /.zip Thanks! (name here) P.S. Here is my +1.
If VOTE passes with 3+ cTAKES PMC votes and majority approval, move onto next step. (See Relase Votes) If VOTE does not pass, repeat steps 3-on until it does.
Move the artifacts from Dev to Dist For example:
svn copy \ https://dist.apache.org/repos/dist/dev/ctakes/ctakes-A.B.C-rcX \ https://dist.apache.org/repos/dist/release/ctakes/ctakes-A.B.C \ -m "Publish artifacts to release directory"The svnpubsub will automatically push those to the dist area on all of the mirrors: You can verify by visiting: http://www.apache.org/dist/ctakes/
Log into Apache Nexus and Release the staging repository. Remember to drop any previous candidate staging repositories whose VOTE did not pass.
For example, if the VOTE for rcX passes for release A.B.C
svn copy \ https://svn.apache.org/repos/asf/ctakes/tags/ctakes-A.B.C-rcX \ https://svn.apache.org/repos/asf/ctakes/tags/ctakes-A.B.C \ -m "Copying tag of accepted RC for the release to final actual release tag"
Wait for versions to hit the mirrors (hint: keep checking http://www.apache.org/dyn/closer.cgi/ctakes until you see something). Once the release hits:
update cTAKES' DOAP file
Note once you update the DOAP file, it might take overnight for the change to be seen.
See the DOAP FAQ for information such as: Use the date released, not date built, for version date.
update the archive page with information about the previous release.
update any site or Wiki pages that mention the "latest release" or "current release".
verify the latest install guides are linked where appropriate.
update the downloads page
Wait for versions to hit the mirrors (hint: keep checking http://www.apache.org/dyn/closer.cgi/ctakes until you see something).
Once release hits send announcement email to announce@a.o and dev@ctakes and user@ctakes. This needs to be done from your @apache.org email address or the email will bounce from the announce list. Gmail forwarding can help here and is a snap to set up. It's even easier then the instructions there as it will recognize your email address and default to Apache settings.
After announce, if the release included a new component, it's a good idea to check the list of cTAKES components within JIRA to verify new component(s) were added there, so users can report issues to the appropriate component.