Skip to content

Migrate from pip to uv#64

Merged
gmr merged 3 commits intomainfrom
feature/migrate-to-uv
Feb 15, 2026
Merged

Migrate from pip to uv#64
gmr merged 3 commits intomainfrom
feature/migrate-to-uv

Conversation

@gmr
Copy link
Copy Markdown
Owner

@gmr gmr commented Feb 15, 2026

Summary

  • Replace pip/venv toolchain with uv for dependency management, virtual environment creation, and package building
  • Add uv.lock for reproducible dependency resolution across environments
  • Remove bootstrap script (replaced by uv sync)

Changes

  • CI workflows: Replace actions/setup-python + pip install with astral-sh/setup-uv@v5 + uv sync; use uv run for all tool invocations; use uv build for deployment
  • pyproject.toml: Move dev dependencies from [project.optional-dependencies] to [dependency-groups]; fix coverage[toml] extra for Python 3.10 TOML config support
  • Docs: Update CONTRIBUTING.md and CLAUDE.md with uv commands

Test plan

  • CI passes across all Python versions (3.10–3.14)
  • uv sync && uv run coverage run && uv run coverage report works locally

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores

    • Migrated project tooling from pip/venv to UV for dependency management and builds.
    • Updated CI workflows to use UV, adjusted branch matching, and aligned test/lint commands.
    • Removed legacy bootstrap script.
    • Added .python-version to ignore rules.
    • Renamed dependency section in project config and adjusted a coverage dependency.
  • Documentation

    • Updated development guides and README references to use UV-based setup and command invocation.

- Replace pip/venv with uv sync and uv run in CI workflows
- Switch from actions/setup-python to astral-sh/setup-uv@v5
- Use uv build instead of python -m build for deployment
- Move dev deps from [project.optional-dependencies] to [dependency-groups]
- Fix coverage[toml] extra for Python 3.10 TOML support
- Remove bootstrap script (replaced by uv sync)
- Add uv.lock for reproducible installs
- Add .python-version to .gitignore
- Update CONTRIBUTING.md and CLAUDE.md with uv commands

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Feb 15, 2026

Warning

Rate limit exceeded

@gmr has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 22 minutes and 14 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📝 Walkthrough

Walkthrough

CI/CD workflows and developer tooling were migrated from pip/venv commands to the uv toolchain: GitHub Actions now use astral-sh/setup-uv and uv commands; the bootstrap script was removed; pyproject.toml dependency grouping was adjusted; docs and gitignore updated accordingly.

Changes

Cohort / File(s) Summary
CI/CD Workflows
​.github/workflows/deploy.yaml, ​.github/workflows/testing.yaml
Replaced Python setup step with astral-sh/setup-uv@v5; switched build/install/test commands to uv equivalents (uv build, uv sync, uv run ...); changed on.push.branches spec in testing workflow.
Project files
pyproject.toml, bootstrap, ​.gitignore
Removed the bootstrap script; renamed [project.optional-dependencies] to [dependency-groups] and added coverage[toml]; added .python-version to .gitignore.
Documentation
CLAUDE.md, CONTRIBUTING.md
Updated developer instructions to use uv sync and uv run ... wrappers for setup, tests, and linters instead of direct pip/venv and tool invocations.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Poem

🐰 I swapped my venv for uv with glee,
Commands now hop in sync so merrily,
CI dances with a brand-new tune,
Dependencies grouped beneath the moon,
A little rabbit cheers for change — tee-hee!

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Migrate from pip to uv' clearly and concisely summarizes the main objective of the changeset: replacing the pip/venv toolchain with uv for dependency management, virtual environment creation, and package building.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Merge Conflict Detection ✅ Passed ✅ No merge conflicts detected when merging into main

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/migrate-to-uv

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Use ** glob to match branches containing slashes (e.g. feature/foo).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
.github/workflows/testing.yaml (1)

38-42: ⚠️ Potential issue | 🟡 Minor

Upgrade codecov/codecov-action from v4 to v5.

The current version codecov/codecov-action@v4 is outdated; the latest recommended major version is v5 (currently v5.5.2). The coverage output path build/coverage.xml is correctly configured in pyproject.toml and requires no changes.

- Add pytest to dev dependencies
- Configure pytest discovery for tests.py
- Change coverage command_line to use pytest
- Upgrade codecov/codecov-action from v4 to v5

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@gmr gmr merged commit 598f4e5 into main Feb 15, 2026
7 checks passed
@gmr gmr deleted the feature/migrate-to-uv branch February 15, 2026 18:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant