On 17 Nov 2021, at 12:36, Eric Timmons wrote:
On 11/17/21 12:24 PM, Didier Verna wrote:
Stelian Ionescu wrote:
Mostly sounds good to me. Assuming you're still interested in more
expressive version numbers and constraints for 3.4, I'll work on moving
that off the back burner.Adding fine-grained version constraints would be a big mistake.
I do not have the time to check this thoroughly right now, but I
recall having suggested that ASDF shouldn't impose any constraints on
version "numbers", but rather defer version comparison to libraries
when they use a version numbering scheme that ASDF doesn't understand.
This can be done by providing generic functions like version-> etc.,
and letting people provide methods on them. >
There may even be an issue and a patch lurking around somewhere.
Again, sorry for being fuzzy, this is just from the top of my head.
Hi Didier,
I started from your patch on this, with the intention of allowing arbitrary version strings (so long as the protocol is fully implemented).
I'd like to also extend ASDF's default to be more than just dot-separated numbers. The leading contenders at the moment are "semver style" where prerelease info is separated by a #\-, "build" metadata separated by a #\+, and no post-release info (NOTE: I am just talking about version string grammar here, *not* about compatibility constraints!) and something like PEP 440 <https://www.python.org/dev/peps/pep-0440/>, which as I recall is very similar to the style you prefer.
I have a preference toward the semver style because it's less restrictive and there's no notion of "canonical form" (unlike PEP 440), so it's easier to implement.
-Eric
I favor something like this because it would be nice to have prerelease versions of ASDF that perform version checks properly.
What I mean is, if we are going to add a feature in version 3.4, right now that would be in a prerelease version with a version number of something like 3.3.5.22
It would be a lot better for realistic testing if we could instead use 3.4.0-alpha1 or 3.4.0-1 and have ASDF know that 3.4.0-1 comes before 3.4.0, not after.