[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