This is an automated email from the ASF dual-hosted git repository. aherbert pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/commons-rng.git
commit 64fe5076c7f0585ac0611e4064af0e58d311560f Author: aherbert <aherb...@apache.org> AuthorDate: Mon Oct 10 12:42:37 2022 +0100 Update release howto guide --- doc/release/release.howto.txt | 325 +++++++++++++++++++++++++----------------- 1 file changed, 192 insertions(+), 133 deletions(-) diff --git a/doc/release/release.howto.txt b/doc/release/release.howto.txt index 5428afa8..d3136763 100644 --- a/doc/release/release.howto.txt +++ b/doc/release/release.howto.txt @@ -75,11 +75,11 @@ NOTE When performing a release it is good practice to edit a copy of these notes during the process and merge the updated document into the repository following a release. To assist in this process a find-and-replace can be performed to update all the version numbers in order. For example -based on a previous release of 1.4: +based on a previous release of 1.5: -- Next development version : 1.5 -> 1.6 -- Next release version : 1.4 -> 1.5 -- Previous release version : 1.3 -> 1.4 +- Next development version : 1.6 -> 1.7 +- Next release version : 1.5 -> 1.6 +- Previous release version : 1.4 -> 1.5 - Release candidate version : RC1 -> RC2 (if applicable) This allows the included commands to be coped during the release process. @@ -95,9 +95,9 @@ Preliminary checks: <properties> <!-- ... --> <!-- upcoming release version --> - <commons.release.version>1.4</commons.release.version> + <commons.release.version>1.5</commons.release.version> <!-- previous release version --> - <commons.bc.version>1.3</commons.bc.version> + <commons.bc.version>1.4</commons.bc.version> <!-- ... --> </properties> Check all the issues reported by the "japicmp" plugin. @@ -117,7 +117,7 @@ that the build process can create all the necessary artifacts. (1a) The command - $ JAVA_HOME="__Path_to_a_JDK__" mvn -Duser.name="__Your_Apache_id__" -Ptest-deploy -Prelease clean verify site deploy + $ JAVA_HOME="__Path_to_a_JDK__" mvn -Duser.name="__Your_Apache_id__" -Ptest-deploy -Prelease clean verify site deploy [-Dgpg.skip] should create the artifacts in the "target/deploy" directory. The site goal is required for the commons release plugin even though the site is @@ -125,10 +125,10 @@ that the build process can create all the necessary artifacts. The "dist-archive/target" directory will contain those files: - commons-rng-1.4-SNAPSHOT-bin.tar.gz - commons-rng-1.4-SNAPSHOT-bin.zip - commons-rng-1.4-SNAPSHOT-src.tar.gz - commons-rng-1.4-SNAPSHOT-src.zip + commons-rng-1.5-SNAPSHOT-bin.tar.gz + commons-rng-1.5-SNAPSHOT-bin.zip + commons-rng-1.5-SNAPSHOT-src.tar.gz + commons-rng-1.5-SNAPSHOT-src.zip At some point when processing the above command, the GPG passphrase will be requested; to avoid problems, the "gpg2" executable should be specified in @@ -168,8 +168,8 @@ candidate, create it locally starting from the master branch or the version branch and push it to Apache repository (assuming it is called origin), remembering the binding between the local and remote origin branches: - $ git branch 1.4-release - $ git push -u origin 1.4-release + $ git branch 1.5-release + $ git push -u origin 1.5-release (Optional) Modify the dist-archive/pom.xml to update the release manager name and GPG signing key @@ -179,7 +179,7 @@ to be used for the release. (3) Switch to the release branch: - $ git checkout 1.4-release + $ git checkout 1.5-release (4) @@ -187,8 +187,8 @@ If there have been changes committed in the master branch or the version branch since the creation of the release branch, there are two cases: (4a) - if all these changes must be included in version 1.4, merge "master" - or the version branch into "1.4-release": + if all these changes must be included in version 1.5, merge "master" + or the version branch into "1.5-release": $ git merge master @@ -197,15 +197,15 @@ branch since the creation of the release branch, there are two cases: $ git merge RNG_1_X (4b) - if only part of these changes must be included in version 1.4, - cherry-pick the required commits into the "1.4-release" branch: + if only part of these changes must be included in version 1.5, + cherry-pick the required commits into the "1.5-release" branch: $ git cherry-pick commit-SHA (5) Update the release specific files, checking you are really working on the -1.4-release branch and *not* on the master branch. +1.5-release branch and *not* on the master branch. In particular: * Update and commit the "src/site/site.xml" file to contain the information @@ -214,14 +214,14 @@ In particular: * Estimate a release date (taking into account the release vote delay) and insert it in the "src/changes/changes.xml" file. * Update the "pom.xml" to contain the final version number and not a SNAPSHOT: - Assuming that the release version will be "1.4", modify the "<version>" tag to + Assuming that the release version will be "1.5", modify the "<version>" tag to read: - <version>1.4</version> + <version>1.5</version> This can be done using maven: - $ mvn versions:set -DnewVersion=1.4 -DgenerateBackupPoms=false + $ mvn versions:set -DnewVersion=1.5 -DgenerateBackupPoms=false Modify the section of "<properties>" that also refers to version numbers. You should uncomment the "<commons.rc.version>" line and indicate the @@ -231,7 +231,7 @@ In particular: <properties> <!-- ... --> - <commons.release.version>1.4</commons.release.version> + <commons.release.version>1.5</commons.release.version> <commons.rc.version>RC1</commons.rc.version> <!-- ... --> </properties> @@ -247,6 +247,7 @@ This file is updated automatically by running the command: $ mvn -N -Pcommons-rng-examples commons-build:download-page + Note: This command presently requires Java 8. (7) The "release notes" file will be created by gathering all the changes @@ -267,11 +268,11 @@ issue field. Update changes.xml if appropriate. Append the previous release notes from src/site/resources/release-notes/ to the current one: $ (echo "=============================================================================" && - cat src/site/resources/release-notes/RELEASE-NOTES-<old version>.txt) >> RELEASE-NOTES.txt + cat src/site/resources/release-notes/RELEASE-NOTES-1.4.txt) >> RELEASE-NOTES.txt Copy the RELEASE-NOTES.txt to src/site/resources/release-notes: - $ cp RELEASE-NOTES.txt src/site/resources/release-notes/RELEASE-NOTES-<version>.txt + $ cp RELEASE-NOTES.txt src/site/resources/release-notes/RELEASE-NOTES-1.5.txt Update the src/site/xdoc/release-history.xml to include the latest version. This generates the release history page on the web site. @@ -284,7 +285,8 @@ Commit the updated files to git: src/site/xdoc/download_rng.xml \ RELEASE-NOTES.txt \ src/site/resources/release-notes/RELEASE-NOTES-* \ - src/site/xdoc/release-history.xml + src/site/xdoc/release-history.xml \ + commons-rng-bom/src/site/xdoc/index.xml Check you did not forget any files: @@ -305,7 +307,7 @@ Then, assuming the first candidate, the suffix will be "RC1" (this should be the same as in the "<properties>" in the "pom.xml"), and the command will be: - $ git tag -u "__Your_key_id__" -s -m "RC1." commons-rng-1.4-RC1 + $ git tag -u "__Your_key_id__" -s -m "RC1." commons-rng-1.5-RC1 If you have several GPG keys, you may prefer to use "-u keyId" to select a specific key for signing the tag instead of "-s" which select automatically one key @@ -313,13 +315,13 @@ from the configured e-mail address. Check the tag GPG signature: - $ git tag -v commons-rng-1.4-RC1 + $ git tag -v commons-rng-1.5-RC1 You will get something like: object cf4a9d70c9ac24dd7196995390171150e4e56451 type commit - tag commons-rng-1.4-RC1 + tag commons-rng-1.5-RC1 tagger YourName <YourApacheEmail> 1418934614 +0100 RC1. @@ -339,7 +341,7 @@ Switch to a new directory out of your regular workspace, and retrieve the official tag from the Apache repository: $ cd /tmp - $ git clone https://gitbox.apache.org/repos/asf/commons-rng.git --branch commons-rng-1.4-RC1 + $ git clone https://gitbox.apache.org/repos/asf/commons-rng.git --branch commons-rng-1.5-RC1 In the command above, the --branch option accepts both branch names and tags names, so we specify directly the tag here. Git will warn that the resulting workspace @@ -402,29 +404,44 @@ are not part of the binary release artifacts. The 'package' goal is required to generate a jar file for the japicmp report. This process transfers more files than really needed in the the "staging" (i.e. -non official) maven repository. The files expected in the repository are - commons-rng-<ModuleArtefactID>-1.4.pom - commons-rng-<ModuleArtefactID>-1.4.jar - commons-rng-<ModuleArtefactID>-1.4.javadoc.jar - commons-rng-<ModuleArtefactID>-1.4.sources.jar - commons-rng-<ModuleArtefactID>-1.4.test-sources.jar - commons-rng-<ModuleArtefactID>-1.4.tests.jar +non official) maven repository. The files expected in the repository for jar +artifacts are + commons-rng-<ModuleArtefactID>-1.5.pom + commons-rng-<ModuleArtefactID>-1.5.jar + commons-rng-<ModuleArtefactID>-1.5.javadoc.jar + commons-rng-<ModuleArtefactID>-1.5.sources.jar + commons-rng-<ModuleArtefactID>-1.5.test-sources.jar + commons-rng-<ModuleArtefactID>-1.5.tests.jar + commons-rng-<ModuleArtefactID>-1.5.spdx.rdf.xml and their associated fingerprints <file-name>.md5 <file-name>.sha1 and their signatures <file-name>.asc +The commons-rng-parent and commons-rng-bom artifact should contain the pom +and the associated fingerprints and signatures. The commons-parent also +contains a Software Package Data Exchange (SPDX) file. + Nexus used to add "md5" and "sha1" checksums files to the "asc" files (cryptographic signature). If these fingerprints on signatures are present, they must be manually removed from Nexus staging area. +*** +Note: The commons-rng-bom artifact is deployed using the sign-and-deploy goal +of the maven gpg plugin. This still adds md5 and sha1 files for the artifact asc +files and these should be deleted. + +Select each .asc.md5 and .asc.sha1 file and delete the artifact. Then refresh +the view and confirm the deletion. +*** + The process used to transfer the complete source and binaries distributions files, (for each module): - commons-rng-<ModuleArtefactId>-1.4-bin.tar.gz - commons-rng-<ModuleArtefactId>-1.4-bin.zip - commons-rng-<ModuleArtefactId>-1.4-src.tar.gz - commons-rng-<ModuleArtefactId>-1.4-src.zip + commons-rng-<ModuleArtefactId>-1.5-bin.tar.gz + commons-rng-<ModuleArtefactId>-1.5-bin.zip + commons-rng-<ModuleArtefactId>-1.5-src.tar.gz + commons-rng-<ModuleArtefactId>-1.5-src.zip as well as their associated .md5 and .sha1 fingerprints and .asc signatures. All these files are not maven artifacts but rather distribution archives: They belong elsewhere; hence they must also been removed from the Nexus staging @@ -435,6 +452,9 @@ before other people review the deliverables just created. How to "close" the staging repository is explained at this page: http://www.apache.org/dev/publishing-maven-artifacts.html#close-stage +The nexus staging ID should be noted so that it can be used in the generation +of the VOTE email. The id is the XXXX number from the repository id with the +format orgapachecommons-XXXX. (12) [NOTE: The "Commons release-plugin" now automatically performs all the tasks @@ -443,15 +463,15 @@ referred to in this section.] *** Verify that the release plugin has performed the steps below. You may be required to remove the staged site from the "dev" area -and add missing files. The following was performed for release 1.4: +and add missing files. The following was performed for release 1.5: $ cd /tmp $ svn checkout https://dist.apache.org/repos/dist/dev/commons/rng - $ cd rng/1.4-RC1 + $ cd rng/1.5-RC1 $ cp path-to-the-RC-workspace/CONTRIBUTING.md . $ svn add CONTRIBUTING.md $ svn del site - $ svn commit -m "Distribution files for Commons RNG v1.4 (RC1)." + $ svn commit -m "Distribution files for Commons RNG v1.5 (RC1)." *** Create and upload the other distribution files to the Apache servers. @@ -484,7 +504,7 @@ Create and upload the other distribution files to the Apache servers. $ cp path-to-the-RC-workspace/RELEASE-NOTES.txt . $ cp path-to-the-RC-workspace/CONTRIBUTING.md . - $ cp path-to-the-RC-workspace/dist-archive/target/commons-release-plugin/scm/1.4-RC1/README.html . + $ cp path-to-the-RC-workspace/dist-archive/target/commons-release-plugin/scm/1.5-RC1/README.html . $ cp path-to-the-RC-workspace/dist-archive/target/*-bin.* binaries $ cp path-to-the-RC-workspace/dist-archive/target/*-src.* source @@ -506,7 +526,7 @@ Create and upload the other distribution files to the Apache servers. RELEASE-NOTES.txt \ binaries/* \ source/* - $ svn commit -m "Distribution files for Commons RNG v1.4 (RC1)." + $ svn commit -m "Distribution files for Commons RNG v1.5 (RC1)." (13) @@ -539,11 +559,11 @@ Then run these commands: $ mvn -Pcommons-rng-examples package site site:stage $ cd target - $ mv staging commons-rng-1.4-RC1-site + $ mv staging commons-rng-1.5-RC1-site $ lftp sftp://__your_apache_logi...@home.apache.org lftp y...@home.apache.org:~> mkdir public_html lftp y...@home.apache.org:~> cd public_html - lftp y...@home.apache.org:~/public_html> mirror -R commons-rng-1.4-RC1-site + lftp y...@home.apache.org:~/public_html> mirror -R commons-rng-1.5-RC1-site lftp y...@home.apache.org:~/public_html> bye If lftp fails with 'Fatal error: Host key verification failed.' then the host @@ -559,42 +579,49 @@ a result that must be heavily edited.] Template the vote using this command (run from the dist-archive module): $ mvn org.apache.commons:commons-release-plugin:vote-txt \ - -Dcommons.nexus.repo.id=1568 \ - -Dgit.tag.commit=commons-rng-1.4-RC1 + -Dgit.tag.commit=commons-rng-1.5-RC1 \ + -Dcommons.nexus.repo.id=XXXX -See target/VOTE.txt. This must be heavily edited. It is useful to generate the release hashes. +where XXXX is the nexus repository staging ID. The output is target/VOTE.txt. +This must be heavily edited. It is useful to generate the release hashes. Call to vote by sending a message to the "dev" ML with subject -"[VOTE][RC1] Release Commons RNG 1.4". You can use the following example as +"[VOTE][RC1] Release Commons RNG 1.5". You can use the following example as a reference point, replacing the URLs with the appropriate ones: ---------- -We have fixed quite a few bugs and added some significant enhancements since Apache Commons RNG 1.3 was released, so I would like to release Apache Commons RNG 1.4. +We have fixed quite a few bugs and added some significant enhancements since Apache Commons RNG 1.4 was released, so I would like to release Apache Commons RNG 1.5. -Apache Commons RNG 1.4 RC1 is available for review here: - https://dist.apache.org/repos/dist/dev/commons/rng/1.4-RC1 (svn revision 49724) - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/ +Apache Commons RNG 1.5 RC1 is available for review here: + https://dist.apache.org/repos/dist/dev/commons/rng/1.5-RC1 (svn revision 49724) + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/ -The Git tag commit for this RC is commons-rng-1.4-RC1 which you can browse here: - https://gitbox.apache.org/repos/asf?p=commons-rng.git;a=commit;h=commons-rng-1.4-RC1 +The Git tag commit for this RC is commons-rng-1.5-RC1 which you can browse here: + https://gitbox.apache.org/repos/asf?p=commons-rng.git;a=commit;h=commons-rng-1.5-RC1 You may checkout this tag using: - git clone https://gitbox.apache.org/repos/asf/commons-rng.git --branch commons-rng-1.4-RC1 commons-rng-1.4-RC1 -(signature can be checked from git using 'git tag -v commons-rng-1.4-RC1') + git clone https://gitbox.apache.org/repos/asf/commons-rng.git --branch commons-rng-1.5-RC1 commons-rng-1.5-RC1 +(signature can be checked from git using 'git tag -v commons-rng-1.5-RC1') Commit ID the tag points at: 6f2e939bc1ae5d7c1317d4fb1af9ef3ac8d45e54 Maven artifacts are here: - https://repository.apache.org/content/repositories/orgapachecommons-1568/org/apache/commons/ + https://repository.apache.org/content/repositories/orgapachecommons-XXXX/org/apache/commons/ These are the artifacts and their hashes: #Release SHA-512s #[Date] -commons-rng-1.4-src.zip=<hash> -commons-rng-1.4-src.tar.gz=<hash> -commons-rng-1.4-bin.tar.gz=<hash> -commons-rng-1.4-bin.zip=<hash> +commons-rng-1.5-src.zip=<hash> +commons-rng-1.5-src.tar.gz=<hash> +commons-rng-1.5-bin.tar.gz=<hash> +commons-rng-1.5-bin.zip=<hash> + +Signatures may be validated on a system supporting a bash unix shell by executing: + svn co https://dist.apache.org/repos/dist/dev/commons/rng/1.5-RC1/ + cd 1.5-RC1 + chmod +x ./signature-validator.sh + for m in client-api core simple sampling bom; do ./signature-validator.sh https://repository.apache.org/content/repositories/orgapachecommons-1596/org/apache/commons/commons-rng-${m}/1.5/; done The source code contains examples that are not part of the public API. These examples contain Java 11 modules and are enabled using a profile (see below). @@ -616,22 +643,28 @@ Java version: 11.0.11, vendor: Ubuntu, runtime: /usr/lib/jvm/java-11-openjdk-amd Default locale: en_GB, platform encoding: UTF-8 OS name: "linux", version: "4.15.0-153-generic", arch: "amd64", family: "unix" -Details of changes since 1.3 are in the release notes: - https://dist.apache.org/repos/dist/dev/commons/rng/1.4-RC1/RELEASE-NOTES.txt - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/changes-report.html +Details of changes since 1.4 are in the release notes: + https://dist.apache.org/repos/dist/dev/commons/rng/1.5-RC1/RELEASE-NOTES.txt + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/changes-report.html Site: - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/index.html - (note some *relative* links are broken and the 1.4 directories are not yet created - these will be OK once the site is deployed.) + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/index.html + (note some *relative* links are broken and the 1.5 directories are not yet created - these will be OK once the site is deployed.) + +JApiCmp Report (compared to 1.4): + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-client-api/japicmp.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-core/japicmp.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-simple/japicmp.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-sampling/japicmp.html -JApiCmp Report (compared to 1.3): - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/commons-rng-client-api/japicmp.html - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/commons-rng-core/japicmp.html - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/commons-rng-simple/japicmp.html - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/commons-rng-sampling/japicmp.html +RevApi Report (compared to 1.4): + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-client-api/revapi-report.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-core/revapi-report.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-simple/revapi-report.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/commons-rng-sampling/revapi-report.html RAT Report: - https://home.apache.org/~aherbert/commons-rng-1.4-RC1-site/rat-report.html + https://home.apache.org/~aherbert/commons-rng-1.5-RC1-site/rat-report.html KEYS: https://www.apache.org/dist/commons/KEYS @@ -684,7 +717,7 @@ area of the Apache dist server. $ svn co https://dist.apache.org/repos/dist/dev/commons/rng rng2 $ cd rng - $ rsync -Cav ../rng2/1.4-RC1/ . + $ rsync -Cav ../rng2/1.5-RC1/ . [Note: This might overwrite symbolic links; in this case, do a "svn revert" in order to restore the files that should not be updated.] @@ -700,13 +733,13 @@ area of the Apache dist server. Perform a "svn add" for the new release artefacts. Perform a "svn del" for the old release(s) artefacts. - $ svn add binaries/*-1.4-* source/*-1.4-* - $ svn del binaries/*-1.3-* source/*-1.3-* + $ svn add binaries/*-1.5-* source/*-1.5-* + $ svn del binaries/*-1.4-* source/*-1.4-* (17d) Commit: - $ svn commit -m "Release Commons RNG v1.4 (from RC1)." + $ svn commit -m "Release Commons RNG v1.5 (from RC1)." (17e) Register the release at @@ -726,12 +759,17 @@ Publish the web site. This is done by first committing the web site to the staging area, and then by publishing the staging area (which is shared among all commons components). -In order to commit the web site to the staging area, look at the subversion -workspace that was automatically checked out during the 'mvn site' command in -folder site-content. Note that svn commits in the site-content directory are -immediately synced with the live site and so your changes should show up in a -few minutes once you commit the new site. You can also check out the site -directly by yourself elsewhere: +To assist in committing the web site to the staging area, a profile can be used +to checkout the current site to the folder 'site-content'. However this does not perform a +complete checkout and the directory must be updated: + + $ mvn -Psite-checkout -N pre-site + $ (cd site-content && svn up --set-depth infinity) + +Note that svn commits in the site-content directory are immediately synced with +the live site and so your changes should show up in a few minutes once you +commit the new site. You can also check out the site directly by yourself +elsewhere: $ svn checkout https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng site-content @@ -739,15 +777,16 @@ Remove all files there (except .svn folder) and move all the files from the site $ cd site-content $ rm -rf * - $ cp -pR ../target/commons-rng-1.4-RC1-site/* . + $ cp -pR ../target/commons-rng-1.5-RC1-site/* . Check for new or deleted files: $ svn status and "svn add" or "svn del" them if necessary. -It is very useful to know changes to the project since the last release. The japicmp -report is helpful for the public API. Changes in commons-rng-examples are not subject to these -reports and require developer insight. If in doubt do not delete files. +It is very useful to know changes to the project since the last release. The +japicmp report is helpful for the public API. Changes in commons-rng-examples +are not subject to these reports and require developer insight. If in doubt do +not delete files. Note the svn symbols (svn status --help): @@ -757,21 +796,25 @@ D - Marked for deletion ? - Not under version control (must be marked as A to add) ! - Missing (must be marked as D to remove) -The following commands are useful: +The following commands are useful. -Reverting: +Note that the "awk '{if ... print $2}'" only works for files that have no +spaces. Currently the only files known to have spaces are the SPDX files, +e.g. 'Apache Commons RNG-1.5.spdx.rdf.xml'; these must be committed manually. - $ svn status | grep ^M +Reverting (may not be required): + + $ svn status | grep ^M | less $ svn status | awk '{if ($1 == "M") print $2 }' | xargs svn revert Deleting (**do not** delete old javadocs): - $ svn status | grep -v javadocs | grep ^! + $ svn status | grep -v javadocs | grep ^! | less $ svn status | grep -v javadocs | awk '{if ($1 == "!") print $2 }' | xargs svn del Adding: - $ svn status | grep ^? + $ svn status | grep ^? | less $ svn status | awk '{if ($1 == "?") print $2 }' | xargs svn add Check the local website: @@ -779,7 +822,7 @@ Check the local website: $ open index.html Commit the new contents of the web site: - $ svn commit -m "Commons RNG v1.4 was released (from RC1). Web site update" + $ svn commit -m "Commons RNG v1.5 was released (from RC1). Web site update" Note the SVN website revision for the next step (javadocs archiving). @@ -791,7 +834,7 @@ your component: [edit file: conf/component_releases.properties] - $ (cd conf && svn commit -m "Commons RNG v1.4 was released (from RC1)") + $ (cd conf && svn commit -m "Commons RNG v1.5 was released (from RC1)") (20) @@ -804,7 +847,7 @@ The Javadoc must therefore be copied manually using server side copy from the to work. This is done as follows: $ export RNG_WEB_SITE_SVN_REVISION=1002658 - $ export RNG_RELEASE_VERSION=1.4 + $ export RNG_RELEASE_VERSION=1.5 $ svnmucc -U https://svn.apache.org/repos/infra/websites/production/commons/content/proper/commons-rng \ cp $RNG_WEB_SITE_SVN_REVISION commons-rng-client-api/apidocs \ commons-rng-client-api/javadocs/api-$RNG_RELEASE_VERSION \ @@ -819,6 +862,8 @@ to work. This is done as follows: [Note: The script "doc/release/copyLongTermJavadoc.sh" performs the above command (options are the svn revision and the component's new version).] + $ doc/release/copyLongTermJavadoc.sh -r 1080991 -v 1.5 + Wait a few minutes for the live site to fully sync and then check https://commons.apache.org/proper/commons-rng/ to make sure that everything looks correct. @@ -834,14 +879,14 @@ in the SVN repository. [edit file: doap/doap_rng.rdf] - $ (cd doap && svn commit -m "Commons RNG v1.4 was released (from RC1)") + $ (cd doap && svn commit -m "Commons RNG v1.5 was released (from RC1)") (22) In the git repository, put the official final tag to point at the same commit as the **last release candidate** tag: - $ git tag -v commons-rng-1.4-RC1 + $ git tag -v commons-rng-1.5-RC1 Check the commit hash then add the release tag. Note: The 'rel/' prefix adds the tag to the release section of the tags. @@ -849,8 +894,9 @@ This cannot be deleted once pushed to the main repository due to restrictions on this section of the tag namespace (preventing deletion of official release tags). - $ git tag -u "__Your_key_id__" -s -m "RC1 becomes v1.4 official release." rel/commons-rng-1.4 [commit hash] - $ git tag -v rel/commons-rng-1.4 + $ git checkout 1.5-release + $ git tag -u "__Your_key_id__" -s -m "RC1 becomes v1.5 official release." rel/commons-rng-1.5 [commit hash] + $ git tag -v rel/commons-rng-1.5 $ git log -1 $ git push --tags @@ -858,21 +904,21 @@ tags). (23) Switch back to the "master" branch. We now prepare for the next round of development (here we assume that the -next version will be 1.5). +next version will be 1.6). (23a) - Retrieve files from the "1.4-release branch" (so that the web site will + Retrieve files from the "1.5-release branch" (so that the web site will contain up-to-date information): - $ git checkout 1.4-release commons-rng-client-api/src/site/site.xml - $ git checkout 1.4-release commons-rng-core/src/site/site.xml - $ git checkout 1.4-release commons-rng-simple/src/site/site.xml - $ git checkout 1.4-release commons-rng-sampling/src/site/site.xml - $ git checkout 1.4-release src/changes/changes.xml - $ git checkout 1.4-release src/site/xdoc/download_rng.xml - $ git checkout 1.4-release RELEASE-NOTES.txt - $ git checkout 1.4-release src/site/resources/release-notes/RELEASE-NOTES-<version>.txt - $ git checkout 1.4-release src/site/xdoc/release-history.xml + $ git checkout 1.5-release commons-rng-client-api/src/site/site.xml \ + commons-rng-core/src/site/site.xml \ + commons-rng-simple/src/site/site.xml \ + commons-rng-sampling/src/site/site.xml \ + src/changes/changes.xml \ + src/site/xdoc/download_rng.xml \ + RELEASE-NOTES.txt \ + src/site/resources/release-notes/RELEASE-NOTES-1.5.txt \ + src/site/xdoc/release-history.xml Edit "src/changes/changes.xml" to add a new section for the next release, setting the release date and description to "TBD". @@ -881,24 +927,24 @@ next version will be 1.5). (23b) Optional: If the release manager was changed retrieve the updated release manager details: - $ git checkout 1.4-release dist-archive/pom.xml + $ git checkout 1.5-release dist-archive/pom.xml Edit every "pom.xml" file (i.e. for each module) to contain - <version>1.5-SNAPSHOT</version> + <version>1.6-SNAPSHOT</version> This can be done using maven: - $ mvn release:update-versions -DautoVersionSubmodules=true -Prelease -Pcommons-rng-examples -Pdocs-archive + $ mvn release:update-versions -DautoVersionSubmodules=true -Prelease -Pcommons-rng-examples -Pdocs You will only be prompted for the desired version number once. - This may miss the dist-archive/pom.xml for all the dependencies. - These should be updated manually. + This may miss the dist-archive/pom.xml and docs-archive/pom.xml for all + the dependencies. These should be updated manually. Double-check that the "pom.xml" files *really* have a "-SNAPSHOT" suffix in the "<version>" property. - $ git grep '1.4-SNAPSHOT' [old version number] - $ git grep '1.5-SNAPSHOT' [new version number] + $ git grep '1.5-SNAPSHOT' [old version number] + $ git grep '1.6-SNAPSHOT' [new version number] $ git grep '<version>' Then commit them. @@ -911,15 +957,18 @@ next version will be 1.5). An updated will involve: - 1. Replacing the <version>1.3</version> example XML for the maven dependency to - <version>1.4</version>. + 1. Replacing the <version>1.4</version> example XML for the maven dependency to + <version>1.5</version>. 2. Updating any badges for Javadocs. This can be done using search and replace - of '1.3.svg' for '1.4.svg' and '/1.3)' for '/1.4)'. + of '1.4.svg' for '1.5.svg' and '/1.4)' for '/1.5)'. Check the changes using 'git diff' and commit. (23d) - Update the <commons.release.version> tag in the master pom for the latest release. + Update the <commons.release.version> tag in the master pom for the next + planned release. + + Update the <commons.bc.version> tag in the master pom for the recent release. (23e) Update any other files that use a hard-coded version number: @@ -939,16 +988,16 @@ email from your apache account: https://infra.apache.org/committer-email.html -The mail should be sent as text/plain. A text/html message will be refused by the Apache -mailer daemon. +The mail should be sent as text/plain. A text/html message will be refused by +the Apache mailer daemon. You can use the following message as a template: Subject: -[ANNOUNCE] Apache Commons RNG 1.4 released +[ANNOUNCE] Apache Commons RNG 1.5 released ---------- The Apache Commons Team is pleased to announce the availability of -version 1.4 of "Apache Commons RNG". +version 1.5 of "Apache Commons RNG". Apache Commons RNG provides Java implementations of pseudo-random numbers generators. @@ -978,15 +1027,15 @@ Maven artifacts are also available in the central Maven repository: ---- <groupId>org.apache.commons</groupId> <artifactId>commons-rng-client-api</artifactId> - <version>1.4</version> + <version>1.5</version> ---- <groupId>org.apache.commons</groupId> <artifactId>commons-rng-simple</artifactId> - <version>1.4</version> + <version>1.5</version> ---- <groupId>org.apache.commons</groupId> <artifactId>commons-rng-sampling</artifactId> - <version>1.4</version> + <version>1.5</version> ---- The Apache Commons Team @@ -1009,7 +1058,7 @@ Update JIRA to close all issues resolved in this release and prepare for the nex Step 1: Select the issues to close. Step 2: Select 'Transition issues'. Step 3: Select to close. - Step 4: Enter comment: 'Closed by release 1.4'. + Step 4: Enter comment: 'Closed by release 1.5'. Unselect 'Send mail for this update'. Confirm. @@ -1029,4 +1078,14 @@ Update JIRA to close all issues resolved in this release and prepare for the nex (26) -Finally revise the release notes (this document) with any changes to improve the release process. +If you created a staged version of the website you may wish to delete this +from apache personal area: + + $ lftp sftp://__your_apache_logi...@home.apache.org + lftp y...@home.apache.org:~> cd public_html + lftp y...@home.apache.org:~/public_html> rm -rf commons-rng-1.5-RC1-site + lftp y...@home.apache.org:~/public_html> bye + +(27) +Finally revise the release notes (this document) with any changes to improve +the release process.