Repository navigation
CI: azdev extension add silently no-ops (azdev 0.2.12) — fails Integration Tests / linter / style for all PRs #10074
Description
Activity
- addedbugThis issue requires a change to an existing behavior in the product in order to be resolved.This issue requires a change to an existing behavior in the product in order to be resolved.
on Jul 6, 2026 - changed the title
[-]CI: `azdev extension add` silently no-ops on azure-cli dev 2.88.0 — fails Integration Tests / linter / style for all PRs[/-][+]CI: `azdev extension add` silently no-ops (azdev 0.2.12) — fails Integration Tests / linter / style for all PRs[/+]on Jul 6, 2026 - addedAzure CLI TeamThe command of the issue is owned by Azure CLI teamThe command of the issue is owned by Azure CLI team
on Jul 6, 2026 CI
Previously
--no-build-isolationfixed the issue of requiringsetuptoolsbefore while installing azdev which caused error as it could not exist (azdev installs it during the setup). Moreover,azdev extension addrunspip install -e <ext> --config-settings editable_mode=compat --no-build-isolation.That command exits 0 and the extension is importable, but it no longer leaves a
*.egg-infoin the extension source tree. azdev discovers dev extensions by globbing*.egg-infounder the repo (_get_installed_dev_extensions), so it sees zero extensions, and the follow-upazdev extension removefails with extension(s) not installed. Nothing errors during the install, which is why it slipped through.But why?
the*.egg-infoin source was never an install artifact, it was a side effect of build isolation. This would only effect on azure-cli-extension and not azure-cliThe fix would be to ensure
.egg-infoexist by usingsetupcommand.Reacted by Ethan YangHello FumingZhang, could you please confirm that the new commit fixes the issue?
Thank you!I’ve re-queued the CI checks for #10071. Let's watch whether it goes through this time.
The issue seems to be resolved and the CI succeeded, are you happy for me to close this?
It looks like the azdev fix is working, but the CI runs in github action are still failing. Could you help sort those out as well?
Reacted by Ethan Yangthat should be fixed!
Reacted by FumingZhangcool, I've re-queued the CI for my PR. If all CI checks pass, I think we can close this issue. Thanks again for the fix.
No worries FumingZhang, keep me posted! Thank you
Describe the bug
The CI pipeline (
azclitools/public) is red for every PR that modifies any extension, regardless of the change. TheIntegration Tests, Build Tests(Python 3.10–3.14),azdev linter, andazdev stylejobs all fail becauseazdev extension add <ext>has become a silent no-op: it printsAdding extension '…', exits 0, but never actually registers/installs the extension.az extension listafterwards still shows onlyazure-devops, and azdev's discovery reports an emptyExtensions:set. As a result:azdev testfinds no tests ('azext_<ext>' not found. If newly added, re-run with --discover), andazdev extension remove <ext>fails withextension(s) not installed: <ext>(exit 1), failing the job.Reproduces on unrelated modules, so it is not caused by any PR's code:
aks-preview) — build 327693--markerand--show-next-markerfromsig image-definition list-communityandsig image-version list-community#10072 (image-gallery, a trivial module) — build 327696Both fail identically, at the same log line numbers.
Related command
azdev extension add,azdev test,azdev extension remove(run byscripts/ci/test_source.py)Errors
Issue script & Debug output
Failing step logs:
azdev setupbuilds the toolchain fresh each run:Expected behavior
azdev extension add <ext>installs/registers the extension so thatazdev testcan discover and run its tests andazdev extension remove <ext>succeeds — i.e. Integration Tests / linter / style pass for PRs that only modify extension code.Environment Summary
Additional context
Likely root cause:
azdev==0.2.12(released 2026-07-03, 3 days before these failures). The pipeline pinsazdev==0.2.12, and that version's only changelog entry touches the exact command that's failing:So
azdev extension add's editable-install path changed in 0.2.12 (now--no-build-isolation), which lines up exactly with the "printsAdding extension '…', exits 0, but never registers the extension" behavior. The previous released version (0.2.10; 0.2.11 was skipped on PyPI) did not touch this path.az --versionreportsazure-cli-core 2.88.0, so the CLI core itself looks fine — the regression aligns with the azdev bump rather than theazure-clidevbranch.PyPI: https://pypi.org/project/azdev/0.2.12/ (uploaded 2026-07-03)
Suggested next steps:
azdev==0.2.10to confirm/mitigate.--no-build-isolationinazdev extension addsilently fails the editable build (e.g. missing build backend / setuptools mismatch) and swallows the error (exit 0 despite no install).