Ben Finney <[email protected]> writes:

> Note that the specification I propose allows any alphanumeric
> character [0-9A-Za-z], so you could also make the version string
> ‘8.2.0.r27002’ if you want the “revision number” component to be
> visibly different while still having an obvious sequencing semantic.

Ben Finney <[email protected]> writes:

> My understanding is the above version strings should be compared by the
> following rules:
> 
>   * A version string is interpreted as a tuple of components. Each
>     component is a sequence of characters from the set [0-9A-Za-z]. Each
>     component is separated from others by a single full-stop (‘.’)
>     character.
[…]
> 
>     * Contiguous sequences of digits are interpreted as integers and
>       compared numerically; other characters compare as per the ASCII
>       character set sequence.

I realise now that this has an unintended effect: that version strings
which have letters in differing case will compare ASCIIbetically, which
may be non-obvious:

    1.2.C1
    1.2.D1
    1.2.REV876
    1.2.a1
    1.2.b1
    1.2.rev543

I hereby simplify the above specification and its semantics, by
declaring upper-case letters outside the scope of a version string. A
component can have characters from the set [0-9a-z], removing the above
cases of non-obvious comparison.

    1.2.a1
    1.2.b1
    1.2.c1
    1.2.d1
    1.2.rev543
    1.2.rev876

-- 
 \      “The process by which banks create money is so simple that the |
  `\     mind is repelled.” —John Kenneth Galbraith, _Money: Whence It |
_o__)                                       Came, Where It Went_, 1975 |
Ben Finney

_______________________________________________
Distutils-SIG maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to