Project

General

Profile

Release

Once the modification of jTReqS have been done, it is necessary to create a release in order to be deployed in pre-production and production environments.

In order to create a release it is important to have committed all changes in the Control Version, in this case git. Then, we can continue with the release process that is done with Apache Maven.
You go to the root directory of the source code and you type

$ export HPSS_ROOT=${HPSS_ROOT:-/opt/hpss}
$ export LD_LIBRARY_PATH=`pwd`/bin:${HPSS_ROOT}/lib
$ mvn release:prepare

The previous command will generate an output similar to the next, and you just have to answer the questions.

[INFO] [release:prepare {execution: default-cli}]
[INFO] Verifying that there are no local modifications...
[INFO] Executing: /bin/sh -c cd /home/pbrinett/workspace/jtreqs && git status
[INFO] Working directory: /home/pbrinett/workspace/jtreqs
[INFO] Checking dependencies and plugins for snapshots ...
What is the release version for "jTReqS Server - Parent"? (fr.in2p3.cc.storage.jtreqs:jtreqs-server-parent) 1.5.2: : 1.5.2
What is the release version for "jTReqS Server - Java sources"? (fr.in2p3.cc.storage.jtreqs.java:jtreqs-server-java) 1.5.2: : 
What is the release version for "jTReqS Server - Native part"? (fr.in2p3.cc.storage.jtreqs.native:jtreqs-server-native) 1.5.2: : 
What is the release version for "jTReqS Server - Release bundle"? (fr.in2p3.cc.storage.jtreqs.release:jtreqs-server-release) 1.5.2: : 
What is SCM release tag or label for "jTReqS Server - Parent"? (fr.in2p3.cc.storage.jtreqs:jtreqs-server-parent) jtreqs-server-parent-1.5.2: : 
What is the new development version for "jTReqS Server - Parent"? (fr.in2p3.cc.storage.jtreqs:jtreqs-server-parent) 1.5.3-SNAPSHOT: : 
What is the new development version for "jTReqS Server - Java sources"? (fr.in2p3.cc.storage.jtreqs.java:jtreqs-server-java) 1.5.3-SNAPSHOT: : 
What is the new development version for "jTReqS Server - Native part"? (fr.in2p3.cc.storage.jtreqs.native:jtreqs-server-native) 1.5.3-SNAPSHOT: : 
What is the new development version for "jTReqS Server - Release bundle"? (fr.in2p3.cc.storage.jtreqs.release:jtreqs-server-release) 1.5.3-SNAPSHOT: : 
[...]

A little analyzis of the formuled questions:

The next four questions ask the version number to be commited as stable version. Current version for developping are SNAPSHOT, so it is necessary a stable version without the word SNAPSHOT.
  • What is the release version for "jTReqS Server - Parent"?
  • What is the release version for "jTReqS Server - Java sources"?
  • What is the release version for "jTReqS Server - Native part"?
  • What is the release version for "jTReqS Server - Release bundle"?
  • What is the release version for "jTReqS Server - Monitoring part"?
Maven will create a tag in Git, and here, it is asking the name for this tag.
  • What is SCM release tag or label for "jTReqS Server - Parent"?
After a stable version has created, Maven asks the version name for developping. This name will contain the SNAPSHOT word in it.
  • What is the new development version for "jTReqS Server - Parent"?
  • What is the new development version for "jTReqS Server - Java sources"?
  • What is the new development version for "jTReqS Server - Native part"?
  • What is the new development version for "jTReqS Server - Release bundle"?
  • What is the new development version for "jTReqS Server - Monitoring part"?

For all these questions, it is recommended to accept the values that Maven proposes.

Finally, after the release process has finished successfully, it is necessary to push the new tag. The command should be something like this

git push --tags in2p3
mvn release:clean

An extra step could be import the generated file in the forge. The file includes everything and it can be found at

release/target/jtreqs.tar.gz