Skip to content

Semantic Versioning

bramboomen edited this page Jan 30, 2024 · 1 revision

This repository uses semantic version numbering to track changes to its functions and programs. The purpose of these version numbers is to have a quick overview of breaking and non-breaking changes to the CWTS-ETL-tooling sub-module when updating a CWTS data pipeline.

Semantic versioning: v(Major.Minor.Patch)

A semantic version number has 3 parts:

Major

  • Incrementing the major version number signifies a breaking change.
  • A pipeline using a function that has a new major version will need adjustments before it will run correctly.
  • Breaking changes include changes to function calls or changes to the output of a function.

Minor

  • Incrementing the minor version number signifies a non-breaking change.
  • A pipeline using a function that has a new minor version will not need adjustments to run correctly.
  • Non-breaking changes include changes to functionality without changes to function calls or changes to the output of a function.
  • An example of a non-breaking change is the addition of an optional parameter which defaults to the current functionality.

Patch

  • Incrementing the patch version number signifies a non-functional change.
  • Non-functional changes do not add or change functionality.
  • Examples of non-functional changes are changes to documentation, verbose output or notifications.

Releases

Function versions

Each ETL-tooling function has a version number, a table of all versions is tracked in the README of the repository.

  • A version number starting with v0.0.1 signifies that the function is in development
  • A version number starting with v0.1.0 signifies that the function has not been fully tested in a production environment.
  • A version number starting with v1.0.0 signifies that the function can be used in a production environment.

Changes to each function are also kept in the README. These should contain a summary of the changes to the function and instructions how to update the data-pipeline that uses this function.

Repository versions

The CWTS-ETL-tooling repository also has a version number. This version number is incremented with every release, typically in tandem with the release of a data-pipeline. The version number is incremented with the maximum level of changes of the functions in the repository. If at least one function has a major version change, the major version of the repository is also incremented, otherwise, if at least one function has a minor version change, the minor version of the repository is incremented, and so on. This makes it easy to see if a data-pipeline needs changes before updating its ETL-tooling sub-module.

Clone this wiki locally