# Release policies

We believe you can only ship a good product through consistency. Thus, we made automation first one of the core principles of dot.base. This means things done repeatedly should probably be automated.

First and foremost this applies to builds and releases. Therefore we have built automated build and release pipelines. This saves time for developers because they don't have to worry about creating releases from source code every few days. (It keeps them sane too because releases are created the same way every time and are less prone to errors 😋.)

# Automated Build and Release Pipeline

Automated build and release pipelines are connected to every repository in the dot.base GitHub organization (opens new window). These pipelines create docker images directly from commits and tags on the repositories. To avoid overwhelming collaborators with different tools, we use GitHub packages (opens new window) to store the docker images and GitHub actions (opens new window) as an automation engine. This keeps all information about code, builds, and releases in one place: GitHub (opens new window).

If that explanation was a little short for your taste, don't worry here is an example: Open up GitHub and have a look at the ICD 10 API repository (opens new window). It contains a .github/workflows directory which defines all GitHub actions for this repository. The docker-publish.yml action inside this directory describes the build process as well as its triggers. This file defines the three different release types that are defined on every dot.base repository as well as their build process.

# Release types

Each dot.base repository includes three different release types: vX.X.X, latest and next. vX.X.X and latest releases are meant for production usage while the next releases target testing and development.

latest and next releases are built directly from the master and dev branches of a repository. vX.X.X (e.g. v1.3.2) releases are versioned releases following the Semantic Versioning 2.0.0 (opens new window) guidelines. They are built from eponymous git tags which are created using a GitHub release (opens new window).

# Current Releases

Please see our GitHub packages page (opens new window) for the current releases of all docker images.

# Changelogs

Changelogs for each versioned release can be found on the corresponding GitHub releases page of the repository (e.g. ICD 10 API (opens new window)).