Repository navigation
ref: Remove pip, use uv everywhere - #243
Merged
Merged
Conversation
devenv now uses uv for everything that used pip: - install-devenv.sh creates the global venv with uv venv and installs devenv with uv pip, installing the latest uv if none is found - devenv update upgrades the global devenv with uv pip - devenv.lib.venv creates venvs with uv venv and installs requirements with uv pip, keeping the same API for repos that still use it - the build workflow uses uv build instead of pip install build Also upgrade uv.lock to clear known vulnerabilities (urllib3, virtualenv, pygments, pytest) and use the latest uv and setup-uv in CI. Co-Authored-By: Joshua Li <14209781+joshuarli@users.noreply.github.com>
mypy 2 crashes with an INTERNAL ERROR when pre-commit's parallel mypy processes race on the shared .mypy_cache.
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 7d50347. Configure here.
check() matched any key starting with "version" and compared the whole value, so a venv whose pyvenv.cfg says version_info = 3.11.6.final.0 was always seen as mismatched and recreated on every ensure().
joshuarli
approved these changes
Oct 17, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.

devenv no longer uses pip anywhere; uv does it all.
install-devenv.shcreates the global venv withuv venvand installs devenv withuv pip. It looks for an existing uv (including brew and~/.local/bin) even though it resetsPATH, and installs the latest uv with astral's installer if it can't find one. The global venv no longer has pip in it.devenv updateupgrades the global devenv withuv pip install --upgrade.devenv.lib.venvkeeps the same API, sinceops,sentry-infra-tools,sentry-protosand others still callvenv.get/ensure/sync. Under the hood it now usesuv venvanduv pip install. Those venvs won't have pip in them anymore, and pip config such aspip.conf/PIP_*is no longer read.uv.find()returns the uv on PATH, falls back to~/.local/bin/uv, and otherwise exits with install instructions.build.ymlrunsuv buildinstead ofsetup-python+pip install build. Every workflow is on setup-uv v10.3.0 with the latest uv (the 0.12.10 pin is gone), andintegration.ymlsets up uv itself.I also ran
uv lock --upgradeto clear the known vulnerabilities in the lockfile: urllib3 2.6.3→2.8.0, virtualenv 21.1.0→21.14.8, pygments 2.19.2→2.21.0, pytest 9.0.2→9.1.1.uv auditnow reports none. This also bumps dev tools (mypy 1→2, ruff 0.15→0.17); lint passes with them.via @joshuarli.
--
View Junior Session [Sentry]