# HG changeset patch # User domruf # Date 2016-08-03 18:26:33 # Node ID 3521120e72bc726cad27fa41a307b52f1d831332 # Parent c82f90f4fc19de508970564c58d5d13d0b8b794f setup: limit WebTest version to <2.0 Running pip install -e . in a clean environment (or --upgrade), would cause: "ContextualVersionConflict: (WebOb 1.1.1 (.../lib/python2.7/site-packages), Requirement.parse('WebOb>=1.2'), set(['WebTest']))" setup.py required webob>=1.0.8,<=1.1.1 which pip resolved as WebOb==1.1.1. setup.py required Pylons which requires WebTest>=1.3.1. Pip would thus install the latest WebTest-2.0.23 ... which however has a WebOb>=1.2 dependency. Pip only makes one pass at resolving dependencies and it would not resolve or notice this inconsistency. This problem came with dd676fdeda0f which moved pinning of WebTest 1.4.3 out of setup.py. Since Pylons require webtest anyway, there is no point in having it as a dev requirement only - put it back in setup.py. This might just be a temporary workaround until the WebOb version is updated. Original patch by Dominik has been rewritten by Mads. diff --git a/dev_requirements.txt b/dev_requirements.txt --- a/dev_requirements.txt +++ b/dev_requirements.txt @@ -2,6 +2,6 @@ pytest>=2.7.0,<3.0 pytest-runner pytest-sugar>=0.7.0,<1.0.0 pytest-catchlog -webtest==1.4.3 +WebTest<2 # this is also a Pylons dependency and pinned in setup.py to avoid version conflicts for WebOb mock sphinx diff --git a/setup.py b/setup.py --- a/setup.py +++ b/setup.py @@ -39,6 +39,7 @@ requirements = [ "waitress>=0.8.8,<1.0", "webob>=1.0.8,<=1.1.1", "Pylons>=1.0.0,<=1.0.2", + "WebTest<2.0", # make the Pylons dependency pick a version that supports our WebOb version "Beaker==1.6.4", "WebHelpers==1.3", "formencode>=1.2.4,<=1.2.6",