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