mauroc / squiddio_pi

squiddio_pi
3 stars 13 forks source link

Version mess: tweak vs release #102

Closed leamas closed 4 years ago

leamas commented 4 years ago

The top CMakeLists.txt contains two conflicting version definitions: major.major.patch.tweak and major.minor.patch.release. Clearly, one of these must go.

Personally, I'd got for major.minor.patch.release. This is because the intended use of the fourth digit is in downstream packaging. In this scenario, release is the normally used term.

OTOH, whatever. Just we have a decision.

rgleason commented 4 years ago

Alec, you wizard. Its perfectly ok with me.

jongough commented 4 years ago

The use of 'TWEAK' comes from cmake. To my way of thinking 'release' is probably more in line with 'major' or 'major.minor', but certainly not further down the numbering. The issue is semantic, and possibly language dependant. I normally expect a Major Release, a Minor Release and a Fix (patch). I would not normally go down to a tweak, but someone wanted another level and cmake provided one.

leamas commented 4 years ago

I and @rgleason had a quite long discussion. His problem is that he from time to time takes the upstream squiddio (here at github/mauroc) and forks it to make release bugfixes when it for various reasons isn't possible to release it from github/mauroc.

This is a classical downstream packaging scenario. Normally the packager adds a -release suffix to the upstream version for example -1. This assures that when a new upstream version is available, it will sort correctly when compared the the downstream version-release (e. g., 1.6.5 vs 1.6.4-1).

Now, we cannot use the -release suffix, it's used by semantic versioning for other purposes. This effectively leaves us with using the fourth digit as the release number. This is true be it called tweak or release. But, given the context, release seems more appropriate to me.

EDIT s/upstream release/upstream version/

jongough commented 4 years ago

I am just concerned about mixing names. CMAKE_VERSION has individual component variables:

If we now interchange TWEAK with release we are adding confusion. If you want to change the name then do it in 'version.h.in' and then use the name in the programs for display on properties panels (if we don't display the numbering we are using there is a disconnect with internal and external numbering). If cmake had used 'CMAKE_RELEASE_VERSION' it would have matched what you are suggesting.

leamas commented 4 years ago

Whatever, I basically don't care enough to discuss it. Let's go with TWEAK.

rgleason commented 4 years ago

Thanks Alec for explaining it, and Jon for finding cmake tweak, which will be fine.