-
Notifications
You must be signed in to change notification settings - Fork 3.1k
Open
Feature
0 / 50 of 5 issues completed
Copy link
Labels
EngSysThis issue is impacting the engineering system.This issue is impacting the engineering system.
Description
tox
offers some very nice features that we rely upon heavily for our CI and local testing:
- Bug-Free parallel invocation of tox environments within CI
- Central, easily-understood config format that enables devs to easily add new environments for various tasks.
But that's about all of the features that we utilize at this time. The actual sets of commands being invoked are transferrable to another format. This issue will serve as the index for this effort. We will utilize uv
for package management in this new world, but otherwise will not take an external dependency for the invocation framework.
Expected outcome experience
We have a fully documented and implemented check system that interacts properly with CI and local invocations.
A check invoked for a specific package:
/path/to/azure-sdk-for-python> uv pip install eng/tools/azure-sdk-tools
/path/to/azure-sdk-for-python> cd sdk/core/azure-core
/path/to/azure-sdk-for-python/sdk/core/azure-core> azpysdk sphinx
...<invoke equivalent of sphinx environment>
A check invoked for multiple packages:
/path/to/azure-sdk-for-python> uv pip install eng/tools/azure-sdk-tools
/path/to/azure-sdk-for-python> azsdk sphinx azure-storage*
...<invoke equivalent of sphinx environment on multiple packages below cwd matching glob>
Tasks
(In rough order of operations)
- Create
azpysdk
entrypoint - Settle upon venv creation solution for CI (where applicable)
scbedd
completed an original prototype of usinguv-script
(Prototypeuv
scripttox
replacement #41775), but we have decided not to take that dependency at this time. We are clear to utilizeuv
to install packages however.- We cannot take a hard dependency on
uv
, so we can only use it for package-management at this time.uv-script
is out, we need to devise our own entrypoint. - Conglomerated changes to optimize
venv
usage in pipeline #42486 updated our core pipelines to utilizeuv
while installing requirements before invoking CI. We can fallback topip
at any time.
- Based upon venv creation solution, modify or create a new
dispatch_tox
. Likely name thisdispatch_check
. It should be the entrypoint for anycheck
that CI utilizes. It should support all required arguments + requirement replacement that CI currently does. - Reduce
pip install requirement
duplication present across template calls withinanalyze.yml
. - Migrate initial 3 static dependency checks Table of initial tox checks #42616
- Migrate static analysis
tox
checks to new script methodology each of these should have the actual. All new checks should utilize thelogger
fromci_tools.logging
. An example migration will be shown in Bug :azure-ai-projects==1.2.0b1 will pointing to azure-ai-agents==1.1.0 latest version which is causing the Cannot import name "RequiredMcpToolCall" from "azure.ai.agents.models" #42381- pylint
- Check migrated
- Integrated in CI
- Reflected in dev doc
- mypy
- Check migrated
- Integrated in CI
- Reflected in dev doc
- sphinx
- Check migrated
- Integrated in CI
- Reflected in dev doc
- next-pylint
- Check migrated
- Integrated in CI
- Reflected in dev doc
- next-mypy
- Check migrated
- Integrated in CI
- Reflected in dev doc
- ruff
- Check migrated
- Integrated in CI
- Reflected in dev doc
- pyright
- Check migrated
- Integrated in CI
- Reflected in dev doc
- next-pyright
- Check migrated
- Integrated in CI
- Reflected in dev doc
- verifytypes
- Check migrated
- Integrated in CI
- Reflected in dev doc
- whl_no_aio
- Check migrated
- Integrated in CI
- Reflected in dev doc
- next-sphinx
- Check migrated
- Integrated in CI
- Reflected in dev doc
- depends
- Check migrated
- Integrated in CI
- Reflected in dev doc
- verifywhl
- Check migrated
- Integrated in CI
- Reflected in dev doc
- verifysdist
- Check migrated
- Integrated in CI
- Reflected in dev doc
- devtest
- Check migrated
- Integrated in CI
- Reflected in dev doc
- apistub
- Check migrated
- Integrated in CI
- Reflected in dev doc
- bandit
- Check migrated
- Integrated in CI
- Reflected in dev doc
- verify_keywords
- Check migrated
- Integrated in CI
- Reflected in dev doc
- Original
sdk_verify_keywords
entrypoint in azure-sdk-tools is removed
- breaking
- Check migrated
- Integrated in CI
- Reflected in dev doc
- black
- Check migrated
- Integrated in CI
- Reflected in dev doc
- generate
- Check migrated
- Integrated in CI
- Reflected in dev doc
- pylint
- Migrate checks that invoke tests (additional argument support, test result collection and publishing)
- latestdependency
- Check migrated
- Integrated in CI
- Reflected in dev doc
- mindependency
- Check migrated
- Integrated in CI
- Reflected in dev doc
- samples
- Check migrated
- Integrated in CI
- Reflected in dev doc
- optional
- Check migrated
- Integrated in CI
- Reflected in dev doc
- whl
- Check migrated
- Integrated in CI
- Reflected in dev doc
- sdist
- Check migrated
- Integrated in CI
- Reflected in dev doc
- develop
- Check migrated
- Integrated in CI
- Reflected in dev doc
- latestdependency
- Create centralized logging solution that all new checks + old code should migrate to depend upon
- Verify
test
publishing after each environment is updated. Ensure we don't lose testResults.xml outputs. - Verify that all arguments that are currently used to
dispatch_tox.py
are supported bydispatch_checks.py
. Identify any necessary missing support for test execution. - Verify
nightly alpha
versioning still works after the change of all test envs - Modify
azsdkcli
python language service to call into the new check style - Ensure dev-doc is updated Add Documentation on Tool Usage with UV #42858
- Add
copilot-instructions
that reflect usage methodology for the new checks, venv utilization, requirements installation, etc.
Sub-issues
Metadata
Metadata
Assignees
Labels
EngSysThis issue is impacting the engineering system.This issue is impacting the engineering system.
Type
Projects
Status
🐝 Dev