How to choose a versioning mechanism?

We are developing a cross platform CLI tool (in GO) and a docker image which should work together. You are welcome to check the project on Github. Currently we are using semver, but abusing it and I will explain.

We have develop and main branches. On each push to develop CI increments the "patch" number of semver and publish a new "Pre-release" version for both CLI and docker, both will have the same version (e.g 0.1.1, 0.1.2, 0.1.3, etc..). On each push to main CI increments the "minor" number of the semver and publishes a new "Stable" version for both CLI and docker (e.g 0.2.0, 0.3.0, 0.4.0, etc..). As you can probably guess there are several problems with this method, for instance if we need to deploy a "hotfix"/”patch” we will push the fix to main and the minor version will be increased (for instance making 0.2.0 less advanced than 0.1.22).

So the requirements are, having two components CLI and docker which need to work together, having both "stable" and "unstable" releases.

Would like to get your opinion, or a good article which can help us choose which versioning mechanism and how we should implement it.

submitted by /u/Massive-Librarian-98
[link] [comments]

from Software Development – methodologies, techniques, and tools. Covering Agile, RUP, Waterfall + more! https://ift.tt/3tXh67g

Leave a comment

Design a site like this with WordPress.com
Get started
search previous next tag category expand menu location phone mail time cart zoom edit close