azdev 0.2.12__tar.gz → 0.2.13__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. {azdev-0.2.12 → azdev-0.2.13}/HISTORY.rst +10 -4
  2. {azdev-0.2.12/azdev.egg-info → azdev-0.2.13}/PKG-INFO +12 -5
  3. {azdev-0.2.12 → azdev-0.2.13}/azdev/__init__.py +1 -1
  4. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/code_gen.py +2 -0
  5. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/extensions/__init__.py +25 -0
  6. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/setup.py +2 -1
  7. {azdev-0.2.12 → azdev-0.2.13/azdev.egg-info}/PKG-INFO +12 -5
  8. {azdev-0.2.12 → azdev-0.2.13}/azdev.egg-info/requires.txt +1 -0
  9. {azdev-0.2.12 → azdev-0.2.13}/setup.py +4 -0
  10. {azdev-0.2.12 → azdev-0.2.13}/LICENSE +0 -0
  11. {azdev-0.2.12 → azdev-0.2.13}/MANIFEST.in +0 -0
  12. {azdev-0.2.12 → azdev-0.2.13}/README.md +0 -0
  13. {azdev-0.2.12 → azdev-0.2.13}/README.rst +0 -0
  14. {azdev-0.2.12 → azdev-0.2.13}/azdev/__main__.py +0 -0
  15. {azdev-0.2.12 → azdev-0.2.13}/azdev/commands.py +0 -0
  16. {azdev-0.2.12 → azdev-0.2.13}/azdev/completer.py +0 -0
  17. {azdev-0.2.12 → azdev-0.2.13}/azdev/config/__init__.py +0 -0
  18. {azdev-0.2.12 → azdev-0.2.13}/azdev/config/cli.flake8 +0 -0
  19. {azdev-0.2.12 → azdev-0.2.13}/azdev/config/cli_pylintrc +0 -0
  20. {azdev-0.2.12 → azdev-0.2.13}/azdev/config/ext.flake8 +0 -0
  21. {azdev-0.2.12 → azdev-0.2.13}/azdev/config/ext_pylintrc +0 -0
  22. {azdev-0.2.12 → azdev-0.2.13}/azdev/help.py +0 -0
  23. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/HISTORY.rst +0 -0
  24. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/README.rst +0 -0
  25. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/_client_factory.py +0 -0
  26. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/_help.py +0 -0
  27. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/_params.py +0 -0
  28. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/_validators.py +0 -0
  29. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/azext_metadata.json +0 -0
  30. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/blank__init__.py +0 -0
  31. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/commands.py +0 -0
  32. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/custom.py +0 -0
  33. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/module__init__.py +0 -0
  34. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/pkg_declare__init__.py +0 -0
  35. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/setup.cfg +0 -0
  36. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/setup.py +0 -0
  37. {azdev-0.2.12 → azdev-0.2.13}/azdev/mod_templates/test_service_scenario.py +0 -0
  38. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/__init__.py +0 -0
  39. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/breaking_change/__init__.py +0 -0
  40. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/breaking_change/markdown_template.jinja2 +0 -0
  41. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/__init__.py +0 -0
  42. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/_macros.j2 +0 -0
  43. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/cmdcov.py +0 -0
  44. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/component.css +0 -0
  45. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/component.js +0 -0
  46. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/favicon.ico +0 -0
  47. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/index.j2 +0 -0
  48. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/index2.j2 +0 -0
  49. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/cmdcov/module.j2 +0 -0
  50. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/command_change/__init__.py +0 -0
  51. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/command_change/custom.py +0 -0
  52. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/command_change/util.py +0 -0
  53. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/constant.py +0 -0
  54. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/extensions/metadata.py +0 -0
  55. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/extensions/util.py +0 -0
  56. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/extensions/version_upgrade.py +0 -0
  57. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/help/__init__.py +0 -0
  58. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/help/refdoc/__init__.py +0 -0
  59. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/help/refdoc/conf.py +0 -0
  60. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/latest_index.py +0 -0
  61. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/legal.py +0 -0
  62. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/__init__.py +0 -0
  63. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/data/cmd_example_config.json +0 -0
  64. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/linter.py +0 -0
  65. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/pylint_checkers/__init__.py +0 -0
  66. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/pylint_checkers/show_command.py +0 -0
  67. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rule_decorators.py +0 -0
  68. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/__init__.py +0 -0
  69. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/ci_exclusions.yml +0 -0
  70. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/command_coverage_rules.py +0 -0
  71. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/command_group_rules.py +0 -0
  72. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/command_rules.py +0 -0
  73. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/help_rules.py +0 -0
  74. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/linter_exclusions.yml +0 -0
  75. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/rules/parameter_rules.py +0 -0
  76. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/linter/util.py +0 -0
  77. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/performance.py +0 -0
  78. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/pypi.py +0 -0
  79. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/python_sdk.py +0 -0
  80. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/regex.py +0 -0
  81. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/resource.py +0 -0
  82. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/secret.py +0 -0
  83. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/statistics/__init__.py +0 -0
  84. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/statistics/util.py +0 -0
  85. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/style.py +0 -0
  86. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/testtool/__init__.py +0 -0
  87. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/testtool/incremental_strategy.py +0 -0
  88. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/testtool/profile_context.py +0 -0
  89. {azdev-0.2.12 → azdev-0.2.13}/azdev/operations/testtool/pytest_runner.py +0 -0
  90. {azdev-0.2.12 → azdev-0.2.13}/azdev/params.py +0 -0
  91. {azdev-0.2.12 → azdev-0.2.13}/azdev/transformers.py +0 -0
  92. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/__init__.py +0 -0
  93. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/command.py +0 -0
  94. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/config.py +0 -0
  95. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/const.py +0 -0
  96. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/display.py +0 -0
  97. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/git_util.py +0 -0
  98. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/path.py +0 -0
  99. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/pypi.py +0 -0
  100. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/testing.py +0 -0
  101. {azdev-0.2.12 → azdev-0.2.13}/azdev/utilities/tools.py +0 -0
  102. {azdev-0.2.12 → azdev-0.2.13}/azdev.egg-info/SOURCES.txt +0 -0
  103. {azdev-0.2.12 → azdev-0.2.13}/azdev.egg-info/dependency_links.txt +0 -0
  104. {azdev-0.2.12 → azdev-0.2.13}/azdev.egg-info/entry_points.txt +0 -0
  105. {azdev-0.2.12 → azdev-0.2.13}/azdev.egg-info/top_level.txt +0 -0
  106. {azdev-0.2.12 → azdev-0.2.13}/pyproject.toml +0 -0
  107. {azdev-0.2.12 → azdev-0.2.13}/setup.cfg +0 -0
