azdev 0.1.95__tar.gz → 0.1.97__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 (105) hide show
  1. {azdev-0.1.95 → azdev-0.1.97}/HISTORY.rst +11 -0
  2. {azdev-0.1.95/azdev.egg-info → azdev-0.1.97}/PKG-INFO +15 -3
  3. {azdev-0.1.95 → azdev-0.1.97}/azdev/__init__.py +1 -1
  4. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/breaking_change/__init__.py +14 -6
  5. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/breaking_change/markdown_template.jinja2 +7 -4
  6. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/command_change/__init__.py +2 -2
  7. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/command_group_rules.py +4 -0
  8. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/command_rules.py +4 -0
  9. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/parameter_rules.py +4 -0
  10. {azdev-0.1.95 → azdev-0.1.97}/azdev/params.py +7 -1
  11. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/display.py +2 -2
  12. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/path.py +4 -4
  13. {azdev-0.1.95 → azdev-0.1.97/azdev.egg-info}/PKG-INFO +15 -3
  14. {azdev-0.1.95 → azdev-0.1.97}/azdev.egg-info/requires.txt +1 -1
  15. {azdev-0.1.95 → azdev-0.1.97}/setup.py +1 -1
  16. {azdev-0.1.95 → azdev-0.1.97}/LICENSE +0 -0
  17. {azdev-0.1.95 → azdev-0.1.97}/MANIFEST.in +0 -0
  18. {azdev-0.1.95 → azdev-0.1.97}/README.md +0 -0
  19. {azdev-0.1.95 → azdev-0.1.97}/README.rst +0 -0
  20. {azdev-0.1.95 → azdev-0.1.97}/azdev/__main__.py +0 -0
  21. {azdev-0.1.95 → azdev-0.1.97}/azdev/commands.py +0 -0
  22. {azdev-0.1.95 → azdev-0.1.97}/azdev/completer.py +0 -0
  23. {azdev-0.1.95 → azdev-0.1.97}/azdev/config/__init__.py +0 -0
  24. {azdev-0.1.95 → azdev-0.1.97}/azdev/config/cli.flake8 +0 -0
  25. {azdev-0.1.95 → azdev-0.1.97}/azdev/config/cli_pylintrc +0 -0
  26. {azdev-0.1.95 → azdev-0.1.97}/azdev/config/ext.flake8 +0 -0
  27. {azdev-0.1.95 → azdev-0.1.97}/azdev/config/ext_pylintrc +0 -0
  28. {azdev-0.1.95 → azdev-0.1.97}/azdev/help.py +0 -0
  29. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/HISTORY.rst +0 -0
  30. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/README.rst +0 -0
  31. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/_client_factory.py +0 -0
  32. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/_help.py +0 -0
  33. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/_params.py +0 -0
  34. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/_validators.py +0 -0
  35. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/azext_metadata.json +0 -0
  36. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/blank__init__.py +0 -0
  37. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/commands.py +0 -0
  38. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/custom.py +0 -0
  39. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/module__init__.py +0 -0
  40. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/pkg_declare__init__.py +0 -0
  41. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/setup.cfg +0 -0
  42. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/setup.py +0 -0
  43. {azdev-0.1.95 → azdev-0.1.97}/azdev/mod_templates/test_service_scenario.py +0 -0
  44. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/__init__.py +0 -0
  45. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/__init__.py +0 -0
  46. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/_macros.j2 +0 -0
  47. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/cmdcov.py +0 -0
  48. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/component.css +0 -0
  49. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/component.js +0 -0
  50. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/favicon.ico +0 -0
  51. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/index.j2 +0 -0
  52. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/index2.j2 +0 -0
  53. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/cmdcov/module.j2 +0 -0
  54. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/code_gen.py +0 -0
  55. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/command_change/custom.py +0 -0
  56. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/command_change/util.py +0 -0
  57. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/constant.py +0 -0
  58. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/extensions/__init__.py +0 -0
  59. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/extensions/util.py +0 -0
  60. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/extensions/version_upgrade.py +0 -0
  61. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/help/__init__.py +0 -0
  62. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/help/refdoc/__init__.py +0 -0
  63. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/help/refdoc/conf.py +0 -0
  64. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/legal.py +0 -0
  65. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/__init__.py +0 -0
  66. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/data/cmd_example_config.json +0 -0
  67. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/linter.py +0 -0
  68. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/pylint_checkers/__init__.py +0 -0
  69. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/pylint_checkers/show_command.py +0 -0
  70. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rule_decorators.py +0 -0
  71. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/__init__.py +0 -0
  72. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/ci_exclusions.yml +0 -0
  73. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/command_coverage_rules.py +0 -0
  74. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/help_rules.py +0 -0
  75. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/rules/linter_exclusions.yml +0 -0
  76. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/linter/util.py +0 -0
  77. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/performance.py +0 -0
  78. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/pypi.py +0 -0
  79. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/python_sdk.py +0 -0
  80. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/regex.py +0 -0
  81. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/resource.py +0 -0
  82. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/secret.py +0 -0
  83. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/setup.py +0 -0
  84. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/statistics/__init__.py +0 -0
  85. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/statistics/util.py +0 -0
  86. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/style.py +0 -0
  87. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/testtool/__init__.py +0 -0
  88. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/testtool/incremental_strategy.py +0 -0
  89. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/testtool/profile_context.py +0 -0
  90. {azdev-0.1.95 → azdev-0.1.97}/azdev/operations/testtool/pytest_runner.py +0 -0
  91. {azdev-0.1.95 → azdev-0.1.97}/azdev/transformers.py +0 -0
  92. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/__init__.py +0 -0
  93. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/command.py +0 -0
  94. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/config.py +0 -0
  95. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/const.py +0 -0
  96. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/git_util.py +0 -0
  97. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/pypi.py +0 -0
  98. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/testing.py +0 -0
  99. {azdev-0.1.95 → azdev-0.1.97}/azdev/utilities/tools.py +0 -0
  100. {azdev-0.1.95 → azdev-0.1.97}/azdev.egg-info/SOURCES.txt +0 -0
  101. {azdev-0.1.95 → azdev-0.1.97}/azdev.egg-info/dependency_links.txt +0 -0
  102. {azdev-0.1.95 → azdev-0.1.97}/azdev.egg-info/entry_points.txt +0 -0
  103. {azdev-0.1.95 → azdev-0.1.97}/azdev.egg-info/top_level.txt +0 -0
  104. {azdev-0.1.95 → azdev-0.1.97}/pyproject.toml +0 -0
  105. {azdev-0.1.95 → azdev-0.1.97}/setup.cfg +0 -0
