-
Notifications
You must be signed in to change notification settings - Fork 8
Release Procedure
The mechanics of a release are the following:
-
[Optional] Check if there are download manager tools updates in the development branch that can be moved into the release branch. The point here is that you can test the new tools while testing as part of this release. Follow the steps in Activating the release
-
As part of a full release, move any open issues to the next milestone (create the next milestone, if it does not yet exist). Then close the milestone associated with the release.
-
[Optional] Remove stale or inactive branches from origin.
-
Merge and Push the development branch into the master branch, check if Github action succeeded.
git checkout development
git pull
git checkout master
git pull
git merge development
git push
-
Test the artifacts from the Github actions by downloading each artifact and run/test them in your local machine.
-
run
gulp prep-release
from themaster
branch-
this will: bump the version number and change the release suffix; push to GitHub.
-
By default, an RC is created. Use
--rel
option to create a release instead. -
By default, a patch bump is made. Use
--vt minor|major
to create minor or major version bumps. -
Examples:
- The next command bumps vX.Y.Z into vX.Y.Z-rc (vX.Y.Z-dev into vX.Y.Z-rc)
gulp prep-release
- The next command bumps v4.0.1-rc into v4.0.1
gulp prep-release --rel
- The next command bumps v4.0.1 into v4.1.0
gulp prep-release --rel --vt minor
- The next command bumps v4.0.1 into v5.0.0
gulp prep-release --rel --vt major
-
-
[Skip in case of release candidate!] Bump the version again and change the suffix back to dev; push again.
gulp prep-new-dev
-
Merge the master branch into the development branch.
-
Download the artifacts from the Github actions, prepare zips, and upload to the release page on the GitHub release page. Be sure to type some release notes (see below).
- The GitHub release page is used to host releases. Creating the release page involves typing the release notes and uploading the binaries. For consistency, please use the Release Page Template for any new release notes. Release notes should draw attention to new features and provide minimal detail about how they are used.
-
You are done, notify the stakeholders.
We use semantic versioning: X.Y.Z
-
X
: Major versions. Compatibility-breaking changes -
Y
: Minor versions. New functionality; maintains compatibility -
Z
: Patch versions. Bug fixes; maintains compatibility
Labels are used to distinguish between stable releases and unstable development builds:
-
-dev
for development versions. Users should avoid these -
-rc
for release candidates. Only 1 built per version - Null suffix for releases. Only 1 built per version
The version is set in a few json config files (but use the prep-release
gulp task to take care of this). And, of course, the GitHub release page.
The command to build standalone packages is gulp package
. It comes in 4 flavours:
-
gulp package-win32
builds Windows binaries (32 and 64 bit) -
gulp package-darwin
builds MacOS binaries (64 bit only) -
gulp package-linux
builds Linux binaries (64 bit only) -
gulp package-all
builds binaries for all 3 platforms.
The Jenkins build server automatically builds packages for the master branch, so you can always grab the latest binaries from: https://build.overture.au.dk/jenkins/job/into-cps-ui/. For releases, it is mandatory to use Jenkins-built packages.