-
Notifications
You must be signed in to change notification settings - Fork 10
Release Management
All Stepup applications and libraries follow Semantic Versioning 2.0.0. The complete specification can be read there.
In short, given a version number MAJOR.MINOR.PATCH, increment the:
- MAJOR version when you make incompatible API changes,
- MINOR version when you add functionality in a backwards-compatible manner, and
- PATCH version when you make backwards-compatible bug fixes.
All Stepup applications and follow a branching model.
In short:
- all work is performed in branches, like
feature/add-button
,bugfix/syntax-fix
,maintenance/update-dependencies
; - which is merged to the development branch,
develop
; - releases are prepared on release branches by merging
develop
into a release branch, likerelease-1.5
; - and releases are tagged on
master
or on a release branch (when multiple versions are maintained), by merging in the latest release branch and tagging.
Note that all merging is performed without fast-forwards by specifying --no-ff
.
Before a version may be released:
-
the test suite must pass;
-
and the changelog must be updated.
-
the changelog is written using Markdown and should be formatted like so:
# Upcoming release Release description, consider categorizing the changes when many changes are applied. # 1.2.1 Release description # 1.2.0 Release description
The changelog for the main applications is tracked in the Stepup-Deploy changelog. Changes in bundles are tracked in their own changelog.md file. Please keep the Stepup-Deploy changelog up to date during development add all noteworthy change notes or upgrade instructions to this file in an 'upcomming release' entry.
-
the new release should be tagged either on
master
or on the release branch when releasing for a specific (non latest) release. -
the tag can be released in Github
Please update the changelog in the branch where the feature/bugfix is developed. When writing the changelog and the next version number is not clear yet, please write the changelog entry and use Upcoming release
as the version number.
One a new version of an application (Middleware, Gateway, SelfService, RA) is released tarballs of the application are build using the stepup-build.sh
script. The script and a Vagrant file for creating a build machine are located in Stepup-Build. The build tarballs are uploaded to github using the github-upload-release.sh
script. The prebuild tarballs are deployed using the scripts\stepup-deploy.sh
script in Stepup-Deploy.