Skip to content

Pre-release 0.2.11b1: decouple extension metadata from wheel==0.30.0#549

Open
aryasadeghi1 wants to merge 4 commits into
Azure:devfrom
aryasadeghi1:upgrade_setuptools_wheel_decouple
Open

Pre-release 0.2.11b1: decouple extension metadata from wheel==0.30.0#549
aryasadeghi1 wants to merge 4 commits into
Azure:devfrom
aryasadeghi1:upgrade_setuptools_wheel_decouple

Conversation

@aryasadeghi1
Copy link
Copy Markdown
Member

Summary

Replaces the legacy wheel==0.30.0 metadata.json read path with pkginfo-based METADATA parsing, so the Azure CLI ecosystem can move off the wheel==0.30.0 and setuptools==70.0.0 pins.

Impacts

Approach

Picks up from #521 (thanks @wangzelin007), but per @jiasli's review comment the implementation now uses pkginfo.Wheel instead of vendoring wheel 0.30.0 internals.

  • New module azdev/operations/extensions/metadata.py with pkginfo_to_dict and merge_to_index_metadata.
  • get_ext_metadata in util.py now reads METADATA via pkginfo and merges azext-only keys on top, eliminating the dependency on the legacy metadata.json artifact (no longer emitted by modern wheel).
  • setup.py: drops wheel==0.30.0 and setuptools==70.0.0; adds pkginfo and setuptools>=78.1.1,<80 (upper bound preserves setup.py develop for unmigrated extensions).
  • Bumps version to 0.2.11b1 (pre-release) so we can validate before promoting to 0.2.11 (release).

Tests

azdev/operations/tests/test_metadata.py:

  • Unit tests for pkginfo_to_dict, merge_to_index_metadata, _coerce_run_requires (handling metadata duplication), and the azext-override precedence.
  • Golden-comparison test (ported from Pre-release: extract metadata generation logic and decouple from wheel 0.30.0 #521): downloads the real azure_cli_ml-1.41.0 wheel and DeepDiffs the generated metadata against the historical index.json block. Fields that wheel 0.30.0 only ever emitted via its side-channel metadata.json. Test skips on network failure.

Supersedes #521.
Closes #521.

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.

1 participant