@@ -2,6 +2,17 @@
2
2
 
3
3
  Release History
4
4
  ===============
5
+ 0.1.97
6
+ ++++++
7
+ * `azdev generate-breaking-change-report`: Add `--include-whl-extensions` to support extensions installed through wheel.
8
+ * `azdev command-change tree-export`: Add `--include-whl-extensions` to support extensions installed through wheel.
9
+ * `azdev generate-breaking-change-report`: Support collecting Breaking Change items from CLI core.
10
+ * `azdev generate-breaking-change-report`: Support trim the last newline in output with `--no-tail`.
11
+
12
+ 0.1.96
13
+ ++++++
14
+ * `azdev generate-breaking-change-report`: Add `--no-head` and `--no-tail` to support trim header and tail in markdown report.
15
+
5
16
  0.1.95
6
17
  ++++++
7
18
  * `azdev generate-breaking-change-report`: Extracts upcoming breaking changes in extensions, regardless of the target version set
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: azdev
3
- Version: 0.1.95
3
+ Version: 0.1.97
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
@@ -40,7 +40,7 @@ Requires-Dist: azure-cli-diff-tool~=0.0.6
40
40
  Requires-Dist: packaging
41
41
  Requires-Dist: tqdm
42
42
  Requires-Dist: wheel==0.30.0
43
- Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b2
43
+ Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b4
44
44
  Dynamic: author
45
45
  Dynamic: author-email
46
46
  Dynamic: classifier
