Opened at 2020-11-06T16:31:13Z
Closed at 2020-11-25T23:20:33Z
#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
comment:2 Changed at 2020-11-06T18:07:07Z by exarkun
comment:3 Changed at 2020-11-19T14:17:06Z by exarkun
- Keywords review added
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:
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.