[Python-checkins] python/nondist/sandbox/setuptools EasyInstall.txt, 1.65, 1.66 pkg_resources.py, 1.74, 1.75 pkg_resources.txt, 1.17, 1.18

pje@users.sourceforge.net pje at users.sourceforge.net
Tue Oct 18 06:08:49 CEST 2005


Update of /cvsroot/python/python/nondist/sandbox/setuptools
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv21360

Modified Files:
	EasyInstall.txt pkg_resources.py pkg_resources.txt 
Log Message:
Hurray!  Our first dependency processing bug!  This is cool because it
means that people are finally doing enough things with setuptools to 
have real-life version conflict scenarios.  Luckily, the fix is trivial:
use breadth-first instead of depth-first dependency processing, which I 
thought we were already doing anyway, but weren't.  And we were giving
precedence to already-installed packages, which means upgrades didn't 
work so well.


Index: EasyInstall.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/EasyInstall.txt,v
retrieving revision 1.65
retrieving revision 1.66
diff -u -d -r1.65 -r1.66
--- EasyInstall.txt	17 Oct 2005 02:26:39 -0000	1.65
+++ EasyInstall.txt	18 Oct 2005 04:08:44 -0000	1.66
@@ -855,6 +855,13 @@
  * 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

Index: pkg_resources.py
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/pkg_resources.py,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- pkg_resources.py	17 Oct 2005 02:26:39 -0000	1.74
+++ pkg_resources.py	18 Oct 2005 04:08:45 -0000	1.75
@@ -467,7 +467,7 @@
         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

Index: pkg_resources.txt
===================================================================
RCS file: /cvsroot/python/python/nondist/sandbox/setuptools/pkg_resources.txt,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -d -r1.17 -r1.18
--- pkg_resources.txt	17 Oct 2005 02:26:39 -0000	1.17
+++ pkg_resources.txt	18 Oct 2005 04:08:45 -0000	1.18
@@ -1499,6 +1499,10 @@
    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.
 



More information about the Python-checkins mailing list