CI Pipelines

This is Devora’s continuous integration automation specification. Devora uses ZORALab’s Fennec Project to execute its GitLab CI automation. Hence, most of the deployment complies to Devora specifications.


Release Strategy

Progressive Release Strategy

The update is rolling out progressively. That being said, we will not branch and backport updates based on tags.

Each future tags without major number 0.X.X should not break the previous one. Even if it does, it should have a backward compatible implementation or a procedure such as deprecation approach to upgrade gracefully.


Tags

Devora tag system follows semantic versioning with starting letter v. The pattern is:

v[major].[minor].[patch]

Where:

  1. major number indicates backward incompatible changes, possibly breaking things.
  2. minor number indicates backward compatible changes, an update to the previous version.
  3. patch number indicates small changes like bug fixes, security releases or documentation updates.
  4. The major number 0.X.X indicates project is still under development, hence, any crazy things may happen in between.

This full tag name only happens on master branch. Example:

v0.1.0
v1.0.0

Tags with tailing + is reserved for packaging releases. Example:

v1.0.0+debian

Tag with tailing - is reserved for package testing releases (e.g. release candidates). This only happens on staging branch. Example:

v1.0.0-rc1


Branch Management

Devora has to use the 3 branches manangement mainly because of the multiple deployment across different repositories and also, allows designers and developers to have a slightly more freedom to perform their development without worrying that they damage the main product line. Devora follows theese 3 main branching system.

Master

This branch is known as the main product line. It is protected and recognized as the final product with tagging version starting with v.

ONLY staging branch is allowed to merge into master branch and there SHOULD NOT have any development onto this branch.

Staging

This branch is known as the next product release. It holds all the commit patches for the next releases and is currently under final product testing. It should carries the same commit timeline as master branch and holding the future commits to be merged into it.

ONLY maintainers are allowed to commit and cherry-pick commit patches into this branch.

Next

This branch is known as the edge. It contains all the latest and greatest development. Any contributors can contribute here.

As for the website publishing, it is tracked under this branch for documentation flexibility without triggering a minor release.