@StefanKarpinski I hope you don’t take my comments as complaint. I think it is a great step forward that the new Pkg.jl is raising awareness of package compatibility in the community by making the semver-based constraint [1] the default behavior in [compat]
section.
My question is a rather technical one; i.e., if
is true for gen_project.jl
and the current state of General
. First of all, I’m supposing that I can replace the word “literally” in your sentence with “semantics-preserving” or “faithful.” I don’t see it how it connects with the next sentence if not.
Isn’t this what is happening here? And isn’t it because Package = "x.y.z"
is not semantically equivalent to Package x.y.z
? Why it is done this way even though [compat]
can represent it as Package = ">= x.y.z"
? Or maybe my assumption is wrong because the dependency resolver is changed?
But you also said
So maybe it’s rather a “social” or “pedagogical” issue rather than a technical one? That is to say, the decision was made to give a narrower range of compatibility so that package authors are forced to think about the compatibility issue seriously?
[1] Side note: I’m not sure talking about compatibility in sub-1.0 software is strictly semver compliant. At lease I think the use of Package = ">= 0.y"
does not have to be so frowned upon if your package is sub-1.0 as well.