Release Life Cycle
A release starts with a set of planned requirements and ends with a usable software.
Release documents
The release documents are stored in git under Documents/Releases in a subfolder named with the release number and a short release description, e.g. 0.5 Proof of Concept Prototype.
This folder contains the following files:
| File | Description |
|---|---|
| Requirements.html | Description of all requirements that must be fulfilled for the release. |
| Environment.html | Describe the development environment for the release. |
Creating a new release
To start the work for a new release, do the following things:
- Set the version number in the top level
build.gradle.ktsfile, suffixed by-SNAPSHOT. Example:version = "0.5-SNAPSHOT" - Create the release folder under
Documents/Releasesas described above. - Add all required files to the release folder:
Requirements.html: Describe an initial set of requirements.Environemt.html: Define the following properties- Integration branch name. For releases after 0.5, this must not be
main - Artifacts the software will consist of
- Integration branch name. For releases after 0.5, this must not be
- Create a label named
Version:+ the version number, e.g.Version:0.5 - Create a branch for
During development
- Create issues with the label
Featureto implement the features of the release. These issues may either implement existing requirements or may add additional requirements (incl. updatingRequirements.html). - Merge all fully implemented and tested features to the integration branch.
- Mark implemented requirements accordingly in the
Requirements.htmlfile.
Finalizing the release
Create an issue for finalizing the release and use this issue for the final commits:
- Check if all requirements have been marked as implemented in ```Requirements.html``.
- Remove the
-SNAPSHOTsuffix from the version number in the top levelbuild.gradle.ktsfile. - Update any other documents where the release is mentioned.
- Commit and merge the changes to the integration branch.
- Merge the integration branch to the
mainbranch. - Build and upload all artifacts defined in
Environment.html. - Have a bottle of champaign with the teammates.