]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
_auto_deps: bump foolscap to >=0.6.3 to tolerate twisted-12.0.0
authorBrian Warner <warner@lothar.com>
Sun, 24 Jun 2012 19:10:24 +0000 (12:10 -0700)
committerBrian Warner <warner@lothar.com>
Sun, 24 Jun 2012 19:10:24 +0000 (12:10 -0700)
The current Twisted release is 12.1.0, which (like 12.0.0 before it)
isn't compatible with foolscap-0.6.2 and earlier. We previously required
foolscap>=0.6.1, since that's all we actually need from foolscap itself.
_auto_deps specifies twisted>=11.0.0, so any system that can't meet that
will install the current Twisted (12.1.0), which will give them
something incompatible with foolscap-0.6.1 and 0.6.2 .

If we're limited to setuptools's declarative constraint language (and
can't have a function which evaluates the available dependency versions
and gives recommendations on which to change), then the only safe
approach is to make sure that any acceptable Foolscap version will be
compatible with all acceptable Twisted versions. So, bump the foolscap
dependency to >=0.6.3, which covers all currently-known
incompatibilities.

src/allmydata/_auto_deps.py

index 8dd3898dc8cb6604a57ea753457e1ee96c71966e..7cce8fc1026d89f1c5a7badcadfde6b8fdd45420 100644 (file)
@@ -17,31 +17,36 @@ install_requires = [
     # zope.interface 3.6.3 and 3.6.4 are incompatible with Nevow (#1435).
     "zope.interface <= 3.6.2, >= 3.6.5",
 
-    # On Windows we need at least Twisted 9.0 to avoid an indirect dependency on pywin32.
-    # On Linux we need at least Twisted 10.1.0 for inotify support used by the drop-upload
-    # frontend.
-    # We also need Twisted 10.1 for the FTP frontend in order for Twisted's FTP server to
-    # support asynchronous close.
-    # When the cloud backend lands, it will depend on Twisted 10.2.0 which includes the fix to
-    # https://twistedmatrix.com/trac/ticket/411
-    # The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server rekeying bug
-    # http://twistedmatrix.com/trac/ticket/4395
+    # * On Windows we need at least Twisted 9.0 to avoid an indirect
+    #   dependency on pywin32.
+    # * On Linux we need at least Twisted 10.1.0 for inotify support used by
+    #   the drop-upload frontend.
+    # * We also need Twisted 10.1 for the FTP frontend in order for Twisted's
+    #   FTP server to support asynchronous close.
+    # * When the cloud backend lands, it will depend on Twisted 10.2.0 which
+    #   includes the fix to https://twistedmatrix.com/trac/ticket/411
+    # * The SFTP frontend depends on Twisted 11.0.0 to fix the SSH server
+    #   rekeying bug http://twistedmatrix.com/trac/ticket/4395
+    #
     "Twisted >= 11.0.0",
 
-    # foolscap < 0.5.1 had a performance bug which spent
-    # O(N**2) CPU for transferring large mutable files
-    # of size N.
-    # foolscap < 0.6 is incompatible with Twisted 10.2.0.
-    # foolscap 0.6.1 quiets a DeprecationWarning.
-    # pyOpenSSL is required by foolscap for it (foolscap) to provide secure
-    # connections. Foolscap doesn't reliably declare this dependency in a
-    # machine-readable way, so we need to declare a dependency on pyOpenSSL
-    # ourselves. Tahoe-LAFS doesn't *really* depend directly on pyOpenSSL,
-    # so if something changes in the relationship between foolscap and
-    # pyOpenSSL, such as foolscap requiring a specific version of pyOpenSSL,
-    # or foolscap switching from pyOpenSSL to a different crypto library, we
-    # need to update this declaration here.
-    "foolscap >= 0.6.1",
+    # * foolscap < 0.5.1 had a performance bug which spent O(N**2) CPU for
+    #   transferring large mutable files of size N.
+    # * foolscap < 0.6 is incompatible with Twisted 10.2.0.
+    # * foolscap 0.6.1 quiets a DeprecationWarning.
+    # * foolscap < 0.6.3 is incompatible with Twisted-11.1.0 and newer. Since
+    #   current Twisted is 12.0, any build which needs twisted will grab a
+    #   version that requires foolscap>=0.6.3
+    # * pyOpenSSL is required by foolscap for it (foolscap) to provide secure
+    #   connections. Foolscap doesn't reliably declare this dependency in a
+    #   machine-readable way, so we need to declare a dependency on pyOpenSSL
+    #   ourselves. Tahoe-LAFS doesn't *really* depend directly on pyOpenSSL,
+    #   so if something changes in the relationship between foolscap and
+    #   pyOpenSSL, such as foolscap requiring a specific version of
+    #   pyOpenSSL, or foolscap switching from pyOpenSSL to a different crypto
+    #   library, we need to update this declaration here.
+    #
+    "foolscap >= 0.6.3",
     "pyOpenSSL",
 
     "Nevow >= 0.6.0",