Open dougnukem opened 5 years ago
So we keep the major.minor.patch
versioning for Docker?
You also could do a 'just-in-time' release branch model where the tag is done on master and only when you need to specifically hotfix do you create the release branch:
Does GitHub support overwriting tags? So the Docker versioning could apply to GH aswell. You could specify only e.g. v2
in your main.workflow
and get all the latest minors and patches too.
This maybe relates to this issue aswell: Can we add some script to automatically update the README.md
when a new release happens? Something like: replace all vx.x.x
with the latest version.
Yes you can overwrite the git tags to match that versioning scheme, but I think the best process is to treat tags as immutable, and just re-tag the same ones as vX.Y.Z
v1.0.0
v1.1.0
v1.1.1
I think it'd could make sense to use the docker versioning scheme and force tags for minor/patch updates:
v2
v2.1
Also i think while it's in master
the process should be that things are tagged/re-tagged as:
v1.2.0-develop
- indicating the "next" version that will be released
We can add that to the Makefile
process and update Readme and Dockerfile accordingly.
This is a minor nitpick but with semantic versioning in an SCM like git the standard advice says to name it
v${major}.${minor}.${patch}
Ideally we could name the github releases and tag are:
v1.1.0
v1.1.1
In terms of release branches I think its fine to call it something like:
releases/v1.1
v1.1.0
andv1.1.1
are tagged from this release branch (and hotfixes can be cherry-picked on to this release branch)You also could do a 'just-in-time' release branch model where the tag is done on
master
and only when you need to specifically hotfix do you create the release branch:For docker image tags I think the convention for semver is to have the following combinations of tags:
I think the ideal situation is users depend on a specific major version e.g.
cedrickrin/golang-action:2
and get the benefit of passively upgrading for bug/security fixes in any minor/patch versions while depending on the major version not having any backwards incompatible changes.