Release Procedure
Please note:
This documentation is outdated (especially regarding voting and signing issues). Release build of core 1.1.5 is currently in progress. I'm logging my activities in detail on the CoreRelease115 page. As soon as the release is out I will revise these docs. --Manfred
General Steps
- Release any myfaces project dependencies the project you're releasing might have (usually maven and shared at a minimum). Follow this procedure recursively for those dependencies.
- Use maven to prepare a release (creates a branch, etc.)
- The prepare step will create a branch from the trunk, remove the "-SNAPSHOT" from the version in the trunk, and increment the version number of the snapshot in the trunk automatically. {{{ mvn release:prepare \
-DtagBase=https://svn.apache.org/repos/asf/myfaces/[project_name]/branches \ -Dusername=[ASF username] \ -Dscm.password=[ASF password] \ -Dtag=[version]
- Accept the default release versions (shown in brackets)
- Accept the default development version (shown in brackets - this is the new snapshot for the trunk)
- NOTE: If the prepare step crashes you need to remove release.properties, delete the target dir and revert the pom.xml before starting over.
- This creates a release.properties in you local directory. Its important that you add this to SVN right away (on the branch - not the trunk) because it is needed to finalize the release and someone else may do this step. Be sure to remove the scm.password line from the file before checking in! Nobody needs to know your ASF password.
- The prepare step will create a branch from the trunk, remove the "-SNAPSHOT" from the version in the trunk, and increment the version number of the snapshot in the trunk automatically. {{{ mvn release:prepare \
- Fix remaining issues on the branch
- Update release notes
- Users test locally on their machines by checking out from branch and doing a maven install
- Take a vote on the dev list (only PMC votes are binding). Vote is taken against a specific SVN revision number (not release candidate necessary)
- Manually tag the release in svn
{{{ svn copy https://svn.apache.org/repos/asf/myfaces/[project_name]/branches/[version number] \
- -m "tagging official release point"
- Use maven to deploy the final release (requires resource.properties from the prepare step)
- Manually sign all resulting jar files (ASF requirement)
gpg --armor --output [artifact].jar.asc --detach-sig [artifact].jar
NOTE: Make sure your key is listed in http://www.apache.org/dist/myfaces/KEYS
Special Steps for Specific Projects
MyFaces Maven
When you prepare the release for this project, Maven will automatically increment the trunk snapshot version. Consequently you will need to manually change some references in the other poms on the trunk.
Change the reference to the master-pom version in the following poms: commons/pom.xml, core/pom.xml, site/pom.xml, tomahawk/pom.xml
Change the reference to the maven-wagon-plugin version in the following poms: core/assembly/pom.xml, tomahawk/assembly/pom.xml, tomahawk/examples/assembly/pom.xml
Core (Impl)
- Build with the JDK 1.3 compile option.
- Run the TCK on the release.
Send a note to jcp-open@apcahe.org so the TCK-certified release is registered in Sun's catalog.
Shared
When you prepare the release for this project, Maven will automatically increment the trunk snapshot version. Consequently you will need to manually change some references in the other poms on the trunk.
Change the reference to the shared version in the following poms: core/assembly/pom.xml (two refs), core/impl/pom.xml, tomahawk/assembly/pom.xml (two refs)