build: PEP 735 dep group for dev tooling (closes #328 dev portion) - #333
Conversation
Move pytest, pytest-timeout, pyright from `[project.optional-dependencies.dev]` into `[dependency-groups.dev]`. Drops them from deptry DEP002 ignores — PEP 735 dep groups are not project dependencies, so deptry no longer flags them as declared-but-not-imported. Bench extras (nltk, tiktoken, datasets, huggingface_hub) stay in `[project.optional-dependencies.benchmarks]` because `pip install -e .[benchmarks]` is a documented contract (benchmarks/README.md). Their DEP002 ignores remain. Closes #328 (dev portion). Bench portion is intentionally deferred: the publishable extras contract precludes moving those into a dep group. Refs #325.
Followup to the deps reorg in the previous commit. The `dev` optional-extras block is gone; CI installs dev tooling via `--group dev` instead of `--extra dev`. Refs #328.
Reviewer's guide (collapsed on small PRs)Reviewer's GuideMigrates dev test/tooling dependencies from an optional dependency extra to a PEP 735 dependency group and updates deptry configuration and CI workflows to use the new dev group-based install strategy. File-Level Changes
Assessment against linked issues
Tips and commandsInteracting with Sourcery
Customizing Your ExperienceAccess your dashboard to:
Getting Help
|
|
Warning Rate limit exceeded
To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Review rate limit: 0/1 reviews remaining, refill in 57 minutes and 27 seconds.Comment |
|
[claim:review:Gylf:2026-05-01T15:51:20Z] |
|
[release:review:Gylf:2026-05-01T15:53:34Z] |
Summary
Closes the dev portion of #328: moves
pytest,pytest-timeout,pyrightfrom[project.optional-dependencies.dev]into[dependency-groups.dev](PEP 735), drops their DEP002 deptry ignores, and updates CI workflows (ci.yml,mutation.yml,publish.yml) to install via--group devinstead of--extra dev.Why
deptry was flagging dev tooling as DEP002 (declared-but-not-imported) because optional extras count as "project dependencies" from deptry's perspective. PEP 735 dependency groups don't, so the ignores can go.
Bench portion deferred
#328 also asked to move
nltk/tiktoken/datasets/huggingface_hubto a[dependency-groups.bench]group. Skipped:pip install -e ".[benchmarks]"is a documented contract (benchmarks/README.md), and PEP 735 dep groups are not publishable extras. Their DEP002 ignores stay; comment in[tool.deptry.per_rule_ignores]now explains why. Filed as a comment on #328 — the issue stays open or gets rescoped.Verification
uv lockregenerated.uv sync --frozen --group dev --extra archiveinstalls cleanly.uvx deptry src(CI invocation) → "Success! No dependency issues found."Closes #328 (dev portion).
Summary by Sourcery
Move development tooling dependencies to a PEP 735 dependency group and update CI to install from that group instead of an optional extra.
Enhancements:
[dependency-groups.dev]group.CI:
uv sync --group devinstead of--extra dev.