Skip to main content

Versioning

Meerkat DSA roughly uses Semantic Versioning, but it is not entirely clear what constitutes a "breaking change" for something other than a pure API. What about changes to environment variable names, or log messages? In the face of this ambiguity, Meerkat DSA takes a somewhat liberal approach to versioning, in part to avoid scaring off new users with repeated major version increments.

What is the current version?​

There are multiple files throughout this repository that indicate version numbers. These all need to be updated with a version change, but may not happen at the same time. As such, the git tag shall be considered authoritative for identifying a version. Just because the package.json in apps/meerkat says 2.5.0 does not mean that you are looking at version 2.5.0. It could be a few commits after the real version 2.5.0. The exact commit identified by a v#.#.# tag shall be the version, and all other commits on the master branch shall be considered "non-version," "inter-version," or "non-release" commits, however you might choose to phrase that.

Incrementing the Version​

Unfortunately, there is no sure fire way to bump the version currently. I just search for all files containing the current version and increment those. Currently, the files I change are:

  • ./.github/workflows/meerkat.yml
  • ./apps/meerkat-docs/docs/changelog-meerkat.md
  • ./apps/meerkat-docs/docs/conformance.md
  • ./k8s/charts/meerkat-dsa/Chart.yaml
  • ./pkg/control
  • ./pkg/docker-compose.yaml
  • ./pkg/meerkat-dsa.rb
  • ./snap/snapcraft.yaml