|Summary:||[Future EAPI] Extend * version syntax to all arith operators|
|Product:||Gentoo Hosted Projects||Reporter:||Michał Górny <mgorny>|
|Package list:||Runtime testing required:||---|
|Bug Depends on:|
|Bug Blocks:||174380, 598525|
Description Michał Górny 2016-10-30 12:21:28 UTC
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 =*. In particular: 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.
Comment 1 Ulrich Müller 2016-10-30 13:38:07 UTC
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.
Comment 2 Ciaran McCreesh 2016-10-30 17:45:17 UTC
I'd rather we abolished * entirely. It's highly confusing...
Comment 3 Michał Górny 2016-10-30 18:30:06 UTC
(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.