Software versions - cma-open/cmatools GitHub Wiki

To ensure clarity of system use and allow users to adapt their systems to use updated releases, versioning should follow Semantic Versioning.

From semver.org

Given a version number MAJOR.MINOR.PATCH

increment the:

  • MAJOR version when you make incompatible API changes,

  • MINOR version when you add functionality in a backwards compatible manner, and

  • PATCH version when you make backwards compatible bug fixes.

  • Additional labels for pre-release and build metadata are available as extensions to the MAJOR.MINOR.PATCH format.

    The pre-release-cycle codes indicate testing status and stability before the software and data are fully released

    • alpha indicates still in development, requires further testing, features are still in development and may change
    • beta indicates development is considered done, but there remains some risk of issues or bugs, code and data are ready for collaboration or user testing. There remains time and resources to respond to fix any bugs
    • release-candidate (rc) indicates the main features have been designed, coded and fully tested, the team intends that no new source code will be added to this release, but time and resources still exist to respond to user testing or feedback

The build metadata extensions can also be used to indicate builds (and dataset runs) from Dev / Test branches.


Examples:

  • geospatial.0.0.1-dev

    • Development code
    • Dev extension indicates the system is being built and run from Dev or Feature branches
  • geospatial.0.0.1-test

    • Development code
    • Test extension indicates the system is being built and run from Dev or Feature branches
    • e.g. allowing testing against longer analysis runs, larger input data etc.
  • geospatial.0.0.1-alpha

    • Development code - first testing release
    • Expected to be built and run on a test environment with data inputs similar or identical to a production run
  • geospatial.0.0.2-beta

    • Development code - further user acceptance testing, e.g. with range of project partners
    • Expected to be built and run on a test environment with data inputs similar or identical to a production run
  • geospatial.0.3.2-rc

    • Near stable code
    • Expected to be built and run on a release environment with data inputs identical to a production run
  • geospatial.1.0.0

    • Stable production code (full software relase)
    • Expected to be built and run on a production environment with full data inputs, correct output locations