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

Documentation for registry Compat.toml version conventions? #1190

Open
GordStephen opened this issue May 15, 2019 · 3 comments
Open

Documentation for registry Compat.toml version conventions? #1190

GordStephen opened this issue May 15, 2019 · 3 comments
Assignees

Comments

@GordStephen
Copy link

Does any documentation exist describing how versions should be specified in Compat.toml files in a registry? My initial assumption was that it would be the same rules as documented for package-level compat specifications, but that doesn't seem to be the case.

Are the options just exact.version.number or min.version.number-max.version.number? I see a lot of x.y.z-0 in General, is that a way to indicate that the highest supported version is unbounded (or maybe follows semver, like caret in package-level specifications)?

@StefanKarpinski
Copy link
Member

You're right, this should be documented. I will write up some docs at some point soon.

@timholy
Copy link
Member

timholy commented Sep 1, 2019

Would be nice to have this. There's a weird registry compatibility problem with Atom right now (https://discourse.julialang.org/t/juno-support-for-julia-1-2-0-not-ready-yet/27804) that also hitting me. (Seems like it should happen to anyone with JuliaInterpreter 0.7.0, see JunoLab/Atom.jl#162). I was trying to fix it, but I've not dug into the internals enough to know the difference between "0.8.6-0", "0.7.0-*", or even the meaning of "0.6-0.7". Stuff like inclusive/exclusive bounds etc would be great to know. I can help write this if someone explains here.

@fredrikekre
Copy link
Member

fredrikekre commented Sep 1, 2019

In short:

"0.8.6-0" # [0.8.6 - 1.0.0)
"0.7.0-*" # [0.7.0 - ∞)
"0.6-0.7" # [0.6.0 - 0.8.0)

You can use VersionRangeVersionSpec to investigate, for example:

julia> import Pkg.Types: VersionSpec

julia> v"0.8.5"  VersionSpec("0.8.6-0")
false

julia> v"0.8.6"  VersionSpec("0.8.6-0")
true

julia> v"0.9"  VersionSpec("0.8.6-0")
true

julia> v"1"  VersionSpec("0.8.6-0")
false
julia> import Pkg.Types: VersionSpec

julia> v"0.8.5"  VersionSpec("0.8.6-*")
false

julia> v"0.8.6"  VersionSpec("0.8.6-*")
true

julia> v"1"  VersionSpec("0.8.6-*")
true

julia> v"1000"  VersionSpec("0.8.6-*")
true
julia> import Pkg.Types: VersionSpec

julia> v"0.6.0"  VersionSpec("0.6-0.7")
true

julia> v"0.7.0"  VersionSpec("0.6-0.7")
true

julia> v"0.8"  VersionSpec("0.6-0.7")
false

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

No branches or pull requests

4 participants