Open
Conversation
Rye is deprecated in favor of uv (its successor from the same maintainers). Replace all rye usage with uv equivalents: - pyproject.toml: [tool.rye] → [tool.uv], merge dev-dependencies into [dependency-groups] dev, remove [tool.rye.scripts] - Shell scripts: rye run → uv run with inlined commands - CI workflows: rye install → astral-sh/setup-uv@v5 action - Dev container: install uv instead of rye - Brewfile: brew "uv" - Delete requirements.lock and requirements-dev.lock (replaced by uv.lock) - Update all docs, AI assistant configs, and cursor rules
uv should be installed via the standard installer, not Homebrew. Bootstrap now checks for uv and directs users to the install docs.
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.
Rye is deprecated in favor of uv. Replace all rye usage with uv equivalents:
pyproject.toml:[tool.rye]→[tool.uv], mergedev-dependenciesinto[dependency-groups]dev, remove[tool.rye.scripts]rye run→uv runwith inlined commandsrye install→astral-sh/setup-uv@v5actionuvinstead ofryerequirements.lockandrequirements-dev.lock(replaced byuv.lock)This is definitely a more involved change, no rush on the review.
Greptile Summary
This PR completes a clean migration from the deprecated
ryetool touvfor dependency management, environment setup, and script execution across the entire repository. The changes are consistent and well-scoped:pyproject.tomlconsolidates the two separate dev-dependency lists into a single[dependency-groups]dev block, CI workflows swap the manualcurl | bashrye bootstrap for theastral-sh/setup-uv@v5action, shell scripts inline the oldrye run <alias>calls as directuv runinvocations, and all documentation/AI assistant configs are updated to match.Key changes:
pyproject.toml:[tool.rye]→[tool.uv], both dev-dependency lists merged into one[dependency-groups]dev,[tool.rye.scripts]removed (scripts now live in shell files directly)ryeinstall removed; all three jobs now useastral-sh/setup-uv@v5bin/publish-pypi:rye build --clean+rye publish --yes→uv build --clean+uv publish --token; the--yesflag is unnecessary foruv publishwhich is non-interactive by defaultscripts/bootstrap: simplified to a pre-flightuvavailability check +uv sync --all-groups.devcontainer/Dockerfile: usesCOPY --from=ghcr.io/astral-sh/uv:latest— the only minor concern is the unpinnedlatesttag (old rye was pinned to0.44.0)CLAUDE.md,CONTRIBUTING.md, cursor rules, README files) updated consistentlyConfidence Score: 5/5
uv:latestin the devcontainer Dockerfile, which does not affect CI or production.uv:latestimage tag; consider pinning to a specific version for reproducible devcontainer builds.Important Files Changed
[tool.rye]to[tool.uv], mergesdev-dependenciesfrom both the old[tool.rye]block and the pre-existing[dependency-groups]dev list into a single[dependency-groups]dev, and removes[tool.rye.scripts]in favour of shell scripts. All dependencies are preserved;[build-system]is simply reordered.astral-sh/setup-uv@v5; publish logic lives inbin/publish-pypiand is unchanged structurally.rye build --cleanandrye publish --yeswithuv build --cleananduv publish --token $PYPI_TOKEN. Functionally equivalent;uv publishis non-interactive by default so--yesis not needed.rye configcall; simply checks thatuvis already installed and runsuv sync --all-groups. Cleaner and correct.rye run lint/rye run fix:ruffas directuv run ruffanduv run pyrightcalls. Behaviour is equivalent: non-fix path runs ruff + pyright + importability check; fix path only runsruff check --fix.rye run formatchain as explicituv run ruff format,uv run python ruffen-docs.py,uv run ruff check --fix,uv run ruff formatsteps. Behaviour is identical to the old rye script chain.rye run pytestwithuv run pytest. No functional change.rye run *to equivalentuv run */uv sync/uv buildpermissions. Also adds a trailing newline.ryetouvequivalents, trailing whitespace cleaned up, and a trailing newline added. Accurate and complete.Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[Developer / CI] --> B{Environment setup} B -->|Local| C["scripts/bootstrap\nuv sync --all-groups"] B -->|CI| D["astral-sh/setup-uv@v5\nuv sync --all-groups"] B -->|Devcontainer| E["Dockerfile\nCOPY uv from ghcr.io/astral-sh/uv:latest\nuv sync --all-groups"] C & D & E --> F[.venv ready] F --> G[scripts/test\nuv run pytest] F --> H[scripts/lint\nuv run ruff check + uv run pyright] F --> I[scripts/format\nuv run ruff format/check] F --> J[uv build] J --> K[bin/publish-pypi\nuv publish --token]Last reviewed commit: 2ca7af4