posit-dev / posit-dev/positron
python: replace remaining pip install code with `uv`
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 4.3k
- Forks
- 184
- Avg merge
- 1d 9h
- Merged PRs (30d)
- 195
Description
We still use pip install during building here:
- https://github.com/posit-dev/positron/blob/e111bd28482794f0c76e83a6f1c1d8aa8d5cd378/extensions/positron-python/gulpfile.js#L254
- https://github.com/posit-dev/positron/blob/5e8932b1a599bfc297e1c7d958243885c9123774/extensions/positron-python/scripts/vendor.py#L54-L55
We could save some time during building by switching to uv pip install.
The main complication is https://github.com/astral-sh/uv/issues/6246 because it's important that we use implementation-agnostic wheels. We could look into using uv pip compile --universal when generating the requirements files, or implement some logic in pip-compile-ipykernel.py (or elsewhere) that filters out the hashes of non-agnostic wheels, so that the installer doesn't have to worry about it.
See also: https://github.com/posit-dev/positron/pull/6797#discussion_r1998795265
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 pip install calls in extensions/positron-python/gulpfile.js and scripts/vendor.py, then read scripts/pip-compile-ipykernel.py and the linked uv issue. Determine how requirements are generated and how implementation-agnostic wheels are preserved. Done means build-time installation uses uv without selecting non-agnostic wheels.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- build-system
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100