@@ -48,6 +48,7 @@ Dynamic: description
48
48
  Dynamic: home-page
49
49
  Dynamic: keywords
50
50
  Dynamic: license
51
+ Dynamic: license-file
51
52
  Dynamic: requires-dist
52
53
  Dynamic: requires-python
53
54
  Dynamic: summary
@@ -158,6 +159,17 @@ License
158
159
 
159
160
  Release History
160
161
  ===============
162
+ 0.1.97
163
+ ++++++
164
+ * `azdev generate-breaking-change-report`: Add `--include-whl-extensions` to support extensions installed through wheel.
165
+ * `azdev command-change tree-export`: Add `--include-whl-extensions` to support extensions installed through wheel.
166
+ * `azdev generate-breaking-change-report`: Support collecting Breaking Change items from CLI core.
167
+ * `azdev generate-breaking-change-report`: Support trim the last newline in output with `--no-tail`.
168
+
169
+ 0.1.96
170
+ ++++++
171
+ * `azdev generate-breaking-change-report`: Add `--no-head` and `--no-tail` to support trim header and tail in markdown report.
172
+
161
173
  0.1.95
162
174
  ++++++
163
175
  * `azdev generate-breaking-change-report`: Extracts upcoming breaking changes in extensions, regardless of the target version set
@@ -4,4 +4,4 @@
4
4
  # license information.
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __VERSION__ = '0.1.95'
7
+ __VERSION__ = '0.1.97'
@@ -224,10 +224,12 @@ def _handle_module(module, loader, source):
224
224
  start = time.time()
225
225
 
226
226
  for command, command_info in loader.command_table.items():
227
- yield from _handle_command_breaking_changes(module, command, command_info, source)
227
+ if command:
228
+ yield from _handle_command_breaking_changes(module, command, command_info, source)
228
229
 
229
230
  for command_group_name, command_group in loader.command_group_table.items():
230
- yield from _handle_command_group_breaking_changes(module, command_group_name, command_group, source)
231
+ if command_group_name:
232
+ yield from _handle_command_group_breaking_changes(module, command_group_name, command_group, source)
231
233
 
232
234
  stop = time.time()
233
235
  logger.info('Module %s finished in %i sec', module, stop - start)
@@ -244,7 +246,8 @@ def _handle_core(source):
244
246
  except ImportError:
245
247
  pass
246
248
 
247
- yield from _handle_custom_breaking_changes('core', 'core')
249
+ yield from _handle_custom_breaking_changes('core', '')
250
+ yield from _handle_custom_breaking_changes('core', '_core')
248
251
 
249
252
  stop = time.time()
250
253
  logger.info('Core finished in %i sec', stop - start)
@@ -304,7 +307,8 @@ def _group_breaking_change_items(iterator, group_by_version=False):
304
307
 
305
308
 
306
309
  def collect_upcoming_breaking_changes(modules=None, target_version='NextWindow', source=None, group_by_version=None,
307
- output_format='structure'):
310
+ output_format='structure', no_head=False, no_tail=False,
311
+ include_whl_extensions=False):
308
312
  if target_version == 'NextWindow':
309
313
  from azure.cli.core.breaking_change import NEXT_BREAKING_CHANGE_RELEASE
310
314
  target_version = NEXT_BREAKING_CHANGE_RELEASE
