| 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" |
| https://commons.apache.org/releases/index.html |
| |
| To perform the license release audit, a.k.a. "RAT check", run. |
| |
| mvn apache-rat:check |
| |
| 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 (Release notes are updated during tagging) |
| - Ensure pom.xml header comment agrees with changes for this release |
| - Regenerate files: |
| mvn commons-build:all -Dproject.inceptionYear=2006 |
| (N.B. the year is not defined in the pom to avoid propagation to components) |
| - Check and commit all changes |
| |
| Creating release candidate tag: |
| ------------------------------ |
| N.B. This is done in a separate release branch so that the default branch remains a SNAPSHOT version |
| |
| - Checkout default branch in clean workspace: |
| git clone https://gitbox.apache.org/repos/asf/commons-parent.git commons-parent-<NN>-RC1 |
| - cd commons-parent-<NN>-RC1 |
| - Update the release branch: |
| git checkout release |
| git pull origin release |
| git pull origin master |
| - Edit version in pom.xml to remove SNAPSHOT suffix |
| mvn versions:set -DnewVersion=NN -DgenerateBackupPoms=false |
| edit commons.rc.version to agree with the RC number |
| - Update the release notes. These are cumulative, so the new notes must be generated in a temporary file |
| Generate a temporary file, for example: |
| mvn changes:announcement-generate -Prelease-notes -Dchanges.version=NN -Dchanges.announcementFile=NN.tmp |
| Edit the file to tidy it up, and prepend it to RELEASE-NOTES.txt |
| Remove the temporary file |
| - Create tag the from the updated workspace: |
| git commit -am "Update version numbers for Commons Parent version NN" |
| |
| git tag -s commons-parent-NN-RC1 -m "Tag Commons Parent version NN-RC1" [-u keyid] # signed tag |
| OR |
| git tag -a commons-parent-NN-RC1 -m "Tag Commons Parent version NN-RC1" |
| |
| git push --tags origin release |
| |
| Test build of tag: |
| ----------------- |
| - mvn deploy -Duser.name=ASF-login-name -Prelease -Ptest-deploy |
| - Check the contents of target/deploy/org/apache/commons/commons-parent/<NN> |
| - should contain commons-parent-<NN>.pom, commons-parent-<NN>-site.xml and sigs/hashes |
| - also -src.tar.gz, -src.zip and sigs/hashes |
| |
| Deploy RC to Nexus: |
| ------------------ |
| - Set up passwords in settings.xml (https://wiki.apache.org/commons/UsingNexus) |
| - Same command as above, but omitting -Ptest-deploy profile: |
| - mvn package deploy -Duser.name=ASF-login-name -Prelease |
| |
| 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 |
| - Checkout https://dist.apache.org/repos/dist/dev/commons/commons-parent |
| - Download the -src archives, their sigs and hashes, then delete them from Nexus. |
| - Commit the dist/dev/ folder |
| |
| Close the staging area - Description: "Apache Commons Parent <NN> 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: |
| ---------------------------- |
| - git co release |
| - git pull origin release # synch with remote |
| |
| - git diff commons-parent-NN-RCn # check that the workspace agrees with the tag in the vote |
| - git tag -s commons-parent-NN -m "Create Commons Parent NN release tag" |
| - git push --tags |
| |
| - git checkout master |
| - git merge release # This should update the RN |
| - mvn versions:set -DnewVersion=52-SNAPSHOT -DgenerateBackupPoms=false |
| - Add next release tag in src/changes/changes.xml |
| - git commit -am "Bump to next development version" |
| |
| Publish the source files to |
| ------------------------ |
| https://dist.apache.org/repos/dist/release/commons/commons-parent |
| |
| TBA |
| |
| Update site documentation |
| ------------------------- |
| 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. |