Skip to content

Could more be cached in the backtracking process? #2129

@jerbob92

Description

@jerbob92

Let me start with: I'm not sure if this is actually in pip-compile or in pip itself, so please let me know if this should be requested somewhere else.

What's the problem this feature will solve?

We use Dependabot to find package updates in our projects. Dependabot would basically run:

pip-compile --allow-unsafe --output-file=requirements.txt -P {dependency-name} requirements.in

For every dependency in the requirements.txt file.

Since the change from the legacy resolver to the backtracking resolver, this process takes ages (multiple hours for most, 10+ hours for some).

Describe the solution you'd like

What I noticed is that even though a lot is cached already (package version lookups, wheels), it still does quite some work for every package in the backtracking process like copying the wheel, extracting the wheel, looking at the metadata.

The legacy resolver seemed to cache everything much "harder", and finishes almost instantly when things are cached.

Alternative Solutions

Couldn't find an alternative.

Additional context

N/A

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions