Conversation
There was a problem hiding this comment.
Pull request overview
This PR continues the repo-wide move away from tox by removing tox-based CI scripts/variables and switching remaining usage to azpysdk-based check execution.
Changes:
- Replaces tox invocations/variables in pipeline templates with
azpysdk/checksterminology (e.g.,ToxTestEnv→CheckEnv,toxenv→checks). - Deletes legacy tox dispatch/harness scripts and removes related helper logic.
- Removes
toxfrom tooling requirement files and theazure-sdk-toolsoptional dependency list.
Reviewed changes
Copilot reviewed 23 out of 23 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| sdk/cosmos/cosmos-staging.yml | Switches Cosmos staging job from tox to azpysdk whl. |
| scripts/devops_tasks/tox_harness.py | Deletes legacy tox harness implementation. |
| scripts/devops_tasks/dispatch_tox.py | Deletes legacy tox dispatch entrypoint. |
| eng/tools/azure-sdk-tools/pyproject.toml | Removes tox from the sdkgenerator extra. |
| eng/tools/azure-sdk-tools/packaging_tools/package_utils.py | Updates breaking-change invocation to use azpysdk. |
| eng/tools/azure-sdk-tools/gh_tools/vnext_issue_creator.py | Updates issue template instructions from tox to azpysdk. |
| eng/tools/azure-sdk-tools/ci_tools/environment_exclusions.py | Removes tox-environment filtering helper tied to the deleted harness. |
| eng/scripts/set_checks.py | Renames “tox env” handling to “checks” and updates output variable name. |
| eng/scripts/invoke-tox-parallel.ps1 | Deletes legacy tox parallel dispatcher script. |
| eng/regression_tools.txt | Removes tox pin from regression tooling requirements. |
| eng/ci_tools.txt | Removes tox pin from CI tooling requirements. |
| eng/pipelines/templates/steps/run_pyright.yml | Removes TOX-specific env overrides from pyright step. |
| eng/pipelines/templates/steps/run_pylint.yml | Removes TOX-specific env overrides from pylint step. |
| eng/pipelines/templates/steps/run_mypy.yml | Removes TOX-specific env overrides from mypy step. |
| eng/pipelines/templates/steps/run_breaking_changes.yml | Removes TOX-specific env overrides from breaking-changes step. |
| eng/pipelines/templates/steps/run_black.yml | Removes TOX-specific env overrides from black step. |
| eng/pipelines/templates/steps/run_bandit.yml | Removes TOX-specific env overrides from bandit step. |
| eng/pipelines/templates/steps/build-test.yml | Renames parameter ToxTestEnv → CheckEnv and uses --checks accordingly. |
| eng/pipelines/templates/steps/build-extended-artifacts.yml | Removes TOX-specific env overrides from docs build step. |
| eng/pipelines/templates/steps/analyze.yml | Removes TOX-specific env overrides from analysis steps. |
| eng/pipelines/templates/stages/archetype-sdk-tests.yml | Renames stage parameter ToxTestEnv → CheckEnv. |
| eng/pipelines/templates/jobs/live.tests.yml | Renames job parameter ToxTestEnv → CheckEnv. |
| eng/pipelines/templates/jobs/ci.tests.yml | Wires CheckEnv from $(checks) instead of $(toxenv). |
Comments suppressed due to low confidence (1)
scripts/devops_tasks/dispatch_tox.py:1
- This script is being deleted, but there are still pipeline definitions in the repo that invoke
scripts/devops_tasks/dispatch_tox.py(e.g.,eng/pipelines/generate-all-docs.yml,eng/pipelines/templates/jobs/tests-nightly-python.yml, andeng/pipelines/templates/steps/release-candidate-steps.yml). Removing it without updating/removing those callers will break those pipelines. Either update those pipelines to useeng/scripts/dispatch_checks.py/azpysdk, or keep a small compatibility shim that forwards to the new entrypoint.
You can also share your feedback on Copilot code review. Take the survey.
| script: >- | ||
| cd ./sdk/cosmos/azure-cosmos | ||
| pip install tox==4.5.0 | ||
| tox -c ../../../eng/tox/tox.ini --root . -e whl -- -k 'not cosmosEmulator and not cosmosMultiRegion and not cosmosCircuitBreaker and not cosmosCircuitBreakerMultiRegion' | ||
| azpysdk whl --pytest-args -k 'not cosmosEmulator and not cosmosMultiRegion and not cosmosCircuitBreaker and not cosmosCircuitBreakerMultiRegion' | ||
| env: |
There was a problem hiding this comment.
I don't actually know where this yml file is used
| def change_log_new(package_folder: str, lastest_pypi_version: bool) -> str: | ||
| os.chdir(package_folder) | ||
| cmd = f"{sys.executable} -m tox run -c ../../../eng/tox/tox.ini --root . -e breaking -- --changelog " | ||
| cmd = "azpysdk breaking --changelog" | ||
| if lastest_pypi_version: | ||
| cmd += "--latest-pypi-version" | ||
| cmd += " --latest-pypi-version" | ||
| try: |
There was a problem hiding this comment.
I wasn't sure about this but it def can't be invoked as <executable> -m azpysdk bc it's not a module
| conda = ["beautifulsoup4"] | ||
| systemperf = ["aiohttp>=3.0", "requests>=2.0", "tornado==6.0.3", "httpx>=0.21", "azure-core"] | ||
| ghtools = ["GitPython", "PyGithub>=1.59.0", "requests>=2.0"] | ||
| sdkgenerator = ["tox"] |
There was a problem hiding this comment.
I agree with this. Plox double check through the whole repo to ensure this isn't used by a management script though. CC @msyyc for FYI.
| pip install tox==4.5.0 | ||
| tox -c ../../../eng/tox/tox.ini --root . -e whl -- -k 'not cosmosEmulator and not cosmosMultiRegion and not cosmosCircuitBreaker and not cosmosCircuitBreakerMultiRegion' | ||
| azpysdk whl --pytest-args -k 'not cosmosEmulator and not cosmosMultiRegion and not cosmosCircuitBreaker and not cosmosCircuitBreakerMultiRegion' |
There was a problem hiding this comment.
The fact that tox wasn't installed before makes me think that we never installed eng/ci_tools.txt earlier in whatever is calling this. That means that azpysdk won't be present either.
scbedd
left a comment
There was a problem hiding this comment.
Have a couple questions. Looks great otherwise.
Related to #42858
usages of tox addressed:
filter_tox_environment_stringfunction fromenvironment_exclusions.pyci_tools.txtregression_tools.txttodo in a separate PR
extend_skip_globin 3 pyproject.tomlseng/toxfolderpipeline check