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.
- 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.