microsoft / microsoft/component-detection
Investigate usage of `--use-feature=fast-deps` in `pip install --report`
Nobody has claimed this yet.
- Dominant language
- C#
- Stars
- 553
- Forks
- 135
- Avg merge
- 20h 58m
- Merged PRs (30d)
- 6
Description
[PEP 658 – Serve Distribution Metadata in the Simple Repository API](https://peps.python.org/pep-0658/) was made available in May 2021 to help improve dependency resolution across the pip tooling by serving metadata information in a slimmer API. In v20 of the pip tooling, there was also the introduction of `--use-feature=fast-deps` to start making use of this information.
For our own tooling, we can investigate if there is any notable performance improvement in installation report generation across the large dependency trees component-detection tests on. However, based on https://github.com/pypa/pip/issues/8670 it is unlikely that there will be a noticeable increase in speed here until future improvements have been implemented.
The following PR https://github.com/pypa/pip/pull/12208 attempts to address some of these concerns and reports to have an estimated benchmark improvement of ~50% in dependency resolution time. However, it is still actively in development with the most recent commit on the branch in May 2024. Until it is merged it may not bring a benefit to run `--use-feature=fast-deps`.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the component-detection tests that exercise installation report generation and compare dependency-tree performance with and without pip's --use-feature=fast-deps option. Check the linked PEP 658 context and pip issue 8670 before running the benchmark. Done means recording whether the flag produces a notable improvement and documenting the resulting recommendation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- devtools, performance
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100