@@ -313,7 +317,7 @@ def collect_upcoming_breaking_changes(modules=None, target_version='NextWindow',
313
317
 
314
318
  require_azure_cli()
315
319
 
316
- selected_modules = calc_selected_modules(modules)
320
+ selected_modules = calc_selected_modules(modules, include_whl_extensions=include_whl_extensions)
317
321
  cli_mod_names = list(selected_modules['core'].keys()) + list(selected_modules['mod'].keys())
318
322
  ext_mod_names = list(selected_modules['ext'].keys())
319
323
 
@@ -339,5 +343,9 @@ def collect_upcoming_breaking_changes(modules=None, target_version='NextWindow',
339
343
  env = Environment(loader=PackageLoader('azdev', 'operations/breaking_change'),
340
344
  trim_blocks=True)
341
345
  template = env.get_template('markdown_template.jinja2')
342
- output(template.render({'module_bc': breaking_changes}))
346
+ output(template.render({
347
+ 'module_bc': breaking_changes,
348
+ 'no_head': no_head,
349
+ 'no_tail': no_tail,
350
+ }), end='' if no_tail else '\n')
343
351
  return None
@@ -1,12 +1,14 @@
1
+ {% if not no_head -%}
1
2
  # Upcoming breaking changes in Azure CLI
2
3
 
3
4
  The breaking changes listed in this article are planned for the next major release of the Azure CLI unless otherwise noted. Per our [Support lifecycle](./azure-cli-support-lifecycle.md), breaking changes in Azure CLI Core reference groups occur twice a year.
4
5
 
6
+ {% endif -%}
5
7
  {% for module, command_bc in module_bc.items() -%}
6
8
  ## {{ module }}
7
9
 
8
10
  {% for command, multi_version_bcs in command_bc.items() -%}
9
- {% if not (module == 'core' and command == 'core') -%}
11
+ {% if not module == 'core' -%}
10
12
  ### `{{ command }}`
11
13
 
12
14
  {% endif -%}
@@ -16,7 +18,7 @@ The breaking changes listed in this article are planned for the next major relea
16
18
  {% endif -%}
17
19
  {% if multi_version_bcs['items'] is mapping -%}
18
20
  {% for version, bcs in multi_version_bcs['items'] | dictsort -%}
19
- ###{%- if not (module == 'core' and command == 'core') -%}#{%- endif %} Deprecated in {{ version }}
21
+ ###{%- if not module == 'core' -%}#{%- endif %} Deprecated in {{ version }}
20
22
 
21
23
  {% for bc in bcs -%}
22
24
  - {{ bc.detail }}
@@ -32,6 +34,7 @@ The breaking changes listed in this article are planned for the next major relea
32
34
  {% endif -%}
33
35
  {% endfor -%}
34
36
  {% endfor -%}
35
-
37
+ {% if not no_tail %}
36
38
  > [!NOTE]
37
- > This article provides information on upcoming breaking changes. For previously published breaking changes, see [Azure CLI release notes](./release-notes-azure-cli.md).
39
+ > This article provides information on upcoming breaking changes. For previously published breaking changes, see [Azure CLI release notes](./release-notes-azure-cli.md).
40
+ {%- endif -%}
@@ -143,10 +143,10 @@ def cmp_command_meta(base_meta_file, diff_meta_file, only_break=False, output_ty
143
143
  return azure_cli_diff_tool.meta_diff(base_meta_file, diff_meta_file, only_break, output_type, output_file)
144
144
 
145
145
 
146
- def export_command_tree(modules, output_file=None):
146
+ def export_command_tree(modules, output_file=None, include_whl_extensions=False):
147
147
  require_azure_cli()
148
148
 
149
- selected_mod_names = calc_selected_mod_names(modules)
149
+ selected_mod_names = calc_selected_mod_names(modules, include_whl_extensions=include_whl_extensions)
150
150
 
151
151
  if selected_mod_names:
152
152
  display('Modules selected: {}\n'.format(', '.join(selected_mod_names)))
@@ -54,12 +54,16 @@ def disallowed_html_tag_from_command_group(linter, command_group_name):
54
54
  linter.diffed_lines)):
55
55
  raise RuleError("Disallowed html tags {} in short summary. "
56
56
  "If the content is a placeholder, please remove <> or wrap it with backtick. "
57
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
58
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
57
59
  "For more info please refer to: {}".format(disallowed_tags,
58
60
  DISALLOWED_HTML_TAG_RULE_LINK))
59
61
  if help_entry.long_summary and (disallowed_tags := has_illegal_html_tag(help_entry.long_summary,
60
62
  linter.diffed_lines)):
61
63
  raise RuleError("Disallowed html tags {} in long summary. "
62
64
  "If content is a placeholder, please remove <> or wrap it with backtick. "
65
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
66
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
63
67
  "For more info please refer to: {}".format(disallowed_tags,
64
68
  DISALLOWED_HTML_TAG_RULE_LINK))
65
69
 
@@ -49,12 +49,16 @@ def disallowed_html_tag_from_command(linter, command_name):
49
49
  linter.diffed_lines)):
