Problem: it doesn't
A version number is:
join $listOfNonNegativeIntegers .
Want to add recognition of things like 8.4b1
Concept: allow values -1 and -2 in the list.
Wherever the result has .-1. replace with b
Wherever the result has .-2. replace with a
Implies: a or b can't be next to a .
a or b can't be first or last char in version number
Things like 1.2a5b3.7 are OK (if weird)
Specification:
[package vcompare] extended obvious way (-2 < -1 < 0).
[package vsatisfies] -- need to specify sensible rules (for itself and to be used by [package require])
[package vsatisfies 1.1 1.0] => 1
[package vsatisfies 1.1a0 1.0] => 1
[package vsatisfies 1.1b0 1.0] => 1
Note: implies responsibility for controlling package availability placed on package installer! (Provide alpha/beta releases to developers, but hide from end-users, for example -- special TCLLIBPATH, etc.)
[package vsatisfies 1.1a1 1.1a0] => ???
[package vsatisfies 1.1b0 1.1a0] => ???
[package vsatisfies 1.1 1.1a0] => ???
[package vsatisfies 1.1b1 1.1b0] => ???
[package vsatisfies 1.1 1.1b0] => ???
Also consider new cases when package BoF: PACKAGE REQUIRE support for RANGES of acceptable versions is present.
Also consider new cases when package BoF: PACKAGE REQUIRE support for RANGES of acceptable versions is present.
[package vsatisfies $version $range ?$range ...?]