Conversation
c705df2 to
4158f64
Compare
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #960 +/- ##
==========================================
- Coverage 86.63% 80.43% -6.20%
==========================================
Files 84 136 +52
Lines 4473 12589 +8116
==========================================
+ Hits 3875 10126 +6251
- Misses 598 2463 +1865 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository’s Python packaging and CI/dev workflows from tox + setup.cfg/requirements files to a uv-managed workspace driven by pyproject.toml, updating docs and GitHub Actions accordingly.
Changes:
- Replace
tox/dev-requirements.txt/mypy.ini/setup.cfgwithpyproject.toml(PEP 621 + dependency groups + mypy/ruff config) and auvworkspace. - Add per-extension
pyproject.tomlfiles and adjust extensionsetup.pyscripts for dev vs release publishing. - Update CI workflows and docs to use
uv sync/uv run(including example validation via mechanical-markdown).
Reviewed changes
Copilot reviewed 32 out of 33 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| tox.ini | Removed tox-based env orchestration. |
| setup.py | Stops declaring py.typed via package_data (moved to pyproject.toml). |
| setup.cfg | Removed legacy setuptools metadata/deps (moved to pyproject.toml). |
| pyproject.toml | Adds project metadata/deps, uv workspace + dependency groups, ruff + mypy config. |
| mypy.ini | Removed mypy config file (moved to pyproject.toml). |
| ext/flask_dapr/setup.py | Removes setup.cfg parsing; introduces hard-coded stable_requires + dev overrides. |
| ext/flask_dapr/setup.cfg | Removed legacy extension metadata/deps. |
| ext/flask_dapr/pyproject.toml | New PEP 621 metadata/deps for flask extension + uv workspace source. |
| ext/dapr-ext-workflow/setup.py | Same migration pattern for workflow extension. |
| ext/dapr-ext-workflow/setup.cfg | Removed legacy extension metadata/deps. |
| ext/dapr-ext-workflow/pyproject.toml | New PEP 621 metadata/deps for workflow extension + uv workspace source. |
| ext/dapr-ext-strands/setup.py | Same migration pattern for strands extension. |
| ext/dapr-ext-strands/setup.cfg | Removed legacy extension metadata/deps. |
| ext/dapr-ext-strands/pyproject.toml | New PEP 621 metadata/deps for strands extension + uv workspace source. |
| ext/dapr-ext-langgraph/setup.py | Same migration pattern for langgraph extension. |
| ext/dapr-ext-langgraph/setup.cfg | Removed legacy extension metadata/deps. |
| ext/dapr-ext-langgraph/pyproject.toml | New PEP 621 metadata/deps for langgraph extension + uv workspace source. |
| ext/dapr-ext-grpc/setup.py | Same migration pattern for grpc extension. |
| ext/dapr-ext-grpc/setup.cfg | Removed legacy extension metadata/deps. |
| ext/dapr-ext-grpc/pyproject.toml | New PEP 621 metadata/deps for grpc extension + uv workspace source. |
| ext/dapr-ext-fastapi/setup.py | Same migration pattern for fastapi extension. |
| ext/dapr-ext-fastapi/setup.cfg | Removed legacy extension metadata/deps. |
| ext/dapr-ext-fastapi/pyproject.toml | New PEP 621 metadata/deps for fastapi extension + uv workspace source. |
| examples/validate.sh | Runs mechanical-markdown via uv run. |
| dev-requirements.txt | Removed (replaced by dependency groups in pyproject.toml). |
| README.md | Updates dev instructions to uv-based workflow. |
| AGENTS.md | Updates repo contributor instructions to uv-based workflow. |
| .github/workflows/validate_examples.yaml | Uses uv to install deps and runs examples/validate.sh directly. |
| .github/workflows/build.yaml | Uses uv for lint/typecheck/tests. |
| .github/workflows/build-tag.yaml | Uses uv for lint/typecheck/tests; removes tox install in publish env. |
| .github/workflows/build-push-to-main.yaml | Uses uv for lint/typecheck/tests; removes tox install in publish env. |
| .codecov.yml | Updates ignored environment directory from .tox to .venv. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
a3ff39d to
4f777db
Compare
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository’s packaging, dependency management, and CI/test execution from tox/setup.cfg/dev-requirements.txt to a uv + pyproject.toml-driven workflow, including converting each extension into a uv workspace member with its own pyproject.toml.
Changes:
- Replace
setup.cfg/mypy.ini/dev-requirements.txt/tox.iniwithpyproject.tomlconfiguration and uv dependency groups/workspace. - Update GitHub Actions workflows to install dependencies via
uv syncand run lint/typecheck/tests/examples viauv run. - Add
pyproject.tomlfiles for extensions and adjust extensionsetup.pylogic for dev builds.
Reviewed changes
Copilot reviewed 32 out of 33 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| tox.ini | Removed tox-based env orchestration (lint/typecheck/tests/examples/docs). |
| setup.py | Drops explicit package_data in favor of pyproject.toml setuptools config. |
| setup.cfg | Removed; metadata/deps moved to pyproject.toml. |
| pyproject.toml | Adds PEP 621 project metadata, setuptools config, uv workspace + dependency groups, and mypy config. |
| mypy.ini | Removed; configuration moved under [tool.mypy] in pyproject.toml. |
| dev-requirements.txt | Removed; replaced by uv dependency groups. |
| examples/validate.sh | Runs mechanical-markdown via uv run --group examples. |
| README.md | Updates local dev/test/typecheck/examples/docs instructions to use uv. |
| AGENTS.md | Updates contributor guidance for uv workspace, commands, and CI references. |
| .github/workflows/validate_examples.yaml | Switches example validation to uv sync and direct ./validate.sh invocations. |
| .github/workflows/build.yaml | Migrates lint/typecheck/tests to uv-driven commands. |
| .github/workflows/build-tag.yaml | Migrates lint/typecheck/tests to uv-driven commands; publish step still uses setup.py. |
| .github/workflows/build-push-to-main.yaml | Migrates lint/typecheck/tests to uv-driven commands; publish step still uses setup.py. |
| .codecov.yml | Updates ignored env dir from .tox to .venv. |
| ext/*/setup.py | Removes setup.cfg parsing; adjusts dev install requirements handling. |
| ext/*/setup.cfg | Removed; replaced by extension pyproject.toml. |
| ext/*/pyproject.toml | Adds PEP 621 metadata/deps and setuptools config per extension. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
8502379 to
483f1ef
Compare
There was a problem hiding this comment.
Pull request overview
Migrates the repository’s Python packaging and developer workflow from tox/setup.cfg/dev-requirements to a uv + pyproject.toml-driven setup, and updates CI/docs to match.
Changes:
- Move core package metadata/dependencies into
pyproject.toml(PEP 621) and define a uv workspace + dependency groups. - Remove legacy tooling/config (
tox.ini,setup.cfg,mypy.ini,dev-requirements.txt) and update docs/scripts to run viauv. - Update GitHub Actions workflows to install uv, sync dependency groups, and run tests/examples without tox.
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
tox.ini |
Removed legacy tox-based orchestration. |
setup.cfg |
Removed core package metadata/dependency source (migrated to pyproject.toml). |
setup.py |
Keeps dev-version suffix behavior; removed package_data argument. |
pyproject.toml |
Adds PEP 621 project metadata, setuptools config, uv workspace/groups, and mypy config. |
mypy.ini |
Removed; mypy config moved into pyproject.toml. |
dev-requirements.txt |
Removed; dev deps moved into uv dependency groups. |
examples/validate.sh |
Runs mechanical-markdown via uv run --group examples. |
README.md |
Updates contributor commands to use uv instead of tox/pip. |
AGENTS.md |
Updates agent/developer guidance to uv + pyproject-based workflow. |
.github/workflows/build.yaml |
CI now installs uv, syncs groups, runs ruff/mypy/tests via uv. |
.github/workflows/build-tag.yaml |
Same CI migration for tag builds; publish job still uses python setup.py .... |
.github/workflows/build-push-to-main.yaml |
Same CI migration for main branch; publish job still uses python setup.py .... |
.github/workflows/validate_examples.yaml |
Uses uv to install deps and runs example validation without tox. |
.codecov.yml |
Updates ignore path from .tox to .venv. |
ext/*/setup.cfg |
Removed extension metadata/dependency sources (migrated to per-extension pyproject.toml). |
ext/*/setup.py |
Reworked to compute dev name/version and rewrite dapr→dapr-dev for dev builds. |
ext/*/pyproject.toml |
New per-extension package metadata/dependencies + workspace source mapping. |
ext/dapr-ext-workflow/AGENTS.md / examples/AGENTS.md |
Documentation cleanups related to examples/workflow guidance. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
ca71a28 to
924ed1f
Compare
There was a problem hiding this comment.
Pull request overview
This PR migrates the repository from tox/setup.cfg-driven workflows to a uv + pyproject.toml (PEP 621) setup, updating CI and contributor docs accordingly.
Changes:
- Move core + extension package metadata/dependencies into
pyproject.tomlfiles and deletesetup.cfg/mypy.ini/dev-requirements.txt/tox.ini. - Update GitHub Actions workflows to install via
uv syncand run lint/typecheck/tests/examples viauv run. - Update contributor documentation and example validation scripts to use
uv.
Reviewed changes
Copilot reviewed 34 out of 35 changed files in this pull request and generated 16 comments.
Show a summary per file
| File | Description |
|---|---|
| tox.ini | Removed tox-based test/lint/typecheck/examples orchestration. |
| setup.py | Simplified core setup script; relies on pyproject for metadata; removed package_data. |
| setup.cfg | Removed legacy core package metadata/deps config. |
| pyproject.toml | Added PEP 621 project metadata, dependencies, setuptools config, uv workspace/groups, ruff+mypy config. |
| mypy.ini | Removed legacy mypy config (now in pyproject.toml). |
| ext/flask_dapr/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/flask_dapr/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/flask_dapr/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| ext/dapr-ext-workflow/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/dapr-ext-workflow/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/dapr-ext-workflow/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| ext/dapr-ext-workflow/AGENTS.md | Updated docs to reference pyproject.toml instead of setup.cfg. |
| ext/dapr-ext-strands/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/dapr-ext-strands/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/dapr-ext-strands/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| ext/dapr-ext-langgraph/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/dapr-ext-langgraph/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/dapr-ext-langgraph/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| ext/dapr-ext-grpc/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/dapr-ext-grpc/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/dapr-ext-grpc/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| ext/dapr-ext-fastapi/setup.py | Stop reading deps from setup.cfg; hardcode deps and dev dapr-dev rewrite logic. |
| ext/dapr-ext-fastapi/setup.cfg | Removed legacy extension metadata/deps config. |
| ext/dapr-ext-fastapi/pyproject.toml | Added extension PEP 621 metadata + deps + setuptools config + uv workspace source. |
| examples/validate.sh | Run mechanical-markdown via uv run --group examples. |
| examples/AGENTS.md | Updated example-running guidance to reflect CI workflow (not tox). |
| dev-requirements.txt | Removed legacy dev dependency list (moved to uv dependency group). |
| README.md | Updated build/test/docs instructions to use uv commands. |
| AGENTS.md | Updated repo contributor guide to use uv and pyproject-based tooling. |
| .github/workflows/validate_examples.yaml | Switched examples CI job from tox to uv sync + direct validate.sh calls. |
| .github/workflows/build.yaml | Switched CI to uv sync + uv run for ruff/mypy/tests/coverage. |
| .github/workflows/build-tag.yaml | Switched CI to uv; publish now uses python -m build (PEP 517). |
| .github/workflows/build-push-to-main.yaml | Switched CI to uv; publish now uses python -m build (PEP 517). |
| .codecov.yml | Update ignored env directory from .tox to .venv. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
02c4da1 to
75f185b
Compare
Signed-off-by: Albert Callarisa <albert@diagrid.io>
There was a problem hiding this comment.
Pull request overview
Migrates the Python SDK repo (core + extensions + CI/docs) from tox/setup.cfg-centric workflows to a uv + pyproject.toml-driven workflow, consolidating packaging metadata, dev dependency management, and CI commands around uv.
Changes:
- Replace
setup.cfg/dev-requirements.txt/tox.ini/mypy.iniwithpyproject.toml(core + extensions) and uv dependency groups. - Update CI workflows to install/run tooling via
uv sync/uv run, and update release builds to usepython -m build(tag workflow). - Update docs and example validation to use
uv-based commands.
Reviewed changes
Copilot reviewed 40 out of 41 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tox.ini |
Removes tox-based test/lint/type/example orchestration. |
setup.cfg |
Removes legacy core package metadata/dependency definition (moved to pyproject.toml). |
setup.py |
Drops explicit package_data in favor of pyproject.toml setuptools config. |
pyproject.toml |
Adds PEP 621 metadata, setuptools config, uv workspace + dependency groups, and mypy config. |
mypy.ini |
Removes standalone mypy config (moved to pyproject.toml). |
dev-requirements.txt |
Removes pip requirements file (replaced by uv dependency groups). |
examples/validate.sh |
Switches example validation to uv run --group examples and adds argument guard. |
examples/AGENTS.md |
Updates example-running guidance to reflect uv/CI workflow changes. |
README.md |
Updates contributor “build and test” instructions to use uv instead of virtualenv/tox. |
AGENTS.md |
Updates repo contributor guidance for uv sync/run, mypy/ruff, examples, and key files list. |
.devcontainer/postCreateCommand.sh |
Uses uv sync for devcontainer setup. |
.codecov.yml |
Updates ignored environment directory from .tox to .venv. |
.github/workflows/build.yaml |
Migrates lint/type/tests to uv sync + uv run commands. |
.github/workflows/validate_examples.yaml |
Migrates example validation from tox to uv sync + ./validate.sh … list. |
.github/workflows/build-tag.yaml |
Migrates CI to uv and switches publish builds to python -m build. |
.github/workflows/build-push-to-main.yaml |
Migrates lint/build steps to uv; publish job still uses legacy setup.py sdist bdist_wheel. |
ext/flask_dapr/setup.py |
Reads deps from extension pyproject.toml, rewrites dapr dependency for dev builds. |
ext/flask_dapr/setup.cfg |
Removes legacy extension metadata/deps (moved to pyproject.toml). |
ext/flask_dapr/pyproject.toml |
Adds extension package metadata/deps + uv workspace source. |
ext/flask_dapr/AGENTS.md |
Updates extension structure docs to reference pyproject.toml. |
ext/dapr-ext-workflow/setup.py |
Same migration pattern: deps from pyproject.toml, dev rewrite for dapr dependency. |
ext/dapr-ext-workflow/setup.cfg |
Removes legacy extension metadata/deps. |
ext/dapr-ext-workflow/pyproject.toml |
Adds extension metadata/deps + uv workspace source. |
ext/dapr-ext-workflow/AGENTS.md |
Updates docs to reference pyproject.toml and removes legacy example references. |
ext/dapr-ext-grpc/setup.py |
Same migration pattern for grpc extension. |
ext/dapr-ext-grpc/setup.cfg |
Removes legacy extension metadata/deps. |
ext/dapr-ext-grpc/pyproject.toml |
Adds extension metadata/deps + uv workspace source. |
ext/dapr-ext-grpc/AGENTS.md |
Updates extension structure docs to reference pyproject.toml. |
ext/dapr-ext-fastapi/setup.py |
Same migration pattern for fastapi extension. |
ext/dapr-ext-fastapi/setup.cfg |
Removes legacy extension metadata/deps. |
ext/dapr-ext-fastapi/pyproject.toml |
Adds extension metadata/deps + uv workspace source. |
ext/dapr-ext-fastapi/AGENTS.md |
Updates extension structure docs to reference pyproject.toml. |
ext/dapr-ext-langgraph/setup.py |
Same migration pattern for langgraph extension. |
ext/dapr-ext-langgraph/setup.cfg |
Removes legacy extension metadata/deps. |
ext/dapr-ext-langgraph/pyproject.toml |
Adds extension metadata/deps + uv workspace source. |
ext/dapr-ext-langgraph/AGENTS.md |
Updates extension structure docs to reference pyproject.toml. |
ext/dapr-ext-strands/setup.py |
Same migration pattern for strands extension. |
ext/dapr-ext-strands/setup.cfg |
Removes legacy extension metadata/deps. |
ext/dapr-ext-strands/pyproject.toml |
Adds extension metadata/deps + uv workspace source. |
ext/dapr-ext-strands/AGENTS.md |
Updates extension structure docs to reference pyproject.toml. |
Comments suppressed due to low confidence (1)
.github/workflows/build-push-to-main.yaml:86
- The
publishjob is still building artifacts via legacypython setup.py sdist bdist_wheel. Since this PR removessetup.cfgand moves package metadata/dependencies intopyproject.toml, the legacy setup.py path risks producing incomplete/incorrect distributions (e.g., missing packages/dependencies) depending on how setuptools interprets pyproject config. Align this workflow withbuild-tag.yamlby usingpython -m build(and installing thebuildpackage) for the core SDK and each extension, so the build consistently consumespyproject.tomlmetadata.
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install setuptools wheel packaging twine tomli
- name: Build and publish Dapr Python SDK
env:
TWINE_PASSWORD: ${{ secrets.PYPI_UPLOAD_PASS }}
run: |
python setup.py sdist bdist_wheel
twine upload dist/*
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Albert Callarisa <albert@diagrid.io>
Signed-off-by: Albert Callarisa <albert@diagrid.io>
Signed-off-by: Albert Callarisa <albert@diagrid.io>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 40 out of 41 changed files in this pull request and generated 10 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Signed-off-by: Albert Callarisa <albert@diagrid.io>
sicoyle
left a comment
There was a problem hiding this comment.
few comments so far - thank you bc this will be a great improvement 🙌
| import os | ||
| import sys | ||
|
|
||
| if sys.version_info >= (3, 11): |
There was a problem hiding this comment.
i see python 3.10 supported elsewhere... so pls add 3.10 here
There was a problem hiding this comment.
3.10 is supported in the else. For 3.11+ we use the stdlib, but for 3.10 we use tomli
| Source = "https://github.com/dapr/python-sdk" | ||
|
|
||
| [build-system] | ||
| requires = ["setuptools>=61.0", "wheel", "packaging", "tomli; python_version < '3.11'"] |
There was a problem hiding this comment.
is this resolved? We support down to 3.10... so why is this 3.11?
There was a problem hiding this comment.
tomli is only added as an external dependency in 3.10 because it was added to the stdlib in 3.11. That's why the dependency has this condition, as well as the imports.
Signed-off-by: Albert Callarisa <albert@diagrid.io>
Signed-off-by: Albert Callarisa <albert@diagrid.io>
| "Programming Language :: Python :: 3.14", | ||
| ] | ||
| dependencies = [ | ||
| "dapr>=1.17.0", |
There was a problem hiding this comment.
| "dapr>=1.17.0", | |
| "dapr>=1.17.4", |
There was a problem hiding this comment.
| "Programming Language :: Python :: 3.14", | ||
| ] | ||
| dependencies = [ | ||
| "dapr>=1.17.0", |
There was a problem hiding this comment.
| "dapr>=1.17.0", | |
| "dapr>=1.17.4", |
| Source = "https://github.com/dapr/python-sdk" | ||
|
|
||
| [build-system] | ||
| requires = ["setuptools>=61.0", "wheel", "packaging", "tomli; python_version < '3.11'"] |
There was a problem hiding this comment.
is this resolved? We support down to 3.10... so why is this 3.11?
| import os | ||
| import sys | ||
|
|
||
| if sys.version_info >= (3, 11): |
There was a problem hiding this comment.
isnt this supposed to be 3.10 as lowest?
Summary
tox.ini,setup.cfg,mypy.ini, anddev-requirements.txtwithpyproject.toml(PEP 621) and auvworkspacepyproject.tomlfiles with[tool.uv.sources]workspace referencesuv sync --frozen/uv runfor lint, typecheck, tests, and example validationpython setup.py sdist bdist_wheelto PEP 517python -m builddapr-devdependency rewrite usingpackaging.requirements.Requirementinstead of fragilestartswithcheck$statusResult→"$statusResult")examples/validate.sh