[Checkins] SVN: van.pydeb/trunk/ Generate separate dependencies when both extra and version requirements are

Gediminas Paulauskas menesis at pov.lt
Wed Sep 1 21:12:27 EDT 2010


Log message for revision 116117:
  Generate separate dependencies when both extra and version requirements are
  specified (https://bugs.launchpad.net/bugs/628560)
  

Changed:
  U   van.pydeb/trunk/CHANGES.txt
  U   van.pydeb/trunk/van/pydeb/__init__.py
  U   van.pydeb/trunk/van/pydeb/tests/extras.txt
  U   van.pydeb/trunk/van/pydeb/tests/zope.app.publication.egg-info/requires.txt

-=-
Modified: van.pydeb/trunk/CHANGES.txt
===================================================================
--- van.pydeb/trunk/CHANGES.txt	2010-09-01 22:58:35 UTC (rev 116116)
+++ van.pydeb/trunk/CHANGES.txt	2010-09-02 01:12:27 UTC (rev 116117)
@@ -4,7 +4,8 @@
 1.3.3 (unreleased)
 ------------------
 
-* None yet.
+* Generate separate dependencies when both extra and version requirements are
+  specified (https://bugs.launchpad.net/bugs/628560)
 
 1.3.2 (2010-06-22)
 ------------------

Modified: van.pydeb/trunk/van/pydeb/__init__.py
===================================================================
--- van.pydeb/trunk/van/pydeb/__init__.py	2010-09-01 22:58:35 UTC (rev 116116)
+++ van.pydeb/trunk/van/pydeb/__init__.py	2010-09-02 01:12:27 UTC (rev 116117)
@@ -272,19 +272,17 @@
         pkgs = []
         for extra in req.extras:
             pkgs.append('%s-%s' % (bin_pkg, extra))
-        if not pkgs:
+        if req.specs:
+            for spec in req.specs:
+                op, version = spec
+                op = _setuptools_debian_operators[op]
+                if op is None:
+                    continue
+                dpkg_version = py_version_to_deb(version)
+                pkgs.append('%s (%s %s)' % (bin_pkg, op, dpkg_version))
+        elif not pkgs:
             pkgs = [bin_pkg]
-        for pkg in pkgs:
-            if req.specs:
-                for spec in req.specs:
-                    op, version = spec
-                    op = _setuptools_debian_operators[op]
-                    if op is None:
-                        continue
-                    dpkg_version = py_version_to_deb(version)
-                    pydeps.add('%s (%s %s)' % (pkg, op, dpkg_version))
-            else:
-                pydeps.add(pkg)
+        pydeps.update(pkgs)
     # Let's depend on the namespace packages as well.
     # This is needed to get __init__.py into the namespace packages.
     # See https://bugs.launchpad.net/van.pydeb/+bug/619294

Modified: van.pydeb/trunk/van/pydeb/tests/extras.txt
===================================================================
--- van.pydeb/trunk/van/pydeb/tests/extras.txt	2010-09-01 22:58:35 UTC (rev 116116)
+++ van.pydeb/trunk/van/pydeb/tests/extras.txt	2010-09-02 01:12:27 UTC (rev 116117)
@@ -63,11 +63,18 @@
 Packages that depend on extras
 ------------------------------
 
-Depend on the provides list:
+If package requires an extra, one dependency is added:
 
-    >>> runit('van-pydeb depends --egg-info %s' % zope_app_publication) # doctest: +ELLIPSIS
-    python-..., python-zope.component-zcml, ...
+    >>> runit('van-pydeb depends --egg-info %s' % zope_app_publication) # doctest: +ELLIPSIS +REPORT_NDIFF
+    python-..., python-zope.browser (>= 1.2), python-zope.component-zcml, python-zope.deprecation...
 
+But if both a version and an extra are specified, separate dependencies are
+added -- first the base package with version requirements, then extras (virtual
+packages do not have versions):
+
+    >>> runit('van-pydeb depends --egg-info %s' % zope_app_publication) # doctest: +ELLIPSIS +REPORT_NDIFF
+    python-..., python-zope.error, python-zope.i18n (>= 3.7), python-zope.i18n-zcml, python-zope.interface...
+
 But packages that don't, get the original dependency:
 
     >>> runit('van-pydeb depends --egg-info %s' % zope_security) # doctest: +ELLIPSIS

Modified: van.pydeb/trunk/van/pydeb/tests/zope.app.publication.egg-info/requires.txt
===================================================================
--- van.pydeb/trunk/van/pydeb/tests/zope.app.publication.egg-info/requires.txt	2010-09-01 22:58:35 UTC (rev 116116)
+++ van.pydeb/trunk/van/pydeb/tests/zope.app.publication.egg-info/requires.txt	2010-09-02 01:12:27 UTC (rev 116117)
@@ -4,7 +4,7 @@
 zope.component [zcml]
 zope.deprecation
 zope.error
-zope.i18n
+zope.i18n [zcml] >= 3.7
 zope.browser>=1.2
 zope.publisher>=3.8.0
 zope.traversing>=3.7.0



More information about the checkins mailing list