50
50
  raise RuleError("Disallowed html tags {} in short summary. "
51
51
  "If the content is a placeholder, please remove <> or wrap it with backtick. "
52
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
53
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
52
54
  "For more info please refer to: {}".format(disallowed_tags,
53
55
  DISALLOWED_HTML_TAG_RULE_LINK))
54
56
  if help_entry.long_summary and (disallowed_tags := has_illegal_html_tag(help_entry.long_summary,
55
57
  linter.diffed_lines)):
56
58
  raise RuleError("Disallowed html tags {} in long summary. "
57
59
  "If content is a placeholder, please remove <> or wrap it with backtick. "
60
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
61
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
58
62
  "For more info please refer to: {}".format(disallowed_tags,
59
63
  DISALLOWED_HTML_TAG_RULE_LINK))
60
64
 
@@ -183,6 +183,8 @@ def disallowed_html_tag_from_parameter(linter, command_name, parameter_name):
183
183
  linter.diffed_lines)):
184
184
  raise RuleError("Disallowed html tags {} in short summary. "
185
185
  "If the content is a placeholder, please remove <> or wrap it with backtick. "
186
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
187
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
186
188
  "For more info please refer to: {}".format(disallowed_tags,
187
189
  DISALLOWED_HTML_TAG_RULE_LINK))
188
190
 
@@ -190,6 +192,8 @@ def disallowed_html_tag_from_parameter(linter, command_name, parameter_name):
190
192
  linter.diffed_lines)):
191
193
  raise RuleError("Disallowed html tags {} in long summary. "
192
194
  "If content is a placeholder, please remove <> or wrap it with backtick. "
195
+ "For example: 1) <Name>-res.yaml -> `<Name>-res.yaml`; "
196
+ "2) http://<URL>:<PORT> -> `http://<URL>:<PORT>`. "
193
197
  "For more info please refer to: {}".format(disallowed_tags,
194
198
  DISALLOWED_HTML_TAG_RULE_LINK))
195
199
 
@@ -178,6 +178,8 @@ def load_arguments(self, _):
178
178
 
179
179
  with ArgumentsContext(self, 'command-change tree-export') as c:
180
180
  c.positional('modules', modules_type)
181
+ c.argument('include_whl_extensions', action='store_true',
182
+ help="Allow running cmd loader on extensions installed by `az extension add --source xxx.whl`.")
181
183
  c.argument('output_file', help='command tree json file path to store')
182
184
 
183
185
  # region cmdcov
@@ -271,8 +273,12 @@ def load_arguments(self, _):
271
273
  c.argument('source', choices=['deprecate_info', 'pre_announce'], default='pre_announce',
272
274
  help='The source of pre-announced breaking changes. `deprecate_info` represents all breaking changes '
273
275
  'marked through `deprecation_info`; `pre_announce` represents the breaking changes announced in '
274
- '`breaking_change.py` file.')
276
+ '`_breaking_change.py` file.')
275
277
  c.argument('group_by_version', action='store_true',
276
278
  help='If specified, breaking changes would be grouped by their target version as well.')
277
279
  c.argument('output_format', choices=['structure', 'markdown'], default='structure',
278
280
  help='Output format of the collected breaking changes.')
281
+ c.argument('no_head', action='store_true', help='Skip head when displaying as markdown.')
282
+ c.argument('no_tail', action='store_true', help='Skip tail when displaying as markdown.')
283
+ c.argument('include_whl_extensions', action='store_true',
284
+ help="Allow scanning on extensions installed by `az extension add --source xxx.whl`.")
@@ -12,9 +12,9 @@ def display(txt):
12
12
  print(txt, file=sys.stderr)
13
13
 
14
14
 
15
- def output(txt):
15
+ def output(txt, **kwargs):
16
16
  """ Output to stdout """
17
- print(txt, file=sys.stdout)
17
+ print(txt, file=sys.stdout, **kwargs)
18
18
 
