Skip to content

build: migrate from poetry to uv - #2

Open
JPHutchins wants to merge 1 commit into
modernize/01-nixfrom
modernize/02-uv
Open

build: migrate from poetry to uv#2
JPHutchins wants to merge 1 commit into
modernize/01-nixfrom
modernize/02-uv

Conversation

@JPHutchins

@JPHutchins JPHutchins commented Jul 22, 2026

Copy link
Copy Markdown
Owner

Stacked series modernizing the lapsed dhall-python. Stacked on #1.

Migrate poetry → uv:

  • PEP 621 [project] + PEP 735 [dependency-groups]; maturin stays the build backend; uv.lock committed.
  • requires-python >= 3.10 (drop EOL 3.7–3.9); dev deps bumped to current majors (pytest 9, pytest-benchmark 5, hypothesis 6, maturin 1.9).
  • slim the stock-Python .gitignore to what this project produces; repoint shell.nix, the Makefile, and the README at uv.
  • CI: build + test with uv run pytest across the OS matrix (ubuntu/macos/windows), replacing build(nix): pin nixpkgs revision in shell.nix #1's transitional single-OS poetry job. (The Rust here is still pyo3 0.19 — modernized in feat(rust): modernize to pyo3 0.29 + abi3, serde_dhall 0.13 #3 — so the interpreter is held at a version pyo3 0.19 supports.)

Warning

LLM Disclosure

This post was authored by claude-opus-4-8[1m] on behalf of @JPHutchins, as the uv-migration step of a stacked modernization of dhall-python.

Comment thread pyproject.toml
Comment on lines +35 to +41
[dependency-groups]
dev = [
"pytest~=7.0",
"pytest-benchmark",
"hypothesis",
"maturin>=1.7,<2",
]

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

Let's get these updated to latest range

Comment thread .gitignore
flame.svg
perf.data
perf.data.old
poetry.lock

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

wild that this was ignored

@JPHutchins JPHutchins left a comment

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

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

let's go ahead and get updated at this time

Replace the poetry project definition with a PEP 621 [project] table
plus PEP 735 [dependency-groups]; maturin stays the build backend.
Commit uv.lock for a reproducible dev environment.

- raise requires-python to >=3.10 (drop EOL 3.7-3.9)
- pin dev deps to current majors (pytest 9, pytest-benchmark 5,
  hypothesis 6, maturin 1.9) plus the build-system maturin requirement
- prune the noisy stock-Python .gitignore down to what this project
  actually produces (Python, Rust, envs, tool caches)
- repoint shell.nix, the Makefile, and the developer README at uv
- CI builds and tests with uv across the OS matrix
  (ubuntu/macos/windows) via `uv run pytest`, replacing the transitional
  poetry job

Co-Authored-By: claude-opus-4-8[1m] <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_019JtM6kqpbjzQB5CVosa5pt
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