Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add back support for full VersionNumbers to the resolver #3963

Open
KristofferC opened this issue Jul 23, 2024 · 1 comment
Open

Add back support for full VersionNumbers to the resolver #3963

KristofferC opened this issue Jul 23, 2024 · 1 comment

Comments

@KristofferC
Copy link
Sponsor Member

We are getting quite a few requests for various functionalities that cannot really be implemented due to the resolver right now only supporting major.minor.patch versions. These are things like:

  • Pre-release support
  • Build meta-data

Ironically, the resolver used to have support for the full version number spec but this was removed due to the belief that it was not useful in Pkg3 (f5eff12).

@carlobaldassi, just checking, what level of effort do you think it is to put back the prerelease/build stuff to the resolver? If that support was added back I think I could do the rest of the surrounding scaffolding to add e.g. pre-release support.

@carlobaldassi
Copy link
Member

I just had a look at the diff in that commit you linked, in which the functionality was removed. In principle, it should be sufficient to simply revert that. (It may slow down the resolver a bit though, and eat up some extra memory, I'm not sure to what extent.) I believe there were also some tests, removed in some other commit.

The code used to support also versions of the form 1.2.3- and 1.2.3+ which are not valid semver but were used to specify ranges (and indeed are still accepted as VersionNumber objects in Julia). Also, since we need to rank all versions somehow, the code ignores the semver prescription that build meta-data should not be used in the ranking; instead, it applies the same logic as for prerelease specs (1.2.3+beta > 1.2.3+alpha > 1.2.3).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants