Skip to content

having a way resolver outputs a "number of ticks", and being able to limit that number #12039

@stonebig

Description

@stonebig

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions