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

Fix environment markers handling #1081

Merged
merged 1 commit into from Jul 14, 2017

Conversation

@benoit-pierre
Copy link
Member

@benoit-pierre benoit-pierre commented Jul 10, 2017

While the documentation now points to using environment markers with install_requires for declaring platform dependencies, this result in invalid wheels because those are stripped from the final requirements in the embedded metadata.

E.g, using something like this:

from setuptools import setup
setup(
    name='foo',
    install_requires='barbazquux; "foobar" in sys_platform',
)

result in foo.egg-info/requires.txt containing:

barbazquux; "foobar" in sys_platform

instead of:

import sys

from setuptools import setup

setup(
    name='foo',
    extras_require={':"foobar" in sys_platform': 'barbazquux'},
)

which yields:

[:"foobar" in sys_platform]
barbazquux

This PR automatically move requirements in install_requires that use environment markers to extras_require so the egg info is valid and the generated wheels work as expected.

Additionally, I added a check to error out if an extras_require requirement is itself using an environment marker, as it's not supported.

Note: first commit is a fix for the same issue as #1063, so I'll rebase once this is merged.

@benoit-pierre benoit-pierre force-pushed the benoit-pierre:fix_environment_markers_handling branch from e3692a5 to 050808d Jul 13, 2017
@benoit-pierre
Copy link
Member Author

@benoit-pierre benoit-pierre commented Jul 13, 2017

Rebased on master.

@jaraco jaraco merged commit 3e76534 into pypa:master Jul 14, 2017
2 checks passed
2 checks passed
continuous-integration/appveyor/pr AppVeyor build succeeded
Details
continuous-integration/travis-ci/pr The Travis CI build passed
Details
@benoit-pierre benoit-pierre deleted the benoit-pierre:fix_environment_markers_handling branch Jul 14, 2017
jaraco added a commit that referenced this pull request Jul 14, 2017
suutari-ai pushed a commit to suutari/prequ that referenced this pull request Aug 2, 2017
If the wheel is generated with older setuptools it will have incorrect
requirements for Python 3, since some of the requirements use
environment markers and there was a problem with those in older versions
of the setuptools.

See pypa/setuptools#1081 and
pypa/setuptools#1108 for details.
stephenfin added a commit to stephenfin/setuptools that referenced this pull request Mar 26, 2018
This ensures we don't unknowingly change the behavior of this again.

Signed-off-by: Stephen Finucane <stephen@that.guru>
Fixes: pypa#1307
pganssle added a commit that referenced this pull request Mar 26, 2018
@di di mentioned this pull request Sep 25, 2018
1 of 2 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants