Verona spec:: $BUILD

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Fri Aug 21 13:22:39 UTC 2015


On 2015-08-21 06:34, Iris Clark wrote:
> Hi.
>
> For $BUILD, we needed to add '0' as a legitimate value to act as a sentinel.
>
> Because we consider builds to be version numbers for releases under development, we must alter the spec to consider $BUILD when comparing version strings, even though it violates the semver.org definition.  Thus, we needed to clearly specify how comparison will be handled for 0, non-zero, null values.
>
> The following spec changes should address both of these issues:
>
> 156c156
> <   - <a name="descBUILD"/> `$BUILD`, matching `([1-9][0-9]*)` --- The
> ---
>>    - <a name="descBUILD"/> `$BUILD`, matching `(0|[1-9][0-9]*)` --- The
> 160,161c160,163
> <     When comparing two version strings the value of `$BUILD`, if present,
> <     is always ignored.
> ---
>>      When comparing two version strings with equal `$VNUM` and `$PRE`
>>      components, a string without a `$BUILD` component is always less than
>>      one with a `$BUILD` component; otherwise, `$BUILD` numbers are
>>      compared numerically.
> Please let me know if there are any concerns.

Iris,

As I have privately written to you about before, I do have concerns 
about having a separation between a version string with a build number 
"0" and a version string without a build number.

The current implementation in verona/stage does not handle builds 
without a build number. Since build number is stored as an integer value 
in multiple places in native code, changing the implementation to allow 
for a distinction between "build 0" and "no build number" require 
substantial changes, for what I believe is little gain.

I recommend dropping "build 0" as a valid build number, and instead 
treating "build 0" as "having no build number".

/Magnus


More information about the verona-dev mailing list