[tahoe-lafs-trac-stream] [Tahoe-LAFS] #3497: There is a recommended repository of dependencies at https://tahoe-lafs.org/deps/ which is both incomplete and out of date

Tahoe-LAFS trac at tahoe-lafs.org
Fri Nov 6 16:31:13 UTC 2020


#3497: There is a recommended repository of dependencies at https://tahoe-
lafs.org/deps/ which is both incomplete and out of date
-----------------------+---------------------------
 Reporter:  exarkun    |          Owner:  daira
     Type:  defect     |         Status:  new
 Priority:  normal     |      Milestone:  undecided
Component:  packaging  |        Version:  n/a
 Keywords:             |  Launchpad Bug:
-----------------------+---------------------------
 Not so far in Python's history, distributing and installing packages in a
 way which made them easy to install for end users was an extremely
 challenging problem.  In this context, the Tahoe-LAFS project began
 building and publishing its dependencies as wheels at https://tahoe-
 lafs.org/deps/ and recommending that when installing Tahoe-LAFS using
 `pip` this repository be consulted (with `--find-links`).

 One particular problem the repository solved was the lack of binary
 packages for certain platforms and dependencies.  When these packages are
 not available, a working C compiler and many other build-time dependencies
 are required on the system where Tahoe-LAFS is being installed.  For some
 OS, this is a high hurdle to clear.  For others, it merely slows down the
 installation process and consumes more local resources.  Either way, it's
 preferable if it can be avoided.

 As the wheel format has continued to grow in popularity and the
 "manylinux" binary formats have become easier to work with, the number of
 binary wheels available from other sources - namely PyPI - has grown
 immensely.

 At the same time, the Tahoe-LAFS project hasn't consistently updated the
 dependencies published at https://tahoe-lafs.org/deps/.  Tahoe-LAFS likely
 still works with many of the published versions but there is no continuous
 integration that verifies this.

 At the time of the filing of this ticket, on Linux, there are only six
 dependencies (direct or transitive) that are not available from PyPI as
 wheels.  All of these are pure Python and there is nearly no additional
 burden in installing them from .tar.gz.  macOS is in a similar position.

 On Windows, the only package I know of without a binary wheel is zfec.
 Efforts are currently underway to remedy this situation.

 The overall direction of the Python packaging/distribution ecosystem is in
 the direction of binary dependencies being available for the major
 platforms and end-users not needing to build them.

 Thus, once zfec joins the club, we should retire https://tahoe-
 lafs.org/deps/.

--
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/3497>
Tahoe-LAFS <https://Tahoe-LAFS.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list