Producing a Release
Producing a Release
Here are described the steps to produce a release
0. Pre-requisites
- CI is green
- A human being has applied E2E testing for Asqatasun server
- A human being has applied E2E testing for Asqatasun webapp
- Documentation repos is up-to-date, especially install doc and upgrade doc.
- List of results per test (passed, failed, NMI, NA, Not Tested) is up-to-date
1. Assumptions
RELEASE_VERSION
is the version string we’re about to release. It must be SemVer compatible. Example:6.0.0-alpha.1
DEV_VERSION
is the version string of the code base:- after the release is created,
- and for the immediate next release.
- (It is not considered as a version in the sense of SemVer.)
- Example:
6.0.0-SNAPSHOT
RELEASE_VERSION="6.0.0-alpha.1"
DEV_VERSION="6.0.0-SNAPSHOT"
2. Create a merge request to update content
- Update
CHANGELOG.md
- Update
README.md
Then update contributors.txt
, from the root of the repos:
engine/asqatasun-resources/src/main/resources/release/update_contributors.sh --to-version ${RELEASE_VERSION}
Note: the update_contributors.sh
script relies on a .mailmap
file, that groups various names / emails of
a given contributor into a unique one (couple name/email). As the .mailmap
file contains a lot of personal emails
we chose deliberately not to place it in the repository.
Merge the merge request.
3. Launch release creation
- At the end of the pipeline on main branch (
main
ormaster
), click on the Maven_release job. (Take care to click on the text, not on the “play” icon, you would miss the ability to define the values.) - Type in the following keys with their values
RELEASE_VERSION
(example value:6.0.0-alpha.1
)NEXT_DEVELOPMENT_VERSION
(example value:6.0.0-SNAPSHOT
)
- Then click on Run job.
This job will:
- update the
pom.xml
files withRELEASE_VERSION
, - create a git tag named
RELEASE_VERSION
, - create a gitlab-release named
RELEASE_VERSION
, - upload docker images to Docker Hub, Asqatasun namespace
- update the
pom.xml
files withNEXT_DEVELOPMENT_VERSION
.
4. Add details to the Gitlab release
Complete the gitlab-release details with:
- copy/pasting the changelog,
- defining the associated milestone.
6. Communicate
- Create a message on the forum. Do not forget to include screenshots. Example: Asqatasun 6.0.0-alpha.1 is out! Huge maintenance work + PostgreSQL + contracts in API
- Publish announce on Masto + Element