[Libwebsockets] trivial suggestion for LWS_LIBRARY_VERSION_PATCH and READMEs/release-checklist

Andy Green andy at warmcat.com
Sat Oct 13 01:24:12 CEST 2018



On 13/10/18 02:12, Per Bothner wrote:
> Can I suggest changing READMEs/release-checklist from:
> 
>      Bump the PATCH part of the version to 99
> 
>      -set(CPACK_PACKAGE_VERSION_PATCH "0")
>      +set(CPACK_PACKAGE_VERSION_PATCH "99")
> 
> to:
> 
>      Bump the PATCH part of the version to 1
> 
>     -set(CPACK_PACKAGE_VERSION_PATCH "0")
>      +set(CPACK_PACKAGE_VERSION_PATCH "1")
> 
> This allows future incremental bumps of CPACK_PACKAGE_VERSION_PATCH.
> 
> Of course technically there is nothing wrong with 
> LWS_LIBRARY_VERSION_PATCH >= 100,
> but it seems awkward as long as patch numbers 1 to 98 are unused.  It seems
> to imply patch numbers are frequently bumped, which is not the case.

The situation is when there's a release like "3.0", a branch v3.0-stable 
is created from that.  The v3.0.x tag space is owned then by 
v3.0-stable, and the first tag created there for v3.0.0 or the "first 
release of v3.0".

master ----- (v3.0.99 during dev)
        -> v3.0-stable
        -> v3.0.0

After more backported fixes from master pile up on v3.0-stable, a new 
point release v3.0.1 takes place

master ----- (v3.0.99 during dev)
        -> v3.0-stable ->
        -> v3.0.0      -> v3.0.1

There is pressure to do that because a) few people help me test the .0.0 
release, and b) users tend to try to use the last versioned tag, since 
they fantasize others took care of exhaustively testing it so everything 
just works for them without their having to contribute anything.  So 
github fills up with people banging their shins over and over on 
whatever was wrong with the .0.0 release, since they don't get it that 
v3.0-stable (and master) already has had the fixes for weeks or months. 
Only when there's a later point release do these guys receive the fixes.

.99 is chosen for master because there'll never be 99 point versions of 
anything legitimately, but there may be 10 so we're into two digits.

When master becomes the next release, then:

master ----- (v3.0.99 during dev)  ->  ----- (v3.1.99 during dev)
        -> v3.0-stable ->           -> v3.1-stable
        -> v3.0.0      -> v3.0.1    -> v3.1.0

This setup has the advantage just comparing the version numbers is 
enough to understand the relative modernity of the tree correctly. 
master from the pre v3.1 era has a version number greater than any v3.0 
point release but less than any v3.1 point release.

-Andy


More information about the Libwebsockets mailing list