Skip to content

Move from pipenv to uv - #285

Merged
FedericoTartarini merged 1 commit into
developmentfrom
migrate-to-uv
Oct 23, 2026
Merged

FedericoTartarini merged 1 commit into
developmentfrom
migrate-to-uv

Conversation

@FedericoTartarini

Copy link
Copy Markdown
Contributor

What changed

  • Replace Pipfile and Pipfile.lock with pyproject.toml and uv.lock.
  • .python-version changes from 3.10 to 3.11, so it matches the old Pipfile, CI and the python:3.11-slim Docker image.
  • Every direct runtime and dev dependency is pinned to its version in the old Pipfile.lock (dash 3.2.0, plotly 5.18.0, pandas 2.2.0, numpy 1.26.3, dash-mantine-components 2.2.1, dash-leaflet 1.0.15, and so on).
  • A plain lock moved seven transitive packages across a major version (or a minor one for 0.x packages): filelock 4, pillow 13, pyee 14, python-dateutil 3, setuptools 84, numba 0.68 and llvmlite 0.50. [tool.uv] constraint-dependencies holds them back to the series the old lock used.
  • Dockerfile installs uv 0.13.1, runs uv sync --frozen --no-dev into /app/.venv and starts the app with python main.py. deploy.yml and cloudbuild.yaml are unchanged.
  • .gcloudignore excludes .venv, which uv creates as a symlink. Without it gcloud builds submit could upload the whole environment.
  • python.yml uses astral-sh/setup-uv@v10.3.1, uv sync --frozen and uv run for ruff, Playwright, the app and pytest.
  • The project version in pyproject.toml is 0.10.2. .bumpversion.cfg now also bumps it in pyproject.toml and uv.lock, so uv lock --check still passes after a release bump.
  • The contributing docs use uv sync, uv run, uv add and uv lock. The testing section of run-project-locally.md now describes the Playwright tests instead of the removed Cypress tests.

Checked

  • uv run pytest --base-url=http://127.0.0.1:8080 -n 4 against uv run python main.py on macOS: 29 passed.
  • ruff check and ruff format --check pass.
  • docker buildx build --platform linux/amd64 succeeds. Inside the image import main works with Python 3.11.17, dash 3.2.0, plotly 5.18.0, pandas 2.2.0, numpy 1.26.3, scipy 1.12.0 and dash-mantine-components 2.2.1.
  • gcloud meta list-files-for-upload includes pyproject.toml, uv.lock and Dockerfile, and nothing from .venv.
  • bump2version patch (run without committing, then reverted) updates all four version files, and uv lock --check passes afterwards.

Not checked

  • CI on this PR, until it finishes.
  • gcloud builds submit and the Cloud Run deploy.

🤖 Generated with Claude Code

Replace Pipfile and Pipfile.lock with pyproject.toml and uv.lock. Direct
dependencies are pinned to the versions in the old Pipfile.lock, and
transitive packages that jumped a major version are constrained back.

- Pin Python 3.11 in .python-version (was 3.10, unlike CI and Docker)
- Dockerfile installs with uv sync --frozen --no-dev into /app/.venv
- CI uses astral-sh/setup-uv and uv run
- .gcloudignore excludes the .venv symlink
- bump2version also updates pyproject.toml and uv.lock
- Contributing docs use uv; testing section describes Playwright

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Copilot AI balanced review requested due to automatic review settings October 23, 2026 05:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Oct 23, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 67f569a1-b399-41d1-b048-516b5f1b212e

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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.

@FedericoTartarini
FedericoTartarini merged commit f263d1a into development Oct 23, 2026
4 checks passed
@FedericoTartarini
FedericoTartarini deleted the migrate-to-uv branch October 23, 2026 05:49
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.

2 participants