Skip to content

Releasing

Matthias Scholz edited this page Feb 13, 2021 · 5 revisions

Releasing

This pages describes the release strategy for this repository. The creation of release is automated and described the repository _docs/release.md.

Versioning

Semantic versioning is used.

  1. Major: Backward incompatible changes.
  2. Minor: Backward compatible additions or changes.
  3. Patch: Backward compatible fixes.

Naming Scheme

Tag:

  • v<Major>.<Minor>.<Patch>

Branch:

  • releases/<tag>

Structure

Release are created using two mechanisms of git:

  1. Release branch
  2. Tags

Releases branches are used because some CI/CD systems do not support tags as an input repository configuration.

Tags are used because this is the general way of releasing fixed repository states.

Release Notes

The release notes are put in a template as part of the repository to ease the use: _docs/changelogs/CHANGELOG.template.md.

A general template shall be used:

  1. Overview
    1. Summary of the release
    2. Included Versions of terraform, nomad, consul, fabio
    3. Release Branch
  2. Conclusion
  3. DISCLAIMER

Each release shall contain release notes lining out the nature of this release, for example motivating and description of outstanding changes. It should become clear what to expect from this release.

Furthermore a reference to the release branch has to be added.

How to create releases?

In general release are created via the build in Github functionality. Furthermore,

  1. Create the release and the tag using the Github build-in functionality via "Draft a new release".
  2. Chose appropriate version as mentioned in the previous section of this page.
  3. Fill out release notes as mentioned in the previous section of this page.
  4. Create the release branch.
  5. Update the release page with the release branch reference.
Clone this wiki locally