Cannot constrain a dependency without requesting it be installed #2731

Closed
rbtcollins opened this Issue Apr 27, 2015 · 1 comment

Projects

None yet

3 participants

@rbtcollins
Contributor

In OpenStack we have a script called devstack which installs 20 odd different services using pip. Its configurable by users to install only some. We've shied away from trying to use pip -r because with so many services, and dependencies evolving all the time, we'd be maintaining the permutations of the pip freezes for the 20 services.

If we had a way of saying 'here are our top level constraints' without triggering the install of the dependencies, such that when pip decides it needs a dependency X, the constraints get applied, that would make it possible for us to build a single unified set of constraints, and combine that with devstack installing each service (or not) as the user requested.

@qwcode qwcode added the enhancement label Apr 27, 2015
@rbtcollins rbtcollins changed the title from Cannot constraint a dependency without requesting it be installed to Cannot constrain a dependency without requesting it be installed Apr 28, 2015
@rbtcollins rbtcollins pushed a commit to rbtcollins/pip that referenced this issue Jun 2, 2015
Robert Collins Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
13a00f0
@rbtcollins rbtcollins pushed a commit to rbtcollins/pip that referenced this issue Jun 2, 2015
Robert Collins Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
286ba3d
@rbtcollins rbtcollins pushed a commit to rbtcollins/pip that referenced this issue Jun 2, 2015
Robert Collins Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
ff03334
@rbtcollins rbtcollins pushed a commit to rbtcollins/pip that referenced this issue Jun 2, 2015
Robert Collins Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
1aeb3a6
@rbtcollins rbtcollins pushed a commit to rbtcollins/pip that referenced this issue Jun 2, 2015
Robert Collins Issue #2731: Constraints files.
This adds constraints files. Like requirements files constraints files
control what version of a package is installed, but unlike
requirements files this doesn't itself choose to install the package.
This allows things that aren't explicitly desired to be constrained if
and only if they are installed.
bb0b429
@fungi fungi added a commit to openstack-infra/system-config that referenced this issue Jul 10, 2015
@fungi fungi Upgrade virtualenv to 13.1.0
Upgrade the preinstalled version of virtualenv on job workers from
13.0.3 to 13.1.0.

This updates the pip used in envs from 7.0.3 to 7.1.0 adding support
for constraints. pypa/pip#2731

It also updates setuptools in envs from 17.0 to 18.0.1 adding
support for ranges in environment markers.
https://bitbucket.org/pypa/setuptools/issue/380

These versions are already being used extensively in devstack jobs
and support for constraints and marker ranges in tox-based jobs will
quickly become necessary as the features propagate into individual
repos. The other items mentioned in the virtualenv/pip/setuptools
changelogs between these versions are minor and unlikely to cause
impact in our use cases.

Change-Id: I85e13bfcfee8780be16d87a084fdf52546fa7459
733fcf0
@openstack-gerrit openstack-gerrit added a commit to openstack/openstack that referenced this issue Jul 10, 2015
@openstack-gerrit Jenkins + openstack-gerrit Updated openstack/openstack
Project: openstack-infra/system-config  981ae01a8f98787233c3958ff78cee318574a1cf

Upgrade virtualenv to 13.1.0

Upgrade the preinstalled version of virtualenv on job workers from
13.0.3 to 13.1.0.

This updates the pip used in envs from 7.0.3 to 7.1.0 adding support
for constraints. pypa/pip#2731

It also updates setuptools in envs from 17.0 to 18.0.1 adding
support for ranges in environment markers.
https://bitbucket.org/pypa/setuptools/issue/380

These versions are already being used extensively in devstack jobs
and support for constraints and marker ranges in tox-based jobs will
quickly become necessary as the features propagate into individual
repos. The other items mentioned in the virtualenv/pip/setuptools
changelogs between these versions are minor and unlikely to cause
impact in our use cases.

Change-Id: I85e13bfcfee8780be16d87a084fdf52546fa7459
2924e10
@dstufft
Member
dstufft commented Aug 2, 2015

Closing this as it's now been finished.

@dstufft dstufft closed this Aug 2, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment