Open Bug 1808738 Opened 2 years ago Updated 1 year ago

Move applicable Python vendors to be installed at runtime from pypi

Categories

(Firefox Build System :: Third Party Packaging, task)

task

Tracking

(Not tracked)

People

(Reporter: ahal, Unassigned)

References

Details

The newish sites system (as described in bug 1808732 comment 0) allows commands to install dependencies from pypi at runtime. However some commands (such as mach build) and Mach itself, we want to ensure can run even without an internet connection. So for these sites (namely mach and build) must only rely on vendored packages. We also want to vendor taskcluster_taskgraph in the event a quick fix is needed for a chemspill.

However, for most sites we have no such restriction. I suspect that a lot of our vendored packages are simply there because at the time it was the easiest thing to do, but now that we can easily depend on pypi, we could likely remove a lot of them from the code base and install them from pypi instead. This will result in fewer conflicts when upgrading dependencies.

This doesn't technically block on bug 1808732, but in my mind doing that first will make this easier to manage. So adding it as a blocker.

The desired outcome of this (minimizing conflicts between dependencies for sites) is planned/in-progress, but how you propose to get there (downloading from PyPi on-the-fly) is not how we plan to achieve it. We want to have everything we can vendored, including multiple versions of the same library (that can be used by different sites without conflict). It's currently blocked by bug 1695312 and bug 1808732, and we'll get there after those are done by using Poetry and lockfiles for each site/virtualenv (bug 724274).

You need to log in before you can comment on or make changes to this bug.