Update release howto.

This commit is contained in:
Gilles Sadowski 2022-12-13 01:36:55 +01:00
parent 780dba1a30
commit f4dfc40142
1 changed files with 36 additions and 25 deletions

View File

@ -71,9 +71,9 @@ Preliminary checks:
* All Java files must contain a license header. The "RAT" maven plugin will
generate a report indicating for which files the license is missing.
* For a "minor" release, the library must be backward-compatible. Check all
the errors reported by the "Clirr" plugin.
the errors reported by the "Clirr" and/or "Revapi" plugin.
* Clear all "CheckStyle" warnings.
* Make sure that the construct reported by "FindBugs" are intentional.
* Make sure that the construct reported by "SpotBugs" are intentional.
* Mark all fixed issues as such in the bug-tracking system, and add a
corresponding entry in "src/changes/changes.xml".
@ -86,7 +86,19 @@ that the build process can create all the necessary artifacts. The commands
$ mvn clean site deploy -Prelease -Ptest-deploy
should create the artifacts in the "target/deploy" (note that the "JAVA_HOME"
environment variable msut be defined to point to a valid JDK installation).
environment variable must be defined to point to a valid JDK installation).
Note: If running from a remote terminal, you might need to tune the "gpg-agent"
configuration file
~/.gnupg/gpg-agent.conf
to contain the following statements:
---CUT---
enable-ssh-support
pinentry-program /usr/bin/pinentry-tty
---CUT---
and execute
$ export GPG_TTY=$(tty)
in order to set up the environment for entering the passphrase.
(2)
@ -100,6 +112,7 @@ remembering the binding between the local and remote origin branches:
$ git branch X.Y-release
$ git push -u origin X.Y-release
(3)
Switch to the release branch:
@ -115,6 +128,8 @@ branch since the creation of the release branch, there are two cases:
merge master branch or version branch into X.Y-release branch:
$ git merge master
or
$ git rebase master
or, if the version branch is called MATH_3_X
$ git merge MATH_3_X
@ -134,10 +149,10 @@ 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 "3.4", modify the "<version>" tag to
Assuming that the release version will be "4.0-beta1", modify the "<version>" tag to
read:
<version>3.4</version>
<version>4.0-beta1</version>
Modify the section of "<properties>" that also refers to version numbers.
You should uncomment the "<commons.rc.version>" line and indicate the
@ -147,7 +162,7 @@ In particular:
<properties>
<!-- ... -->
<commons.release.version>3.4</commons.release.version>
<commons.release.version>4.0-beta1</commons.release.version>
<commons.rc.version>RC1</commons.rc.version>
<!-- ... -->
</properties>
@ -157,7 +172,7 @@ In particular:
The "download" page template is located at "src/site/xdoc/download_math.xml".
This file is updated automatically by running the command:
$ mvn commons:download-page
$ mvn commons-build:download-page
(7)
@ -180,7 +195,7 @@ Check you did not forget any file:
$ git status
Commit the changes:
$ git commit -m "creating release candidate"
$ git commit -m "Create release candidate."
(8)
@ -193,31 +208,27 @@ 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 -s -m "Creating Apache Commons Math v3.4 RC1 tag." MATH_3_4_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
from the configured e-mail address.
$ git tag -u "__Your_key_id__" -m "Create Commons Math v4.0-beta1 RC1 tag." commons-math-4.0-beta1-RC1
Check the tag GPG signature:
$ git tag -v MATH_3_4_RC1
$ git tag -v commons-math-4.0-beta1-RC1
You will get something like:
object cf4a9d70c9ac24dd7196995390171150e4e56451
object 1d862ec8cca30a6b797583ef2f837e54830f658d
type commit
tag MATH_3_4_RC1
tagger Luc Maisonobe <luc@apache.org> 1418934614 +0100
tag commons-math-4.0-beta1-RC1
tagger Gilles Sadowski <gilleseran@gmail.com> 1670895878 +0100
Creating Apache Commons Math v3.4 RC1 tag.
gpg: Signature made Thu Dec 18 21:30:14 2014 CET using RSA key ID 02E9F65B
gpg: Good signature from "Luc Maisonobe (CODE SIGNING KEY) <luc@apache.org>"
gpg: aka "Luc Maisonobe <Luc.Maisonobe@c-s.fr>"
gpg: aka "Luc Maisonobe <Luc.Maisonobe@free.fr>"
gpg: aka "Luc Maisonobe <luc@orekit.org>"
Create Commons Math v4.0-beta1 RC1 tag.
gpg: Signature made Tue 13 Dec 2022 02:44:38 AM CET
gpg: using RSA key B39617E095CD748DFE505816703413011E22D5B8
gpg: issuer "erans@apache.org"
gpg: Good signature from "Gilles Sadowski (ASF code signing) <erans@apache.org>" [ultimate]
gpg: aka "Gilles Sadowski <gilles@harfang.homelinux.org>" [ultimate]
Remember the commit ID listed in the object line (here cf4a9d70c9ac24dd7196995390171150e4e56451),
Remember the commit ID listed in the object line (here: 1d862ec8cca30a6b797583ef2f837e54830f658d),
as it is the most stable reference for traceability.
Push everything (including the tag!) on the Apache repository:
@ -229,7 +240,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-math.git --branch MATH_3_4_RC1
$ git clone https://gitbox.apache.org/repos/asf/commons-math.git --branch commons-math-4.0-beta1-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