markers are incompatible with pip < 6 and sdists
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
PBR |
Fix Released
|
High
|
Sachi King |
Bug Description
This originated from https:/
- Markers in deps *in sdists* (whether extras or install_requires) are not interpreted by pip <6.
- pip < 1.5 chooses sdists over wheels.
- Ubuntu LTS has pip 1.1, and RHEL 7 has 1.5
Thus anything that:
- uses markers
- is going to be installed on Ubuntu LTS or RHEL 7 (e.g. another decade or two!)
- and publishes sdists
will fail to install correctly
Donald stufft suggests the following approach as a workaround:
- in egg_info generation export unconditional metadata (e.g. use pkg_resources to evaluate the markers immediately)
- in bdist_wheel export the markers as markers for evaluation by the installing system.
This is used by a number of packages - e.g. https:/
We'd want careful testing to ensure we don't accidentally export unconditional deps to the wheel, I suggest at least one integration test of a test package that does pip install ., pip install -e ., pip wheel ., parameterised over pip 1.4, 1.5 and latest.
Changed in pbr: | |
assignee: | nobody → Sachi King (nakato) |
Fix proposed to branch: master /review. openstack. org/253289
Review: https:/