Update release howto.
This commit is contained in:
parent
780dba1a30
commit
f4dfc40142
|
@ -71,9 +71,9 @@ Preliminary checks:
|
||||||
* All Java files must contain a license header. The "RAT" maven plugin will
|
* All Java files must contain a license header. The "RAT" maven plugin will
|
||||||
generate a report indicating for which files the license is missing.
|
generate a report indicating for which files the license is missing.
|
||||||
* For a "minor" release, the library must be backward-compatible. Check all
|
* 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.
|
* 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
|
* Mark all fixed issues as such in the bug-tracking system, and add a
|
||||||
corresponding entry in "src/changes/changes.xml".
|
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
|
$ mvn clean site deploy -Prelease -Ptest-deploy
|
||||||
|
|
||||||
should create the artifacts in the "target/deploy" (note that the "JAVA_HOME"
|
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)
|
(2)
|
||||||
|
@ -100,6 +112,7 @@ remembering the binding between the local and remote origin branches:
|
||||||
$ git branch X.Y-release
|
$ git branch X.Y-release
|
||||||
$ git push -u origin X.Y-release
|
$ git push -u origin X.Y-release
|
||||||
|
|
||||||
|
|
||||||
(3)
|
(3)
|
||||||
Switch to the release branch:
|
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:
|
merge master branch or version branch into X.Y-release branch:
|
||||||
|
|
||||||
$ git merge master
|
$ git merge master
|
||||||
|
or
|
||||||
|
$ git rebase master
|
||||||
or, if the version branch is called MATH_3_X
|
or, if the version branch is called MATH_3_X
|
||||||
$ git merge 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
|
* Estimate a release date (taking into account the release vote delay) and
|
||||||
insert it in the "src/changes/changes.xml" file.
|
insert it in the "src/changes/changes.xml" file.
|
||||||
* Update the "pom.xml" to contain the final version number and not a SNAPSHOT:
|
* 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:
|
read:
|
||||||
|
|
||||||
<version>3.4</version>
|
<version>4.0-beta1</version>
|
||||||
|
|
||||||
Modify the section of "<properties>" that also refers to version numbers.
|
Modify the section of "<properties>" that also refers to version numbers.
|
||||||
You should uncomment the "<commons.rc.version>" line and indicate the
|
You should uncomment the "<commons.rc.version>" line and indicate the
|
||||||
|
@ -147,7 +162,7 @@ In particular:
|
||||||
|
|
||||||
<properties>
|
<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>
|
<commons.rc.version>RC1</commons.rc.version>
|
||||||
<!-- ... -->
|
<!-- ... -->
|
||||||
</properties>
|
</properties>
|
||||||
|
@ -157,7 +172,7 @@ In particular:
|
||||||
The "download" page template is located at "src/site/xdoc/download_math.xml".
|
The "download" page template is located at "src/site/xdoc/download_math.xml".
|
||||||
This file is updated automatically by running the command:
|
This file is updated automatically by running the command:
|
||||||
|
|
||||||
$ mvn commons:download-page
|
$ mvn commons-build:download-page
|
||||||
|
|
||||||
|
|
||||||
(7)
|
(7)
|
||||||
|
@ -180,7 +195,7 @@ Check you did not forget any file:
|
||||||
$ git status
|
$ git status
|
||||||
|
|
||||||
Commit the changes:
|
Commit the changes:
|
||||||
$ git commit -m "creating release candidate"
|
$ git commit -m "Create release candidate."
|
||||||
|
|
||||||
|
|
||||||
(8)
|
(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
|
be the same as in the "<properties>" in the "pom.xml"), and the command
|
||||||
will be:
|
will be:
|
||||||
|
|
||||||
$ git tag -s -m "Creating Apache Commons Math v3.4 RC1 tag." MATH_3_4_RC1
|
$ git tag -u "__Your_key_id__" -m "Create Commons Math v4.0-beta1 RC1 tag." commons-math-4.0-beta1-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.
|
|
||||||
|
|
||||||
Check the tag GPG signature:
|
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:
|
You will get something like:
|
||||||
|
|
||||||
object cf4a9d70c9ac24dd7196995390171150e4e56451
|
object 1d862ec8cca30a6b797583ef2f837e54830f658d
|
||||||
type commit
|
type commit
|
||||||
tag MATH_3_4_RC1
|
tag commons-math-4.0-beta1-RC1
|
||||||
tagger Luc Maisonobe <luc@apache.org> 1418934614 +0100
|
tagger Gilles Sadowski <gilleseran@gmail.com> 1670895878 +0100
|
||||||
|
|
||||||
Creating Apache Commons Math v3.4 RC1 tag.
|
Create Commons Math v4.0-beta1 RC1 tag.
|
||||||
gpg: Signature made Thu Dec 18 21:30:14 2014 CET using RSA key ID 02E9F65B
|
gpg: Signature made Tue 13 Dec 2022 02:44:38 AM CET
|
||||||
gpg: Good signature from "Luc Maisonobe (CODE SIGNING KEY) <luc@apache.org>"
|
gpg: using RSA key B39617E095CD748DFE505816703413011E22D5B8
|
||||||
gpg: aka "Luc Maisonobe <Luc.Maisonobe@c-s.fr>"
|
gpg: issuer "erans@apache.org"
|
||||||
gpg: aka "Luc Maisonobe <Luc.Maisonobe@free.fr>"
|
gpg: Good signature from "Gilles Sadowski (ASF code signing) <erans@apache.org>" [ultimate]
|
||||||
gpg: aka "Luc Maisonobe <luc@orekit.org>"
|
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.
|
as it is the most stable reference for traceability.
|
||||||
|
|
||||||
Push everything (including the tag!) on the Apache repository:
|
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:
|
the official tag from the Apache repository:
|
||||||
|
|
||||||
$ cd /tmp
|
$ 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,
|
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
|
so we specify directly the tag here. Git will warn that the resulting workspace
|
||||||
|
|
Loading…
Reference in New Issue