Skip to end of banner
Go to start of banner

Module Releases

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 16 Next »

The purpose of this page is describing module release practical procedures. Mainly these steps are based on general "Release Procedure" but contains some of refinements found in the process of recent release procedures. 

This page could be updated after every new Release if it's needed to provide practically proven steps of the procees. That allows to avoid waste of time to understand some terms and steps of these processes.

All release processes as a rule consist of common steps, but can have some differences which can lead to possible issues in both - the process itself and final result.

Recently there were several kind of releases been completted, therefore both of them will be described here. 

  1. General Release of Feature Release.

This kind of Release performed to rollout some scope of planned changes, as usual it carried out on regular basis, at the end of group of sprint's cycles etc.

Let assume that we need to prepare a new release with the number: 2.2.1 and the tag: v2.2.1. In term of mentioned above general instruction, perepared release number is: X.Y.1.

  • Create a new release branch out of master - main development branch:


1) git checkout master (swith to the main development branch);

2) git pull (retrive latest changes to branch);

3) git checkout -b tmp-release-2.2.1 (create a new release branch);

4) vi NEWS.md (edit release notes file and add description of release's features. Example below);

This release includes minor bug fixes for edge-oai-pmh module (Q2/2020).
https://issues.folio.org/browse/EDGOAIPMH-49

5) git commit -m "Update NEWS" NEWS.md (commit changes in release notes files);

6) mvn -DautoVersionSubmodules=true release:clean release:prepare (run maven release buld process. Here we need to check and setup release number, tag number and next feature version number)

In this partucilar case we need to specify these versions (proposed default values are based on current version in master development branch - 2.3.0-SNAPSHOT, so they needs to be corrected):

 What is the release version for "Edge API - OAI-PMH"? (org.folio:edge-oai-pmh) 2.3.0: : 2.2.1

What is SCM release tag or label for "Edge API - OAI-PMH"? (org.folio:edge-oai-pmh) v2.2.1: : 2.2.1

What is the new development version for "Edge API - OAI-PMH"? (org.folio:edge-oai-pmh) 2.2.2-SNAPSHOT: : 2.3.0-SNAPSHOT

7) git push && git push --tags (pushing local changes, release notes in this case, with tags to remote stash)

8) Run release job (log in to Jenkins and trigger Build Now). Please don't forget to build release's envitronment !!!

9) Merge release's branch to the master.

10) Mark ticket in Jira as Released and add next versions.

11) Annonce in Slack about a new release in the #release thread (example of message):

`edge-oai-pmh 2.2.1` has been released https://github.com/folio-org/edge-oai-pmh/releases/tag/v2.2.1


2. Bugfix Release.

This kind of release require cration (if none)  or reusing as named "long-live" branch, which contains only chnages prepared for this partucular release. Those branches has the name kind b19.2. In this description we goind to prepare build number 19.2.3 into the long-lived branch b19.2.

To create "long-live" branch please folow these steps:

  • git checkout -b b19.2 v19.2.0 (create release branch from last recent relase tag. So that this bugfix release will be based on previous general release point, i.e.  - release v.19.2.0.);
  • mvn versions:set -DnewVersion=2.3.1-SNAPSHOT (here we specify version of next snapshot);
  • git commit -a -m "release branch" (commit verson chnages into new bugfix release branch);
  • git push (push changes to git stash server).

Now if we have or already prepared "long-live" branch, please follow these steps to prepare bugfix release:

1) git checkout b19.2 (switch into "long-live" release branch);

2) vi NEWS.md (edit release notes file and add description of release's features. Example below)


3) git commit -m "Update NEWS" NEWS.md ()

4) mvn --batch-mode -DautoVersionSubmodules=true release:clean release:prepare ()

5) git push && git push --tags ()

6) Run release job (log in to Jenkins and trigger Build Now). Please don't forget to build release's envitronment !!!

7) Mark ticket in Jira as Released and add next versions.

8) Annonce in Slack about a new release in the #release thread (example of message):

`mod-inventory-storage 19.2.3` has been released https://github.com/folio-org/mod-inventory-storage/releases/tag/v19.2.3

  • No labels