Skip to content

Convert from pip to uv#431

Open
MaxGhenis wants to merge 1 commit intomasterfrom
convert-to-uv
Open

Convert from pip to uv#431
MaxGhenis wants to merge 1 commit intomasterfrom
convert-to-uv

Conversation

@MaxGhenis
Copy link
Contributor

Summary

  • Replace setup.py with pyproject.toml using setuptools backend for modern Python packaging
  • Add uv.lock for reproducible dependency management and faster installs
  • Update Makefile to use uv sync and uv run commands
  • Update CI workflows to use astral-sh/setup-uv@v4
  • Update version extraction scripts to use pyproject.toml instead of setup.py

Test plan

  • CI passes on all matrix combinations (Ubuntu/Windows, Python 3.10-3.13)
  • Verify make install works locally with uv
  • Verify make test runs successfully
  • Verify make build creates proper wheel/sdist
  • Verify changelog versioning workflow still works

Notes

This migration provides:

  • Faster installs: uv is significantly faster than pip
  • Reproducible builds: uv.lock ensures exact dependency versions
  • Modern packaging: pyproject.toml is the standard for Python projects (PEP 621)
  • Better CI caching: uv has built-in caching that works well with GitHub Actions

🤖 Generated with Claude Code

- Replace setup.py with pyproject.toml using setuptools backend
- Add uv.lock for reproducible dependency management
- Update Makefile to use uv sync and uv run commands
- Update CI workflows to use astral-sh/setup-uv@v4
- Update version extraction scripts to use pyproject.toml

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Mar 14, 2026
Replace legacy installer with uv across Makefile and CI workflows:
- Makefile: use uv for package installation
- pr.yaml: Add setup-uv action to Test and SmokeTest jobs
- push.yaml: Add setup-uv action to versioning, Test, and Publish jobs

Lint jobs already used uv (via uvx ruff). This completes the migration.

Supersedes #431.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Mar 14, 2026
Replace legacy installer with uv across Makefile and CI workflows:
- Makefile: use uv for package installation
- pr.yaml: Add setup-uv action to Test and SmokeTest jobs
- push.yaml: Add setup-uv action to versioning, Test, and Publish jobs

Lint jobs already used uv (via uvx ruff). This completes the migration.

Supersedes #431.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
MaxGhenis added a commit that referenced this pull request Mar 14, 2026
* Migrate from legacy installer to uv for dependency management

Replace legacy installer with uv across Makefile and CI workflows:
- Makefile: use uv for package installation
- pr.yaml: Add setup-uv action to Test and SmokeTest jobs
- push.yaml: Add setup-uv action to versioning, Test, and Publish jobs

Lint jobs already used uv (via uvx ruff). This completes the migration.

Supersedes #431.

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

* Add --system flag to uv pip install in Makefile

CI runners use system Python without a venv, so uv needs --system.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
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