Notes on building/releasing Commons Parent ========================================== These recipes should work. Other recipes may suit other tastes! This is the short form of "Releasing Commons Components" http://commons.apache.org/releases/index.html Building for local repo: ----------------------- mvn -N install Snapshot deployment: ------------------- mvn deploy Preparing for release candidate: ------------------------------- Check for updates to plugins and dependencies Ensure NOTICE has correct year Ensure changes.xml is up to date; generate RELEASE-NOTES using non-SNAPSHOT version: mvn changes:announcement-generate -Prelease-notes -Dchanges.version=nn Ensure pom.xml header comment agrees with changes for this release Commit all changes to SVN Please check that the site documentation is up to date See: https://svn.apache.org/repos/asf/commons/cms-site/trunk/content/xdoc/commons-parent-pom.xml This will need updating if any new features / profiles etc are added. It does not list plugin or dependency versions. However at the least please update the version details and URL at the start of the page. Creating release candidate tag: ------------------------------ Checkout trunk in clean workspace: svn co https://svn.apache.org/repos/asf/commons/proper/commons-parent/trunk commons-parent-37-RC1 cd commons-parent-37-RC1 Edit version in pom.xml to remove SNAPSHOT suffix Edit three SCM URLs to point to the future (non-RC) tag: scm:svn:http://svn.apache.org/repos/asf/commons/proper/commons-parent/tags/commons-parent-37 scm:svn:https://svn.apache.org/repos/asf/commons/proper/commons-parent/tags/commons-parent-37 http://svn.apache.org/viewvc/commons/proper/commons-parent/tags/commons-parent-37 Create tag in SVN from the updated workspace: svn cp . https://svn.apache.org/repos/asf/commons/proper/commons-parent/tags/commons-parent-37-RC1 -m"Create 37 RC1 tag" (this ensures the trunk never sees the different URLs or released version) Test build of tag: ----------------- mvn package deploy -Dassembly.attach=false -Duser.name=ASF-login-name -Prelease -Pjava-1.5 -Ptest-deploy Check the contents of target/deploy - should contain pom.xml, site.xml and sigs/hashes Deploy RC to Nexus: ------------------ Set up passwords in settings.xml (https://wiki.apache.org/commons/UsingNexus) As above, but omitting -Ptest-deploy profile: mvn package deploy -Dassembly.attach=false -Duser.name=ASF-login-name -Prelease -Pjava-1.5 Tidy and close Nexus staging area: --------------------------------- Login to Nexus: https://repository.apache.org/index.html Open "Staging Repositories", find the correct "Open" entry (check Summary tab in bottom panel) The message "No CLM data recorded" appears to be benign Open the bottom "Content" tab and navigate to the files Delete *.asc.md5 and *.asc.sha1 if present Double-check! Close the staging area - Description: "Apache Commons Parent 37 RC1" Screen does not auto-refresh - you need to press refresh Send round the release vote(lazy) -------------------------------- Promote the Nexus staging area ------------------------------ Assuming the vote passes, login to Nexus and use the "Release" function [If there was a problem identified, Drop the repo instead and start again] Copy the RC Tag to final tag: URL=https://svn.apache.org/repos/asf/commons/proper/commons-parent/ svn cp "$URL/tags/commons-parent-37-RC1" "$URL/tags/commons-parent-37" -m "Release commons-parent 37 based on RC1" Prepare next Release Cycle -------------------------- Modify pom.xml with next SNAPSHOT version, remove second last history comment Add next release tag in src/changes/changes.xml and commit changes to trunk