19
19
 
20
20
  def heading(txt):
@@ -265,14 +265,14 @@ def get_path_table(include_only=None, include_whl_extensions=False):
265
265
  return table
266
266
 
267
267
 
268
- def calc_selected_modules(modules=None):
268
+ def calc_selected_modules(modules=None, include_whl_extensions=False):
269
269
  # allow user to run only on CLI or extensions
270
270
  cli_only = modules == ['CLI']
271
271
  ext_only = modules == ['EXT']
272
272
  if cli_only or ext_only:
273
273
  modules = None
274
274
 
275
- selected_modules = get_path_table(include_only=modules)
275
+ selected_modules = get_path_table(include_only=modules, include_whl_extensions=include_whl_extensions)
276
276
 
277
277
  if cli_only:
278
278
  selected_modules['ext'] = {}
@@ -283,8 +283,8 @@ def calc_selected_modules(modules=None):
283
283
  return selected_modules
284
284
 
285
285
 
286
- def calc_selected_mod_names(modules=None):
287
- selected_modules = calc_selected_modules(modules)
286
+ def calc_selected_mod_names(modules=None, include_whl_extensions=False):
287
+ selected_modules = calc_selected_modules(modules, include_whl_extensions=include_whl_extensions)
288
288
 
289
289
  if not any(selected_modules.values()):
290
290
  logger.warning('No commands selected to check.')
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: azdev
3
- Version: 0.1.95
3
+ Version: 0.1.97
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
@@ -40,7 +40,7 @@ Requires-Dist: azure-cli-diff-tool~=0.0.6
40
40
  Requires-Dist: packaging
41
41
  Requires-Dist: tqdm
42
42
  Requires-Dist: wheel==0.30.0
43
- Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b2
43
+ Requires-Dist: microsoft-security-utilities-secret-masker~=1.0.0b4
44
44
  Dynamic: author
45
45
  Dynamic: author-email
46
46
  Dynamic: classifier
@@ -48,6 +48,7 @@ Dynamic: description
48
48
  Dynamic: home-page
49
49
  Dynamic: keywords
50
50
  Dynamic: license
51
+ Dynamic: license-file
51
52
  Dynamic: requires-dist
52
53
  Dynamic: requires-python
53
54
  Dynamic: summary
@@ -158,6 +159,17 @@ License
158
159
 
159
160
  Release History
160
161
  ===============
162
+ 0.1.97
163
+ ++++++
164
+ * `azdev generate-breaking-change-report`: Add `--include-whl-extensions` to support extensions installed through wheel.
165
+ * `azdev command-change tree-export`: Add `--include-whl-extensions` to support extensions installed through wheel.
166
+ * `azdev generate-breaking-change-report`: Support collecting Breaking Change items from CLI core.
167
+ * `azdev generate-breaking-change-report`: Support trim the last newline in output with `--no-tail`.
168
+
169
+ 0.1.96
170
+ ++++++
171
+ * `azdev generate-breaking-change-report`: Add `--no-head` and `--no-tail` to support trim header and tail in markdown report.
172
+
161
173
  0.1.95
162
174
  ++++++
163
175
  * `azdev generate-breaking-change-report`: Extracts upcoming breaking changes in extensions, regardless of the target version set
@@ -18,4 +18,4 @@ azure-cli-diff-tool~=0.0.6
18
18
  packaging
19
19
  tqdm
20
20
  wheel==0.30.0
21
- microsoft-security-utilities-secret-masker~=1.0.0b2
21
+ microsoft-security-utilities-secret-masker~=1.0.0b4
@@ -87,7 +87,7 @@ setup(
87
87
  'packaging',
88
88
  'tqdm',
89
89
  'wheel==0.30.0',
90
- 'microsoft-security-utilities-secret-masker~=1.0.0b2'
90
+ 'microsoft-security-utilities-secret-masker~=1.0.0b4'
91
91
  ],
92
92
  package_data={
93
93
  'azdev.config': ['*.*', 'cli_pylintrc', 'ext_pylintrc'],
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