Skip to content

Move dev tooling to PEP 735 dependency groups - #43

Merged
pattonw merged 1 commit into
mainfrom
chore/dependency-groups
Nov 3, 2026
Merged

pattonw merged 1 commit into
mainfrom
chore/dependency-groups

Conversation

@pattonw

@pattonw pattonw commented Nov 3, 2026

Copy link
Copy Markdown
Contributor

Family recommendation P1.3 (Library-Health _family/dependency-groups).

Why

dev lived under [project.optional-dependencies], so a plain uv sync skipped it (contributors had to know --extra dev) and the published wheel advertised a funlib.persistence[dev] extra that users could install by mistake.

What changes

  • [dependency-groups] now holds dev; uv sync installs it by default. There are no user-facing extras left, so [project.optional-dependencies] is gone.
  • ruff and ty are pinned with == (ruff==0.17.3, ty==0.0.96) until uv.lock is committed, since both change their rule sets between releases.
  • CI: the ruff, ty and tests jobs drop --extra dev.
  • README: the pip install funlib.persistence[dev] line becomes a short uv sync / uv run pytest developer setup.

Not changed here: the ruff job still lints funlib/persistence, which does not exist in the src layout; that is the separate fix-ruff-ci-path recommendation.

Verified locally (Python 3.12, uv 0.9.18)

  • uv sync alone installs pytest 9.2.0, ruff 0.17.3, ty 0.0.96.
  • uv run ruff check src tests: all checks passed.
  • uv run pytest tests (PostgreSQL file skipped, no server here): 134 passed, 29 skipped.
  • uv run ty check src tests: 10 diagnostics, the same 10 the ty job reports on main. That job is red already; it is the separate fix-ty-and-drop-mypy recommendation and is untouched here.
  • uv build --wheel: METADATA has no Provides-Extra.

🤖 Generated with Claude Code

Dev and docs tooling lived under [project.optional-dependencies], so a
plain `uv sync` skipped it and the published wheel advertised
`pkg[dev]`/`pkg[docs]` extras that users could install by mistake.

- Move `dev` (and `docs`, where present) to `[dependency-groups]`; the
  `dev` group is installed by `uv sync` by default.
- Pin ruff and ty with `==` until uv.lock is committed: both change
  their rule sets between releases.
- CI: drop `--extra dev`, use `--group docs`, and replace the curl
  installer for uv 0.4.1 (which predates dependency groups) with
  astral-sh/setup-uv. ruff jobs that used `uvx ruff` now run
  `uv run --only-group dev ruff` so the pin applies.
- Update README/docs commands that referenced the old extras.

Co-Authored-By: Claude Mythos 5.1 <noreply@anthropic.com>
@pattonw
pattonw merged commit 66da14f into main Nov 3, 2026
8 of 10 checks passed
@pattonw
pattonw deleted the chore/dependency-groups branch November 3, 2026 22:45
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