Release a Relase Candidate version of Asqatasun

This is the documentation for releasing a new version Release Candidate for Asqatasun. As an end user, you won't need it, it is just for developers.

1) Prepare

2) Update (THE readme from top directory):

  • copy/paste changelog in section "Content of this last version"

3) Upgrade version strings in code with

/!\ Be sure to be on the develop branch before launching the following script.

cd engine/asqatasun-resources/src/main/resources/release/
./ --source ABSOLUTE_PATH_TO_ASQATASUN_Sources --from-version X.Y.Z-SNAPSHOT --to-version X.Y.Z-rc.1 --automerge --commit --tag --push

4) Build local Docker image with locally build Asqatasun

...and check release is the good one + run some manual tests

cd /tmp/Asqatasun   # Directory used to clone Github repos
docker/ --skip-build -s /tmp/Asqatasun -d docker/SNAPSHOT-local

5) For develop branch, switch back release strings to "-SNAPSHOT"

cd /tmp/Asqatasun   # Directory used to clone Github repos
git checkout develop
git rebase master
cd engine/asqatasun-resources/src/main/resources/release/
./ --from-version X.Y.Z-rc.1 --to-version X.Y.Z-SNAPSHOT --source-dir /tmp/Asqatasun
find . -name "pom.xml" | xargs git add -u :/
find . -name "pom.vm" | xargs git add -u :/
find . -name "Dockerfile" | xargs git add -u :/
git add **/ 
git add **/asqatasun.conf
git add ansible/asqatasun/defaults/main.yml
git commit -m "Switch release to X.Y.Z-SNAPSHOT"
git push origin develop

6) In Github:

  • Define this tag as "Pre-Release" (as it is a Release Candidate)
  • Copy/paste Changelog to Github Pre-Release comment field
  • Upload the .tar.gz file

7) Update that "latest" points to the last release.

8) In Asqatasun Docker hub:

  • Add a dedicated build for the Github tag (e.g. 4.0.0-rc.1) with the same tag as Docker tag (4.0.0-rc.1) (while waiting to have a working regexp :) ).
  • Add another dedicated build for the Github tag (e.g. 4.0.0-rc.1) with latest as Docker tag

9) Write a message in the forum

10) Send an email to close people to ask them if they want to play with the RC.

11) Run the functional tests

12) Prepare communication

  • Tweet
  • Facebook message
  • LinkedIn groups + LinkedIn profiles
  • LinuxFR
  • TooLinux

13) If no blocker is found, proceed to next step, else iterate and increment RC number.