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

version 20.2 doesn't like non numeric requirements #499

Closed
bb-migration opened this Issue Feb 19, 2016 · 11 comments

Comments

Projects
None yet
1 participant
@bb-migration

bb-migration commented Feb 19, 2016

Originally reported by: mathiasbc (Bitbucket: mathiasbc, GitHub: mathiasbc)


Latest version 20.2 fails when trying to install requirements in the form:
'mypackage==0.1.2.xy1'

$ python setup.py egg_info
error in mypackage setup command: 'install_requires' must be a string or list of strings containing valid project/version requirement specifiers; Invalid requirement, parse error at "'.xy1'"

I was able to confirm that setuptools 20.1 does not present this issue.


@bb-migration

This comment has been minimized.

bb-migration commented Feb 19, 2016

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


I think the issue is that the bump to Packaging 16 has made the version parsing more strict. According to the PEP 440, those local version specifies should be 0.1.2+xy1.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 19, 2016

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Add test capturing previously allowed usage. Ref #499.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 19, 2016

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


@stevenk_: Can you review this issue? Was this an intentional limitation? How difficult would it be to restore the prior expectation, captured by the above test?

@bb-migration

This comment has been minimized.

bb-migration commented Feb 21, 2016

Original comment by lukasgraf (Bitbucket: lukasgraf, GitHub: lukasgraf):


Has 20.2 since been pulled from PyPi, or am I imagining things?

@bb-migration

This comment has been minimized.

bb-migration commented Feb 21, 2016

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Yes, that's right. Until we can triage the issue and determine a plan forward, I want to avoid causing harm to existing deployments.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 21, 2016

Original comment by lukasgraf (Bitbucket: lukasgraf, GitHub: lukasgraf):


I see, thank you for clarifying.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 22, 2016

Original comment by stevenk_ (Bitbucket: stevenk_, GitHub: Unknown):


No, this was not an intentional limitation. The support for non-PEP 440 specifiers was present, it was just buggy (and untested, sigh). I have corrected both of those issues in pypa/packaging#62, and will submit a PR to update packaging to the new release (expected to be 16.3) when my PR has landed and a packaging release made.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 22, 2016

Original comment by stevenk_ (Bitbucket: stevenk_, GitHub: Unknown):


Turns out packaging 16.3 causes another regression, this time with "name (==4)" which is an existing requirement in use in setuptools. I'm trying to sort out the parser so that all cases work.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 25, 2016

Original comment by jaraco (Bitbucket: jaraco, GitHub: jaraco):


Update to packaging 16.4. Fixes #499.

@bb-migration

This comment has been minimized.

bb-migration commented Feb 25, 2016

Original comment by lukasgraf (Bitbucket: lukasgraf, GitHub: lukasgraf):


With setuptools-20.2.1 I'm seeing another regression. Parsing the requirement plone.app.portlets >=2.5.1, <3.0(which used to work before 20.2) now fails with InvalidRequirement: Invalid requirement, parse error at "'<3.0'".

@bb-migration

This comment has been minimized.

bb-migration commented Feb 25, 2016

Original comment by jaapz (Bitbucket: jaapz, GitHub: jaapz):


I am bumping into this issue as well with a dependency I use (SQLAlchemy-Utils), which defines a requirement as passlib >= 1.6, < 2.0. When I run the install using setuptools 20.1, everything works, but with 20.2.1, it doesn't and fails with "error in SQLAlchemy-Utils setup command: 'extras_require' must be a dictionary whose values are strings or lists of strings containing valid project/version requirement specifiers.".

When I remove the passlib requirement, it installs just fine.

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