The ContinuousDelivery mode on the main branch #4500
Replies: 1 comment 10 replies
-
Oh thank you very much. It is good to hear a positive feedback. I'm glad that you like it. :)
I think the motivation was to align with the semantic version specification. Like you mentioned to use the metadata section to count the commits would be wrong. In a continuous delivery scenario you want to have a semantic version number which is increasing automatically without tagging. This is also related to your other question related to the examples: The tagging of the commit has in this aspect no effect on the counting mechanism. The example should illustrate, that it doesn't matter if you tag it or not, the next semantic version number will be the same result. That's the use case of using
Yes, that is also something I have noticed and in my opinion it is a deficit in the design of the semantic version specification. However, because we cannot change it I would suggest either to specify the label to zeta (or better zzz ;)) on main or use the continuous deployment mode (@asbjornu should we change it in the workflow template?). On the GitFlow Examples following is written:
Last but not least I want to point out that on the github flow and git flow workflow all versions are pre-release versions until you have released it to manufacturing (RTM) by creating a dedicated tag.
No that's correct. Please see explanation above.
At the point in time this sentence was true. Mean while the behavior has changed and the null means you are allowing all tags and labels to be recognized on the branch by gitversion (see ComparingTheBehaviorOfDifferentDeploymentModes.cs to get an idea). Every version is a pre-release version until you tag it explicit.
The null expression in JSON and YAML is treated differently (empty string would be
Happy Branching! |
Beta Was this translation helpful? Give feedback.
-
Hello! First of all, thanks for the tool that makes version management easier. We're using GitVersion since couple of years and are now in the process of trying to switch to GitVersion 6. We are following standard GitFlow and were using mostly default configuration.
We are trying to understand the motivation behind changing the
ContinuousDelivery
mode (which is the default for the GitFlow workflow) to contain pre-release labels instead of metadata. On one hand of course this is good, because these versions are now distinguishable using SemVer rules, when before they were not (because metadata is not taken into account when comparing versions). However GitFlow also includesdevelop
andrelease
branches which producealpha
andbeta
builds, and unfortunately:1.0.0-1 < 1.0.0-alpha.1 < 1.0.0-beta.1
. Meaning there might be versions coming from themain
branch floating around (at least internally), which will be "older/lower" than alpha and beta versions using the SemVer rules of comparison.The example in the mode description says:
was the tag in the example meant to be
1.1.0
, without the pre-release label?In general, our teams were fine with releasing builds with numerical metadata like
1.0.0+4
. At the moment we are thinking that it would be best for us to try and replicate the oldContinuousDelivery
version format, and we found this in theBREAKING_CHANGES.md
file:however we tried setting this:
but we still got the pre-release label in the generated version:
0.4.1-1+45
. Are we misunderstanding the entry in the breaking changes file? Thanks in advance!Beta Was this translation helpful? Give feedback.
All reactions