Skip to content

Adopt uv for the dev environment - #65

Merged
noel merged 2 commits into
datacoves:mainfrom
GClunies:snowcap-64
Aug 20, 2026
Merged

Adopt uv for the dev environment#65
noel merged 2 commits into
datacoves:mainfrom
GClunies:snowcap-64

Conversation

@GClunies

Copy link
Copy Markdown
Contributor

Summary

Contributors' venvs could silently drift from the checkout: a stray pip install snowcap replaced the editable install with a PyPI release (observed: venv at 1.0.17 while source was at 1.0.23). This adopts uv so uv sync gives a one-command dev setup that reinstalls the project editable and keeps dependencies pinned on every run.

Closes #64

Changes

  • Move package metadata from setup.py to PEP 621 pyproject.toml with hatchling; version still read from version.md, so the bump-version workflow keeps working unchanged
  • Move dev dependencies to the [dependency-groups] dev group; commit uv.lock
  • Delete setup.py, MANIFEST.in, requirements.txt, requirements.dev.txt
  • Delegate Makefile targets to uv; install-dev drops legacy *.egg-info that would shadow the uv-managed editable install
  • CI (run-tests, release-package, reset-test-account) uses astral-sh/setup-uv + uv sync --locked; run-tests now also builds the package and checks wheel contents (entry point, templates, py.typed) since release-package uploads straight to PyPI
  • Document the uv flow in README and TESTING.md

Verification

  • Fresh uv sync: snowcap 1.0.23 installed editable; snowcap --version reports 1.0.23
  • uv build + twine check pass; wheel contains templates, py.typed, console entry point
  • make lint, make typecheck clean; 2048 unit tests pass

- Move package metadata from setup.py to PEP 621 pyproject.toml with
  hatchling; version still read from version.md so bump-version keeps working
- Move dev dependencies to the uv dev dependency group; commit uv.lock
- Delegate Makefile targets to uv; install-dev drops legacy egg-info that
  would shadow the uv-managed editable install
- CI uses astral-sh/setup-uv and uv sync --locked; run-tests now also builds
  the package and checks wheel contents before a release can
- Document the uv flow in README and TESTING.md
@noel
noel merged commit 3323f8d into datacoves:main Aug 20, 2026
6 checks passed
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.

Adopt uv for the dev environment so the venv always tracks the checkout

2 participants