Skip to content

Centralize development dependencies in pyproject.toml groups - #334

Open
andystaples wants to merge 2 commits into
mainfrom
andystaples-dependency-groups
Open

andystaples wants to merge 2 commits into
mainfrom
andystaples-dependency-groups

Conversation

@andystaples

Copy link
Copy Markdown
Contributor

Summary

Move repository development and CI tooling from the root requirements files and hard-coded install lists into PEP 735 [dependency-groups] in the root pyproject.toml.

  • Share the test group between Nox sessions and the official build so new test dependencies do not require a separate pipeline update.
  • Define focused groups for linting, type checking, builds, protobuf generation, Nox, example validation, and Functions E2E tests, plus an aggregate dev group.
  • Update GitHub Actions, the official pipeline, Makefile, and contributor documentation to use the groups with pip 25.1 or later.

Runtime dependencies and public extras remain in package metadata. The official build continues to resolve SDK runtime dependencies from built wheels rather than a preinstalled development environment. Sample and Function app requirements files remain unchanged.

Relates to #333.

Share test tooling between Nox and the official pipeline while preserving runtime dependency resolution from built wheels.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI balanced review requested due to automatic review settings November 2, 2026 21:20

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

🟢 Approval recommended

No active review issues were identified for the consolidation of development and CI tooling into shared dependency groups.

No open issues 🎉

What changed in this PR

Centralizes development and CI tooling in root pyproject.toml dependency groups, reducing dependency drift between local checks and the official build. Runtime dependencies remain in package metadata and are resolved from built wheels in official CI.

Changes:

  • Adds focused tooling groups and an aggregate dev group, replacing root requirements files.
  • Updates Nox, GitHub Actions, the official pipeline, and Makefile to use groups with pip 25.1 or later.
  • Updates contributor documentation while leaving sample and Function app requirements unchanged.
File Description
requirements.txt Removes the legacy development dependency list.
pyproject.toml Defines shared development and CI dependency groups.
noxfile.py Installs session tooling through shared groups.
Makefile Uses the dev group and editable package installs.
eng/​templates/​build.yml Uses shared build, lint, and test groups while preserving wheel-based runtime validation.
docs/​development.md Documents group-based setup and dependency ownership.
dev-requirements.txt Removes the legacy tooling dependency list.
.github/​workflows/​typecheck.yml Installs Nox through its dependency group.
.github/​workflows/​durabletask.yml Updates core CI to group-based Nox installation.
.github/​workflows/​durabletask-azuremanaged.yml Updates Azure Managed CI to group-based Nox installation.
.github/​workflows/​durabletask-azurefunctions.yml Updates Functions CI to group-based Nox installation.
.github/​copilot-instructions.md Updates tooling installation guidance and dependency references.

Review effort: Balanced

Resolve shared groups through nox.project helpers instead of upgrading pip in each session. Require the Nox release that introduced the group helper.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
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.

2 participants