Add SameMajorVersionWithPreleases compat option to ecm_setup_version.

Review Request #121719 - Created Dec. 28, 2014 and updated

Information
Alex Merry
extra-cmake-modules
master
e215c0b...
Reviewers
extracmakemodules
dfaure

Add SameMajorVersionWithPreleases compat option to ecm_setup_version.

SameMajorVersionWithPreleases is intended implement the versioning
scheme followed by many KDE projects: minor releases after some high
number (eg: 90) are considered to be pre-releases of the next major
version, and are not compatible with the current major version. This
allows alpha and beta releases to be ordered correctly by
version-number-aware software like package managers (an alpha of version
2 should have a higher number than any release of version 1, but less
than version 2.0).

So a request for version 2.1.0 of a piece of software should not be
satisfied by 2.93.4, because that is actually a pre-release of version 3.
On the other hand, a request for version 2.91.0 should be satisfied
by version 3.1.0.

Note that prereleases are not considered unless explicitly requested, so
2.93.4 will not satisfy requests for version 3 (or version 2) of a piece
of software.

Unit tests pass.

David Faure
Alex Merry
Review request changed

Change Summary:

Make description refer to KDE projects in general, rather than KDE Frameworks.

Description:

  +

Add SameMajorVersionWithPreleases compat option to ecm_setup_version.

  +
   

SameMajorVersionWithPreleases is intended implement the versioning

~   scheme followed by KDE Frameworks: minor releases after some high number
~   (eg: 90) are considered to be pre-releases of the next major version,
~   and are not compatible with the current major version.

  ~ scheme followed by many KDE projects: minor releases after some high
  ~ number (eg: 90) are considered to be pre-releases of the next major
  ~ version, and are not compatible with the current major version. This
  + allows alpha and beta releases to be ordered correctly by
  + version-number-aware software like package managers (an alpha of version
  + 2 should have a higher number than any release of version 1, but less
  + than version 2.0).

   
   

So a request for version 2.1.0 of a piece of software should not be

~   satisfied by 2.93.4, because that is actually a pre-release of version
~   3. On the other hand, a request for version 2.91.0 should be satisfied
  ~ satisfied by 2.93.4, because that is actually a pre-release of version 3.
  ~ On the other hand, a request for version 2.91.0 should be satisfied
    by version 3.1.0.

   
   

Note that prereleases are not considered unless explicitly requested, so

    2.93.4 will not satisfy requests for version 3 (or version 2) of a piece
    of software.

Loading...