-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Remove the experimental fast-deps feature #11478
base: main
Are you sure you want to change the base?
Conversation
This feature did not yield significant speed-ups, possibly due to insufficient optimisation of the calls being performed.
I'm not sure yet if this is the route we should go down, FWIW, but I'm filing a PR to facilitate the discussion around this and simplify it to a go/no-go decision for us. :) |
Something to time: a lazier lazy wheel #11481 |
Given #10748 (comment) it may be good to keep. If we can make |
Agree with @casassg Warehouse doesn't yet support pep 658, and many people (myself included) use different package repositories which may not support pep 658 even if warehouse does. So I think it's at least worth profiling/looking over the existing implementation to see how it can be improved before removing it entirely. Speaking of... anyone have a good testcase? |
Hi 👋 xref #11512 (comment) the warehouse PR is now merged is the plan still to remove |
@ddelange what I meant by that was that in #11111, pip extends the code paths and classes that we initially developed for the purposes of Analogy: optimizing
|
Just created #12184 to move forward on all the stuff in that comment instead of taking up space here. |
Also take a look at #12208, which I hope makes a convincing enough case for instead turning on |
I'm +1 for removing |
Personally I feel like flag would be useful as a transition to the ”new” range fetch approach (mentioned above by @cosmicexplorer). After we merge the entire addition, we can use the usual use-feature/use-deprecated mechanism to enable it by default. |
But do we need that in a world where PyPI has backfilled PEP 658 metadata? |
This feature has new energy, and we don't live in a world where PyPI has backfilled PEP 658 metadata. Also, it can work in a simpler non-pypi index. |
Do we have any indications from PyPI of the timescales for backfilling? Also, as @dholth mentions, fast-deps would be useful for indexes that don't support PEP 658. The pytorch binaries, for example, are served from their own index - does that support PEP 658? I just checked https://download.pytorch.org/whl/cu117, and it doesn't seem to... |
We don't have a set schedule for backfilling, but we were talking about it last Friday and I believe we hope to do it soon. I think we may be waiting until a new version of packaging is released and we can pull in the packaging metadata API to validate the metadata at the same time (obviously invalid metadata we can't do anything about, but we can at least record which metadata is valid or invalid). |
That came out last weekend, so this should be unblocked from that perspective I think. :) |
This feature did not yield significant speed-ups, possibly due to insufficient optimisation of the calls being performed.
Adding a cross reference to #7049 (comment), which links to other issues that are relevant for making a decision on what to do with this feature.
FWIW, we did reuse nearly all of the code for PEP 658 though, so the effort put toward this feature was certainly not in vain. It might just be that our implementation of
lazy_wheel
could've been optimised further, but given that PEP 658 is on the horizon, I reckon it's OK to trim this functionality since we're going to get the similar semantics with thedist-info-metadata
.