-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
REQUIRE version specification syntax is a common source of confusion #7763
Comments
I think for me the reason for confusion (cc #7757) was that the documentation doesn't make it very clear. Quoting from http://julia.readthedocs.org/en/latest/manual/packages/#requirements
I thought that 0.3-rc1 is >= 0.3.0 although upon reflection I realised I was wrong. The only reference to
It takes quite some effort to infer from this what Improving the docs can be a first step here, although I'd have liked explicit intervals like |
I guess this may not be entirely obvious, after all. Please feel free to add some verbiage to clarify it. |
@tkelman I think you may want to tackle this one for your own sanity |
The current format is beyond fixing. Explaining it more won't suddenly fix the broken intuition people have about it. Should eventually be replaced with a more verbose specification, a la #11955 |
I agree, closing this issue in favor of #11955. |
in #7757 @IainNZ brought up that the REQUIRE syntax is a source of confusion for a pretty large number of people, so I figured it might be worth an issue to brainstorm.
see https://pythonhosted.org/setuptools/pkg_resources.html#requirement-objects for how setuptools in python parses package requirements.
https://pythonhosted.org/setuptools/pkg_resources.html#parsing-utilities describes how version numbers comparison works (e.g. trailing
.0
s are dropped, so2.4
is equivalent to2.4.0
)Certainly complicates the parser, but at least there's a formal spec given.
In the interest of having an example in the thread:
This would describe that FooProject had to be
1.2.0
or greater, PickyThing could be anything from1.6.0
(inclusive) to2.0.0
(non inclusive), except for1.9.6
.2.4.0
is OK too. SomethingWhoseVersionIDontCareAbout can be any version.In general I wouldn't expect most packages to need this much specificity, and the currently common
would become
(though this wouldn't catch 0.3-rc1 if we're following the same parsing rules as python)
The text was updated successfully, but these errors were encountered: