Skip to content

Fix GH Azdev Linter/Style CI: replace azdev extension add with legacy pip editable install#10077

Draft
william051200 with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-gh-azdev-linter
Draft

Fix GH Azdev Linter/Style CI: replace azdev extension add with legacy pip editable install#10077
william051200 with Copilot wants to merge 2 commits into
mainfrom
copilot/fix-gh-azdev-linter

Conversation

Copilot AI commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

azdev 0.2.12 introduced _PIP_EDITABLE_OPTS = "--config-settings editable_mode=compat --no-build-isolation" in add_extension(). With setuptools ≥ 64, this forces a PEP 517 editable install that writes dist-info only into site-packages — no egg-info in the source directory. azdev's get_path_table() scans source repo paths for *.*-info while explicitly excluding site-packages, so every extension becomes undetectable, and linting/style checks fail with:

ERROR: unrecognized modules: [ <ext-name> ]

This is a systemic regression affecting all extensions since azdev 0.2.12 was adopted.

Changes

  • .github/workflows/AzdevLinter.yml — Replace azdev extension add "${mod}" with pip install -e "src/${mod}" --no-build-isolation
  • .github/workflows/AzdevStyle.yml — Same fix; azdev style uses the same get_path_table() code path

Without --config-settings, pip falls back to legacy setup.py develop for setup.py-only packages, creating *.egg-info in the source directory where azdev can find it.


This checklist is used to make sure that common guidelines for a pull request are followed.

Related command

N/A — CI infrastructure fix only.

General Guidelines

  • Have you run azdev style <YOUR_EXT> locally? (pip install azdev required)
  • Have you run python scripts/ci/test_index.py -q locally? (pip install azdev required)
  • My extension version conforms to the Extension version schema

For new extensions:

About Extension Publish

There is a pipeline to automatically build, upload and publish extension wheels.
Once your pull request is merged into main branch, a new pull request will be created to update src/index.json automatically.
You only need to update the version information in file setup.py and historical information in file HISTORY.rst in your PR but do not modify src/index.json.

@azure-client-tools-bot-prd

azure-client-tools-bot-prd Bot commented Jul 6, 2026

Copy link
Copy Markdown
️✔️Azure CLI Extensions Breaking Change Test
️✔️Non Breaking Changes

@azure-client-tools-bot-prd

Copy link
Copy Markdown

Hi @copilot,
Please write the description of changes which can be perceived by customers into HISTORY.rst.
If you want to release a new extension version, please update the version in setup.py as well.

…fo in source

azdev 0.2.12 added `_PIP_EDITABLE_OPTS = "--config-settings editable_mode=compat
--no-build-isolation"` to its `add_extension()` function. With modern setuptools
(64+), this forces a PEP 517 editable install that writes dist-info only to
site-packages, not egg-info to the source directory.

azdev's `get_path_table()` finds extensions by scanning source repo paths for
`*.*-info` files while explicitly excluding site-packages, so extensions
installed via `azdev extension add` are no longer detected and linting fails
with "ERROR: unrecognized modules: [ <ext-name> ]".

Fix: replace `azdev extension add "${mod}"` with
`pip install -e "src/${mod}" --no-build-isolation` in both AzdevLinter.yml and
AzdevStyle.yml. Without `--config-settings`, pip uses the legacy `setup.py
develop` path for setup.py-only packages, creating egg-info in the source
directory where azdev can find it.
Copilot AI changed the title [WIP] Fix the failing GitHub Actions job GH Azdev Linter Fix GH Azdev Linter/Style CI: replace azdev extension add with legacy pip editable install Jul 6, 2026
Copilot AI requested a review from william051200 July 6, 2026 03:45
@yonzhan

yonzhan commented Jul 6, 2026

Copy link
Copy Markdown
Collaborator

Fix GH Azdev Linter/Style CI

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.

3 participants