Currently * is only allowed for = operator. I'd like to have it extended to all <, <=, > and >= operators for improved consistency.
In all cases, the base version against which comparison will be performed will include all matches for =*.
1. M(>=x*) = M(=x*) u M(>x),
2. M(<=x*) = M(=x*) u M(<x),
3. M(>x*) = M(>x) \ M(=x*),
4. M(>x*) = M(<x) \ M(=x*).
I think this makes sense since it splits the matching ranges alike regular operators, only that the it is done relatively to all versions matched by x* rather than a single version x.
Use cases mostly involve prerealease-safe variants of <, >= etc. -- i.e. not having <3.9 accidentally match 3.9_rc1.
This would imply 3.9.1 <= 3.9* <= 3.9_rc1, i.e. the <= operator would no longer be transitive. Not sure if this has any negative consequences in practice.
I'd rather we abolished * entirely. It's highly confusing...
(In reply to Ciaran McCreesh from comment #2)
> I'd rather we abolished * entirely. It's highly confusing...
I wouldn't mind that if we had a sane version syntax. However, with the highly confusing stacking of _pre, _rc and other weirdos it's hard to say >=3.9* without having to look into PMS every time to guess which suffix is the really-oldest-one.