Create the releaseΒΆ

The GammaLib release is created by invoking the release manager:

$ dev/release.py
GammaLib release manager
========================

[1] Make a new release
[2] Set the package version in current branch
[3] Set the libtool version in current branch
[4] Commit changes in current branch
[5] Create tarball from current branch
[6] Check tarball
[q] Quit
Enter your choice:

To create a new release type 1. You will then be guided through a number of questions. In the example below we show how you go from the development version 1.2.0.dev to the release 1.2.0. The first step is to create a release branch.

Make a new release
------------------
Step 1: Do you want to create a 'release' branch? (y/n): y
Created new branch 'release'
Switched to a new branch 'release'

Then you have to set the version number of the release.

Step 2: Current GammaLib version is '1.2.0.dev'. Do you want to change the package version? (y/n): y
Current GammaLib version is '1.2.0.dev'. Please enter new GammaLib version: 1.2.0
Change version to '1.2.0'? (y/n): y
GammaLib version changed to '1.2.0'

After this the libtool version number will be set. The libtool version number will in general be different from the release version number. The new libtool version number is determined from the source code and interface changes with respect to the last release. You therefore have to answer a couple of questions about the changes you did.

Step 3: Current Libtool version is '2:0:0'. Do you want to change the libtool version? (y/n): y
Current libtool version is '2:0:0'. Do you want to change the version? (y/n): y
 Has the source code changed since last release? (y/n): y
 Have interfaces been added since last release? (y/n): y
 Have interfaces been removed since last release? (y/n): y
 Have interfaces changed since last release? (y/n): y
Libtool version changed to '3:0:0'

Then you have to commit all changes and push them into the git repository.

Step 4: Commit changes? (y/n): y
The following files have been changed:
 M README.md
 M configure.ac
 M doc/Doxyfile
 M doc/source/conf.py
 M gammalib.pc.in
 M sonar-project.properties
Commit all changes? (y/n): y
[release addb070] GammaLib package version set to '1.2.0' and libtool version set to '3:0:0'
 6 files changed, 8 insertions(+), 8 deletions(-)

Step 5: Push changes? (y/n): y
Counting objects: 10, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (10/10), done.
Writing objects: 100% (10/10), 880 bytes | 0 bytes/s, done.
Total 10 (delta 8), reused 0 (delta 0)
remote: To https://github.com/gammalib/gammalib.git
remote:  * [new branch]      release -> release
To https://cta-gitlab.irap.omp.eu/gammalib/gammalib.git
 * [new branch]      release -> release

You then should build and check the source tarball to verify that everything went fine. Note that this step is not formally needed for a release since the software release will start from the code in the release branch.

Step 6: Build tarball? (y/n): y
Log actions in logfile? (y/n): y
Configure package
Package configuration successful
Create tarball
Tarball creation successful

Step 7: Check tarball? (y/n): y
Log check in logfile? (y/n): y
Configure package
Package configuration successful
Check tarball
Tarball checking successful

Now you are done and can quite the release manager.

[1] Make a new release
[2] Set the package version in current branch
[3] Set the libtool version in current branch
[4] Commit changes in current branch
[5] Create tarball from current branch
[6] Check tarball
[q] Quit
Enter your choice: q