-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Description
What's the problem this feature will solve?
give the builder a way to "stop" the resolver when things are obviously not going the usual way versus previous builds
Describe the solution you'd like
I'm building from a local drive a huge list of requirement.
When all goes well, the resolver is "expectedly" behaving about the same each time,
When not, the resolver takes way more time, maybe would take a day but I kill it before, and I loose that "way more" time.
nota: after that initial big and long try, implementing a constraint.txt file and retrying, and nothing else, allows to pin-point the issue. (as 'pip check' can't see it comes from a dask[complete] constraint)
What would avoid this at minimal initial time cost is:
- to have the resolver counting its "steps" to resolve a request, and output it
- so that when asking a pip install, a parameter limiting the number of steps would allow to "break" spontaneously when we are out of the "normal" situation.
so, request is to have pip install --verbose :
- to include, just before the summary, or as it runs, a "steps" or "number of ticks" spending,
- being able via a --steps_limit to put an upper bound to it.
Advantage vs a time limit or depth limit:
- no dependancy on the cpu speed
- no change in the algorithm itself.
Alternative Solutions
this is an alternative to #10932
Additional context
I can try to experiment a counter if pip devs gives have an idea of how what/where could be counted.
It must be in a place where the "never ending resolution" is increasing it continously.
the "number of steps" displaying and the "breakage" could be done at the current --verbose output line writing moment.
Code of Conduct
- I agree to follow the PSF Code of Conduct.