Introduction

  1. Branch release is a frozen code, as well as a set of containers, build from that code available to download publicly by recognizable tag.
  2. Branch release needs to be tested with automatic and manual tests and fulfill community standards for release.

Process

  • With every release, Tungsten Fabric delivers one of 2 versions of the product: a stable version with bug fixes or a version with new features.
  • The stable version is based on a version released once a year and is used as a Long Term Support (LTS). It is supposed to be released without any breaking changes and receives only critical bug fixes every quarter with the new release.
  • Release version with new features is a branch cut from the master branch which is continuously developed and stable all the time (tested at least with automatic tests provided in CI/CD system).
  • The naming convention for releases is based on the year and month of the release.
    Naming convention: RXXYY where
    • XX points to the year of the release
    • YY points to the month of the release
    • For example, when release takes place in November of 2020 the release name will be R2011
  • LTS release will receive the additional number to the tag that will point out that this is a release with additional bug fixes following the convention RXXYY.Z where Z is the number of bugfix release incrementing by 1
  • Releases may be held independently (the best would be to release at the same time both LTS and master branch cut version, but it may be flexible depending on the situation).
  • The best would be to release every half a year and release new LTS version every year (Less frequent releases may cause problems with support of multiple ageing dependencies versions).

Example release branch process (NOT ACTUAL PLAN OF RELEASES)

  • No labels