Skip to content

feat(dev): commit uv.lock; make uv sync the canonical dev setup#86

Merged
dustenhubbard merged 1 commit into
mainfrom
feat/uv-lock-canonical
Jul 21, 2026
Merged

feat(dev): commit uv.lock; make uv sync the canonical dev setup#86
dustenhubbard merged 1 commit into
mainfrom
feat/uv-lock-canonical

Conversation

@dustenhubbard

Copy link
Copy Markdown
Owner

Maintainer decision: uv is the canonical dev environment.

  • uv.lock committed (134 packages, requires-python ==3.11.*, cross-platform markers; orjson pin honored; only non-registry sources are the intended funlib git dep and the project itself as editable).
  • Canonical flow everywhere (README, USER_GUIDE, CONTRIBUTING, DEV_UV): git clone -> uv sync -> uv run PyReconstruct; update loop is git pull + uv run. Plain venv demoted to a details block; uv lock --upgrade documented as the dep-bump flow.
  • CI: test.yml now provisions via astral-sh/setup-uv with lock caching and runs the suite with uv sync --frozen — reproducible against the lock, no pip/setup-python.

Validated end-to-end: suite 1232 passed, 5 pre-existing xfails, executed via uv run --frozen (~12 s). (This PR's own CI run doubles as live validation of the new workflow.)

🤖 Generated with Claude Code

Adopt uv as the canonical developer workflow. The maintainer's dev loop is
`git clone` + `uv sync` + `uv run`, with `git pull` + `uv run` to update.

- Commit uv.lock (134 packages, resolved for Python 3.11) so every developer
  and CI run gets the exact pinned dependency set, including orjson==3.11.8.
- README, docs/USER_GUIDE.md, CONTRIBUTING.md: make `uv sync` / `uv run` the
  canonical source setup; demote the plain-venv path to an alternative. Keep
  the Python 3.11 statement up front (uv reads the pin itself).
- docs/DEV_UV.md: reframe uv as canonical (conda now the parallel option);
  document `uv lock --upgrade` as the maintainer dep-bump flow and note the
  lock is committed / applied with --frozen in CI.
- CI (test.yml): install via astral-sh/setup-uv + `uv sync --frozen` and run
  pytest under `uv run --frozen`, for reproducibility against uv.lock.

.venv/ was already git-ignored; uv.lock is not ignored.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@dustenhubbard
dustenhubbard enabled auto-merge (squash) July 21, 2026 21:56
@dustenhubbard
dustenhubbard merged commit 02ee5ce into main Jul 21, 2026
1 check passed
@dustenhubbard
dustenhubbard deleted the feat/uv-lock-canonical branch July 21, 2026 21:57
dustenhubbard added a commit that referenced this pull request Jul 23, 2026
Adopt uv as the canonical developer workflow. The maintainer's dev loop is
`git clone` + `uv sync` + `uv run`, with `git pull` + `uv run` to update.

- Commit uv.lock (134 packages, resolved for Python 3.11) so every developer
  and CI run gets the exact pinned dependency set, including orjson==3.11.8.
- README, docs/USER_GUIDE.md, CONTRIBUTING.md: make `uv sync` / `uv run` the
  canonical source setup; demote the plain-venv path to an alternative. Keep
  the Python 3.11 statement up front (uv reads the pin itself).
- docs/DEV_UV.md: reframe uv as canonical (conda now the parallel option);
  document `uv lock --upgrade` as the maintainer dep-bump flow and note the
  lock is committed / applied with --frozen in CI.
- CI (test.yml): install via astral-sh/setup-uv + `uv sync --frozen` and run
  pytest under `uv run --frozen`, for reproducibility against uv.lock.

.venv/ was already git-ignored; uv.lock is not ignored.
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