-
Notifications
You must be signed in to change notification settings - Fork 0
Semantic Versioning
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.
A semantic version number has 3 parts:
- 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.
- 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.
- 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.
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.
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.