Versioning

The SlideWiki project follows the Semantic Versioning scheme as describe by the Semantic Versioning specification at (1).

A version number consists of three positive integer numbers, separated by a dot:

MAJOR.MINOR.PATCH

Citing (1):

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards-compatible manner, and
  3. 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.

Application to SlideWiki

  • The rule for major version changes (1.) is also applied especially when the database model changes in a way that the new version of a service cannot be deployed with an existing database (→ a pull of the updated image renders a deployment inoperable)
  • Backwards-compatible is defined as: The new version can be deployed by simply (as in automatic) updating the respective Docker images. No further steps are required and correct operation of any production deployment is ensured.
  • A major version change may require an operator of a production deployment to take additional steps such as using new/updated deployment scripts or running database migration scripts to pull content from the old database into that of the new deployment.
  • The SlideWiki project in general guarantees that content hosted in a system of version X can be migrated to a deployment of major version X+1

Questions:

  • How do we handle version dependencies?
    • platform → microservices
    • microservice X → microservice Y





(1) http://semver.org/