Instructions for releasing CHT tools

CHT Core

A release is a set of code changes bundled together, ideally with at least one deployment of CHT apps ready to make use of it.

Building & Releasing CHT Core Changes

The high-level steps for a release are as follows:

Release Manager

The overall coordination and operation of the release process are the responsibility of the release manager.

The release manager must perform several tasks for a new release, such as coordinating with team members and following all the steps in the release issue process, some of them being manual. The release manager must have adequate permissions to the repositories where the release is made.

Major/Minor/Patch Release

Given a version number MAJOR.MINOR.PATCH, increment the:

  • MAJOR version when the release adds incompatible changes, e.g. when the apps built on top of the CHT require manual intervention to work as expected.
  • MINOR version when the release adds functionality in a backward-compatible manner.
  • PATCH version when the release adds backward-compatible bug fixes.

MAJOR releases represent the biggest scale of code change and their roll out effort is high, as they likely require time and effort to set up or configure. As a consequence, they are the least frequent of the three release types.

CHT Conf

Follow the instructions in the readme.

Android apps

Follow the instructions in the Android > Releasing section.

Feature Releases

Feature Releases for the CHT Core Framework

Publishing Docker Images

Using GitHub Actions to publish Docker images