@@ -2,21 +2,27 @@
2
2
 
3
3
  Release History
4
4
  ===============
5
+ 0.2.13
6
+ ++++++
7
+ * `azdev extension add` / `azdev setup`: regenerate `*.egg-info` after the editable install so development extensions stay discoverable. `--no-build-isolation` (0.2.12) means pip no longer leaves an `*.egg-info` in the source tree, which made `azdev extension add` a silent no-op for discovery. (#554)
8
+ * `azdev extension build`: depend on `wheel` so `setup.py bdist_wheel` works even when the environment's `setuptools` predates the bundled `bdist_wheel` command (< 70.1). Modern, unpinned `wheel` for building only; does not restore the `wheel==0.30.0` metadata pin removed in 0.2.12b1.
9
+ * `azdev extension build`: surface the underlying `setup.py` output on build failure instead of re-raising an opaque `CalledProcessError`.
10
+
5
11
  0.2.12
6
12
  ++++++
7
- * Editable installs (``azdev setup``, ``azdev extension add``, code generation) now pass ``--no-build-isolation`` so wheels build against the environment's pinned ``setuptools`` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the ``setuptools`` pinning.
13
+ * Editable installs (`azdev setup`, `azdev extension add`, code generation) now pass `--no-build-isolation` so wheels build against the environment's pinned `setuptools` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the `setuptools` pinning.
8
14
 
9
15
  0.2.12b3
10
16
  ++++++++
11
- * ``azdev extension update-index``/``publish``: Fix ``ValueError: Not a known wheel archive format`` when reading wheel metadata. The wheel is now downloaded with its ``.whl`` filename so ``pkginfo.Wheel`` can read it, and ``read_pkginfo`` falls back to a temporary ``.whl`` copy for any non-``.whl`` path. (#7740)
17
+ * `azdev extension update-index`/`publish`: Fix `ValueError: Not a known wheel archive format` when reading wheel metadata. The wheel is now downloaded with its `.whl` filename so `pkginfo.Wheel` can read it, and `read_pkginfo` falls back to a temporary `.whl` copy for any non-`.whl` path. (#7740)
12
18
 
13
19
  0.2.12b2
14
20
  ++++++++
15
- * Quote paths when running editable installs (``pip install -e <path>``) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break ``azdev extension add``, ``azdev setup``, code generation, and ``azdev test``. (#550, #415)
21
+ * Quote paths when running editable installs (`pip install -e <path>`) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break `azdev extension add`, `azdev setup`, code generation, and `azdev test`. (#550, #415)
16
22
 
17
23
  0.2.12b1
18
24
  ++++++++
19
- * Extract extension metadata generation logic and decouple from ``wheel==0.30.0``; read wheel ``METADATA`` via ``pkginfo`` instead of the legacy ``metadata.json`` artifact. Drops the ``wheel==0.30.0`` and ``setuptools==70.0.0`` pins. (#521)
25
+ * Extract extension metadata generation logic and decouple from `wheel==0.30.0`; read wheel `METADATA` via `pkginfo` instead of the legacy `metadata.json` artifact. Drops the `wheel==0.30.0` and `setuptools==70.0.0` pins. (#521)
20
26
 
21
27
  0.2.11
22
28
  ++++++
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: azdev
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: Microsoft Azure CLI Developer Tools
5
5
  Home-page: https://github.com/Azure/azure-cli-dev-tools
6
6
  Author: Microsoft Corporation
@@ -41,6 +41,7 @@ Requires-Dist: packaging
41
41
  Requires-Dist: pkginfo
42
42
  Requires-Dist: tqdm
43
43
  Requires-Dist: setuptools<80,>=78.1.1
44
+ Requires-Dist: wheel
44
45
  Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b4
45
46
  Dynamic: author
46
47
  Dynamic: author-email
@@ -203,21 +204,27 @@ License
203
204
 
204
205
  Release History
205
206
  ===============
207
+ 0.2.13
208
+ ++++++
209
+ * `azdev extension add` / `azdev setup`: regenerate `*.egg-info` after the editable install so development extensions stay discoverable. `--no-build-isolation` (0.2.12) means pip no longer leaves an `*.egg-info` in the source tree, which made `azdev extension add` a silent no-op for discovery. (#554)
210
+ * `azdev extension build`: depend on `wheel` so `setup.py bdist_wheel` works even when the environment's `setuptools` predates the bundled `bdist_wheel` command (< 70.1). Modern, unpinned `wheel` for building only; does not restore the `wheel==0.30.0` metadata pin removed in 0.2.12b1.
211
+ * `azdev extension build`: surface the underlying `setup.py` output on build failure instead of re-raising an opaque `CalledProcessError`.
212
+
206
213
  0.2.12
207
214
  ++++++
208
- * Editable installs (``azdev setup``, ``azdev extension add``, code generation) now pass ``--no-build-isolation`` so wheels build against the environment's pinned ``setuptools`` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the ``setuptools`` pinning.
215
+ * Editable installs (`azdev setup`, `azdev extension add`, code generation) now pass `--no-build-isolation` so wheels build against the environment's pinned `setuptools` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the `setuptools` pinning.
209
216
 
210
217
  0.2.12b3
211
218
  ++++++++
212
- * ``azdev extension update-index``/``publish``: Fix ``ValueError: Not a known wheel archive format`` when reading wheel metadata. The wheel is now downloaded with its ``.whl`` filename so ``pkginfo.Wheel`` can read it, and ``read_pkginfo`` falls back to a temporary ``.whl`` copy for any non-``.whl`` path. (#7740)
219
+ * `azdev extension update-index`/`publish`: Fix `ValueError: Not a known wheel archive format` when reading wheel metadata. The wheel is now downloaded with its `.whl` filename so `pkginfo.Wheel` can read it, and `read_pkginfo` falls back to a temporary `.whl` copy for any non-`.whl` path. (#7740)
213
220
 
214
221
  0.2.12b2
215
222
  ++++++++
216
- * Quote paths when running editable installs (``pip install -e <path>``) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break ``azdev extension add``, ``azdev setup``, code generation, and ``azdev test``. (#550, #415)
223
+ * Quote paths when running editable installs (`pip install -e <path>`) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break `azdev extension add`, `azdev setup`, code generation, and `azdev test`. (#550, #415)
217
224
 
218
225
  0.2.12b1
219
226
  ++++++++
220
- * Extract extension metadata generation logic and decouple from ``wheel==0.30.0``; read wheel ``METADATA`` via ``pkginfo`` instead of the legacy ``metadata.json`` artifact. Drops the ``wheel==0.30.0`` and ``setuptools==70.0.0`` pins. (#521)
227
+ * Extract extension metadata generation logic and decouple from `wheel==0.30.0`; read wheel `METADATA` via `pkginfo` instead of the legacy `metadata.json` artifact. Drops the `wheel==0.30.0` and `setuptools==70.0.0` pins. (#521)
221
228
 
222
229
  0.2.11
223
230
  ++++++
@@ -4,4 +4,4 @@
4
4
  # license information.
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __VERSION__ = '0.2.12'
7
+ __VERSION__ = '0.2.13'
@@ -15,6 +15,7 @@ from knack.util import CLIError
15
15
  from azdev.utilities import (
16
16
  pip_cmd, display, heading, COMMAND_MODULE_PREFIX, EXTENSION_PREFIX, get_cli_repo_path, get_ext_repo_paths,
17
17
  find_files, quote_arg)
18
+ from azdev.operations.extensions import _ensure_egg_info
18
19
 
19
20
  logger = get_logger(__name__)
20
21
 
@@ -305,3 +306,4 @@ def _create_package(prefix, repo_path, is_ext, name='test', display_name=None, d
305
306
  )
306
307
  if result.error:
307
308
  raise result.error # pylint: disable=raising-bad-type
309
+ _ensure_egg_info(new_package_path)
@@ -49,6 +49,23 @@ def _invalidate_command_index():
49
49
  pass
50
50
 
51
51
 
52
+ def _ensure_egg_info(path):
53
+ # editable_mode=compat + --no-build-isolation results in a PEP 660 editable install:
54
+ # the .dist-info goes to site-packages and no .egg-info is left in the source tree.
55
+ # azdev finds dev extensions by globbing *.egg-info under the repo, so without it the
56
+ # extension is invisible even though pip succeeded. Regenerate it with the env's setuptools.
57
+ if find_files(path, '*.egg-info'):
58
+ return
59
+ result = py_cmd(
60
+ 'setup.py egg_info',
61
+ "Generating metadata for '{}'...".format(path),
62
+ is_module=False,
63
+ cwd=path,
64
+ )
65
+ if result.error:
66
+ raise result.error # pylint: disable=raising-bad-type
67
+
68
+
52
69
  def add_extension(extensions):
53
70
 
54
71
  ext_paths = get_ext_repo_paths()
@@ -78,6 +95,7 @@ def add_extension(extensions):
78
95
  )
79
96
  if result.error:
80
97
  raise result.error # pylint: disable=raising-bad-type
98
+ _ensure_egg_info(path)
81
99
 
82
100
  _invalidate_command_index()
83
101
 
@@ -336,6 +354,13 @@ def build_extensions(extensions, dist_dir='dist'):
336
354
  command = 'setup.py bdist_wheel -b bdist -d {}'.format(dist_dir)
337
355
  result = py_cmd(command, "Building extension '{}'...".format(path), is_module=False)
338
356
  if result.error:
357
+ # py_cmd captures the build output; surface it so the real setup.py failure is visible
358
+ # instead of only the opaque CalledProcessError.
359
+ build_output = result.output
360
+ if isinstance(build_output, (bytes, bytearray)):
361
+ build_output = build_output.decode('utf-8', 'ignore')
362
+ if build_output:
363
+ logger.error(build_output)
339
364
  raise result.error # pylint: disable=raising-bad-type
340
365
  os.chdir(original_cwd)
341
366
 
@@ -13,7 +13,7 @@ from knack.log import get_logger
13
13
  from knack.util import CLIError
14
14
 
15
15
  from azdev.operations.extensions import (
16
- list_extensions, add_extension_repo, remove_extension)
16
+ list_extensions, add_extension_repo, remove_extension, _ensure_egg_info)
17
17
  from azdev.params import Flag
18
18
  from azdev.utilities import (
19
19
  display, heading, subheading, pip_cmd, CommandError, find_file,
@@ -55,6 +55,7 @@ def _install_extensions(ext_paths):
55
55
  "Adding extension '{}'...".format(path))
56
56
  if result.error:
57
57
  raise result.error # pylint: disable=raising-bad-type
58
+ _ensure_egg_info(path)
58
59
 
59
60
 
60
61
  def _install_cli(cli_path, deps=None):
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: azdev
3
- Version: 0.2.12
3
+ Version: 0.2.13
4
4
  Summary: Microsoft Azure CLI Developer Tools
5
5
  Home-page: https://github.com/Azure/azure-cli-dev-tools
6
6
  Author: Microsoft Corporation
@@ -41,6 +41,7 @@ Requires-Dist: packaging
41
41
  Requires-Dist: pkginfo
42
42
  Requires-Dist: tqdm
43
43
  Requires-Dist: setuptools<80,>=78.1.1
44
+ Requires-Dist: wheel
44
45
  Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b4
45
46
  Dynamic: author
46
47
  Dynamic: author-email
@@ -203,21 +204,27 @@ License
203
204
 
204
205
  Release History
205
206
  ===============
207
+ 0.2.13
208
+ ++++++
209
+ * `azdev extension add` / `azdev setup`: regenerate `*.egg-info` after the editable install so development extensions stay discoverable. `--no-build-isolation` (0.2.12) means pip no longer leaves an `*.egg-info` in the source tree, which made `azdev extension add` a silent no-op for discovery. (#554)
210
+ * `azdev extension build`: depend on `wheel` so `setup.py bdist_wheel` works even when the environment's `setuptools` predates the bundled `bdist_wheel` command (< 70.1). Modern, unpinned `wheel` for building only; does not restore the `wheel==0.30.0` metadata pin removed in 0.2.12b1.
211
+ * `azdev extension build`: surface the underlying `setup.py` output on build failure instead of re-raising an opaque `CalledProcessError`.
212
+
206
213
  0.2.12
207
214
  ++++++
208
- * Editable installs (``azdev setup``, ``azdev extension add``, code generation) now pass ``--no-build-isolation`` so wheels build against the environment's pinned ``setuptools`` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the ``setuptools`` pinning.
215
+ * Editable installs (`azdev setup`, `azdev extension add`, code generation) now pass `--no-build-isolation` so wheels build against the environment's pinned `setuptools` instead of an isolated PEP 517 build environment. This fixes editable-install failures introduced by the `setuptools` pinning.
209
216
 
210
217
  0.2.12b3
211
218
  ++++++++
212
- * ``azdev extension update-index``/``publish``: Fix ``ValueError: Not a known wheel archive format`` when reading wheel metadata. The wheel is now downloaded with its ``.whl`` filename so ``pkginfo.Wheel`` can read it, and ``read_pkginfo`` falls back to a temporary ``.whl`` copy for any non-``.whl`` path. (#7740)
219
+ * `azdev extension update-index`/`publish`: Fix `ValueError: Not a known wheel archive format` when reading wheel metadata. The wheel is now downloaded with its `.whl` filename so `pkginfo.Wheel` can read it, and `read_pkginfo` falls back to a temporary `.whl` copy for any non-`.whl` path. (#7740)
213
220
 
214
221
  0.2.12b2
215
222
  ++++++++
216
- * Quote paths when running editable installs (``pip install -e <path>``) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break ``azdev extension add``, ``azdev setup``, code generation, and ``azdev test``. (#550, #415)
223
+ * Quote paths when running editable installs (`pip install -e <path>`) and the pytest runner so that paths containing spaces (e.g. OneDrive folders) no longer break `azdev extension add`, `azdev setup`, code generation, and `azdev test`. (#550, #415)
217
224
 
218
225
  0.2.12b1
219
226
  ++++++++
220
- * Extract extension metadata generation logic and decouple from ``wheel==0.30.0``; read wheel ``METADATA`` via ``pkginfo`` instead of the legacy ``metadata.json`` artifact. Drops the ``wheel==0.30.0`` and ``setuptools==70.0.0`` pins. (#521)
227
+ * Extract extension metadata generation logic and decouple from `wheel==0.30.0`; read wheel `METADATA` via `pkginfo` instead of the legacy `metadata.json` artifact. Drops the `wheel==0.30.0` and `setuptools==70.0.0` pins. (#521)
221
228
 
222
229
  0.2.11
223
230
  ++++++
@@ -19,4 +19,5 @@ packaging
19
19
  pkginfo
20
20
  tqdm
21
21
  setuptools<80,>=78.1.1
22
+ wheel
22
23
  microsoft-security-utilities-secret-masker~=1.0.0b4
@@ -91,6 +91,10 @@ setup(
91
91
  # Upper bound < 80 keeps legacy `setup.py develop` invocations working
92
92
  # for extensions that haven't migrated to pyproject.toml yet.
93
93
  'setuptools>=78.1.1,<80',
94
+ # `azdev extension build` runs `setup.py bdist_wheel`; keep the wheel command available even
95
+ # when the environment's setuptools predates the bundled bdist_wheel (< 70.1). Modern, unpinned
96
+ # wheel for building only -- not the `wheel==0.30.0` metadata pin dropped in 0.2.12b1.
97
+ 'wheel',
94
98
  'microsoft-security-utilities-secret-masker~=1.0.0b4'
95
99
  ],
96
100
  package_data={
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes