#3497 closed defect (fixed)

There is a recommended repository of dependencies at https://tahoe-lafs.org/deps/ which is both incomplete and out of date

Reported by: exarkun Owned by: GitHub <noreply@…>
Priority: normal Milestone: undecided
Component: packaging Version: n/a
Keywords: review Cc:
Launchpad Bug:

Description

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/.

Change History (5)

comment:1 Changed at 2020-11-06T16:32:26Z by exarkun

As part of the retirement, we should adjust our CI configuration so that it fails if a C compiler is required. This will serve as assurance that we continue to walk this narrow (but widening) path of easy installation.

comment:4 Changed at 2020-11-19T15:44:34Z by exarkun

  • Owner daira deleted

comment:5 Changed at 2020-11-25T23:20:33Z by GitHub <noreply@…>

  • Owner set to GitHub <noreply@…>
  • Resolution set to fixed
  • Status changed from new to closed

In fba386c/trunk:

Merge pull request #903 from tahoe-lafs/3497.stop-recommending-our-deps

Stop recommending our hosted binary dep packages

Fixes: ticket:3497

Note: See TracTickets for help on using tickets.