diff options
-rwxr-xr-x | EasyInstall.txt | 7 | ||||
-rw-r--r-- | pkg_resources.py | 2 | ||||
-rwxr-xr-x | pkg_resources.txt | 4 | ||||
-rwxr-xr-x | setuptools/command/easy_install.py | 2 |
4 files changed, 13 insertions, 2 deletions
diff --git a/EasyInstall.txt b/EasyInstall.txt index 6fcbcd16..3efc80f1 100755 --- a/EasyInstall.txt +++ b/EasyInstall.txt @@ -855,6 +855,13 @@ Known Issues * Improved Windows ``.exe`` script wrappers so that the script can have the same name as a module without confusing Python. + * Changed dependency processing so that it's breadth-first, allowing a + depender's preferences to override those of a dependee, to prevent conflicts + when a lower version is acceptable to the dependee, but not the depender. + Also, ensure that currently installed/selected packages aren't given + precedence over ones desired by a package being installed, which could + cause conflict errors. + 0.6a3 * Improved error message when trying to use old ways of running ``easy_install``. Removed the ability to run via ``python -m`` or by diff --git a/pkg_resources.py b/pkg_resources.py index 6717c2ad..e43201d4 100644 --- a/pkg_resources.py +++ b/pkg_resources.py @@ -467,7 +467,7 @@ class WorkingSet(object): to_activate = [] while requirements: - req = requirements.pop() + req = requirements.pop(0) # process dependencies breadth-first if req in processed: # Ignore cyclic or redundant dependencies continue diff --git a/pkg_resources.txt b/pkg_resources.txt index d8198f5f..1f3e47fe 100755 --- a/pkg_resources.txt +++ b/pkg_resources.txt @@ -1499,6 +1499,10 @@ Release Notes/Change History non-namespace modules have already been imported and issues a warning if a conflicting module has already been imported. + * Changed dependency processing so that it's breadth-first, allowing a + depender's preferences to override those of a dependee, to prevent conflicts + when a lower version is acceptable to the dependee, but not the depender. + 0.6a4 * Fix a bug in ``WorkingSet.resolve()`` that was introduced in 0.6a3. diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index d85858a7..c076a5fd 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -394,7 +394,7 @@ class easy_install(Command): return try: - WorkingSet(self.shadow_path).resolve( + WorkingSet([]).resolve( [requirement], self.local_index, self.easy_install ) except DistributionNotFound, e: |