azdev 0.1.81__tar.gz → 0.1.82__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 (102) hide show
  1. {azdev-0.1.81 → azdev-0.1.82}/HISTORY.rst +4 -0
  2. {azdev-0.1.81/azdev.egg-info → azdev-0.1.82}/PKG-INFO +5 -1
  3. {azdev-0.1.81 → azdev-0.1.82}/azdev/__init__.py +1 -1
  4. {azdev-0.1.81 → azdev-0.1.82}/azdev/commands.py +3 -0
  5. {azdev-0.1.81 → azdev-0.1.82}/azdev/help.py +11 -0
  6. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/command_change/__init__.py +3 -21
  7. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/statistics/__init__.py +6 -4
  8. {azdev-0.1.81 → azdev-0.1.82}/azdev/params.py +14 -0
  9. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/__init__.py +3 -1
  10. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/path.py +27 -1
  11. {azdev-0.1.81 → azdev-0.1.82/azdev.egg-info}/PKG-INFO +5 -1
  12. {azdev-0.1.81 → azdev-0.1.82}/LICENSE +0 -0
  13. {azdev-0.1.81 → azdev-0.1.82}/MANIFEST.in +0 -0
  14. {azdev-0.1.81 → azdev-0.1.82}/README.md +0 -0
  15. {azdev-0.1.81 → azdev-0.1.82}/README.rst +0 -0
  16. {azdev-0.1.81 → azdev-0.1.82}/azdev/__main__.py +0 -0
  17. {azdev-0.1.81 → azdev-0.1.82}/azdev/completer.py +0 -0
  18. {azdev-0.1.81 → azdev-0.1.82}/azdev/config/__init__.py +0 -0
  19. {azdev-0.1.81 → azdev-0.1.82}/azdev/config/cli.flake8 +0 -0
  20. {azdev-0.1.81 → azdev-0.1.82}/azdev/config/cli_pylintrc +0 -0
  21. {azdev-0.1.81 → azdev-0.1.82}/azdev/config/ext.flake8 +0 -0
  22. {azdev-0.1.81 → azdev-0.1.82}/azdev/config/ext_pylintrc +0 -0
  23. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/HISTORY.rst +0 -0
  24. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/README.rst +0 -0
  25. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/_client_factory.py +0 -0
  26. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/_help.py +0 -0
  27. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/_params.py +0 -0
  28. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/_validators.py +0 -0
  29. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/azext_metadata.json +0 -0
  30. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/blank__init__.py +0 -0
  31. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/commands.py +0 -0
  32. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/custom.py +0 -0
  33. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/module__init__.py +0 -0
  34. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/pkg_declare__init__.py +0 -0
  35. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/setup.cfg +0 -0
  36. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/setup.py +0 -0
  37. {azdev-0.1.81 → azdev-0.1.82}/azdev/mod_templates/test_service_scenario.py +0 -0
  38. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/__init__.py +0 -0
  39. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/__init__.py +0 -0
  40. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/_macros.j2 +0 -0
  41. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/cmdcov.py +0 -0
  42. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/component.css +0 -0
  43. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/component.js +0 -0
  44. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/favicon.ico +0 -0
  45. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/index.j2 +0 -0
  46. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/index2.j2 +0 -0
  47. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/cmdcov/module.j2 +0 -0
  48. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/code_gen.py +0 -0
  49. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/command_change/custom.py +0 -0
  50. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/command_change/util.py +0 -0
  51. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/constant.py +0 -0
  52. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/extensions/__init__.py +0 -0
  53. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/extensions/util.py +0 -0
  54. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/extensions/version_upgrade.py +0 -0
  55. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/help/__init__.py +0 -0
  56. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/help/refdoc/__init__.py +0 -0
  57. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/help/refdoc/conf.py +0 -0
  58. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/legal.py +0 -0
  59. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/__init__.py +0 -0
  60. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/linter.py +0 -0
  61. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/pylint_checkers/__init__.py +0 -0
  62. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/pylint_checkers/show_command.py +0 -0
  63. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rule_decorators.py +0 -0
  64. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/__init__.py +0 -0
  65. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/ci_exclusions.yml +0 -0
  66. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/command_coverage_rules.py +0 -0
  67. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/command_group_rules.py +0 -0
  68. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/command_rules.py +0 -0
  69. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/help_rules.py +0 -0
  70. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/linter_exclusions.yml +0 -0
  71. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/rules/parameter_rules.py +0 -0
  72. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/linter/util.py +0 -0
  73. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/performance.py +0 -0
  74. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/pypi.py +0 -0
  75. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/python_sdk.py +0 -0
  76. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/regex.py +0 -0
  77. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/resource.py +0 -0
  78. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/secret.py +0 -0
  79. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/setup.py +0 -0
  80. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/statistics/util.py +0 -0
  81. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/style.py +0 -0
  82. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/testtool/__init__.py +0 -0
  83. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/testtool/incremental_strategy.py +0 -0
  84. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/testtool/profile_context.py +0 -0
  85. {azdev-0.1.81 → azdev-0.1.82}/azdev/operations/testtool/pytest_runner.py +0 -0
  86. {azdev-0.1.81 → azdev-0.1.82}/azdev/transformers.py +0 -0
  87. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/command.py +0 -0
  88. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/config.py +0 -0
  89. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/const.py +0 -0
  90. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/display.py +0 -0
  91. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/git_util.py +0 -0
  92. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/pypi.py +0 -0
  93. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/testing.py +0 -0
  94. {azdev-0.1.81 → azdev-0.1.82}/azdev/utilities/tools.py +0 -0
  95. {azdev-0.1.81 → azdev-0.1.82}/azdev.egg-info/SOURCES.txt +0 -0
  96. {azdev-0.1.81 → azdev-0.1.82}/azdev.egg-info/dependency_links.txt +0 -0
  97. {azdev-0.1.81 → azdev-0.1.82}/azdev.egg-info/entry_points.txt +0 -0
  98. {azdev-0.1.81 → azdev-0.1.82}/azdev.egg-info/requires.txt +0 -0
  99. {azdev-0.1.81 → azdev-0.1.82}/azdev.egg-info/top_level.txt +0 -0
  100. {azdev-0.1.81 → azdev-0.1.82}/pyproject.toml +0 -0
  101. {azdev-0.1.81 → azdev-0.1.82}/setup.cfg +0 -0
  102. {azdev-0.1.81 → azdev-0.1.82}/setup.py +0 -0
@@ -2,6 +2,10 @@
2
2
 
3
3
  Release History
4
4
  ===============
5
+ 0.1.82
6
+ ++++++
7
+ * `azdev generate-breaking-change-report`: New command to collect upcoming breaking changes from codebase.
8
+
5
9
  0.1.81
6
10
  ++++++
7
11
  * `azdev scan/mask`: Add `--confidence-level` to support secret pattern levels
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azdev
3
- Version: 0.1.81
3
+ Version: 0.1.82
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
@@ -148,6 +148,10 @@ License
148
148
 
149
149
  Release History
150
150
  ===============
151
+ 0.1.82
152
+ ++++++
153
+ * `azdev generate-breaking-change-report`: New command to collect upcoming breaking changes from codebase.
154
+
151
155
  0.1.81
152
156
  ++++++
153
157
  * `azdev scan/mask`: Add `--confidence-level` to support secret pattern levels
@@ -4,4 +4,4 @@
4
4
  # license information.
5
5
  # -----------------------------------------------------------------------------
6
6
 
7
- __VERSION__ = '0.1.81'
7
+ __VERSION__ = '0.1.82'
@@ -84,3 +84,6 @@ def load_command_table(self, _):
84
84
 
85
85
  with CommandGroup(self, 'extension', operation_group('help')) as g:
86
86
  g.command('generate-docs', 'generate_extension_ref_docs')
87
+
88
+ with CommandGroup(self, '', operation_group('breaking_change')) as g:
89
+ g.command('generate-breaking-change-report', 'collect_upcoming_breaking_changes')
@@ -377,3 +377,14 @@ helps['cmdcov'] = """
377
377
  - name: Check CLI modules command test coverage in argument level.
378
378
  text: azdev cmdcov CLI --level argument
379
379
  """
380
+
381
+ helps['generate-breaking-change-report'] = """
382
+ short-summary: Collect pre-announced breaking changes items and generate the report.
383
+ examples:
384
+ - name: Collect all pre-announced breaking changes, including any that did not specify a target version and group them by target version.
385
+ text: azdev generate-breaking-change-report CLI --group-by-version --target-version None
386
+ - name: Collect all pre-announced breaking changes target before next breaking change window, and display them in markdown.
387
+ text: azdev generate-breaking-change-report CLI --output-format markdown
388
+ - name: Collect all pre-announced breaking changes in vm, including those failed to specify a target version, and display them in json
389
+ text: azdev generate-breaking-change-report vm --target-version None
390
+ """
@@ -10,7 +10,8 @@ import time
10
10
 
11
11
  from knack.log import get_logger
12
12
  import azure_cli_diff_tool
13
- from azdev.utilities import display, require_azure_cli, heading, get_path_table, filter_by_git_diff
13
+ from azdev.utilities import display, require_azure_cli, heading, get_path_table, filter_by_git_diff, \
14
+ calc_selected_mod_names
14
15
  from .custom import DiffExportFormat, get_commands_meta, STORED_DEPRECATION_KEY
15
16
  from .util import export_commands_meta, dump_command_tree, add_to_command_tree
16
17
  from ..statistics import _create_invoker_and_load_cmds, _get_command_source, \
@@ -144,26 +145,7 @@ def cmp_command_meta(base_meta_file, diff_meta_file, only_break=False, output_ty
144
145
  def export_command_tree(modules, output_file=None):
145
146
  require_azure_cli()
146
147
 
147
- # allow user to run only on CLI or extensions
148
- cli_only = modules == ['CLI']
149
- ext_only = modules == ['EXT']
150
- if cli_only or ext_only:
151
- modules = None
152
-
153
- selected_modules = get_path_table(include_only=modules)
154
-
155
- if cli_only:
156
- selected_modules['ext'] = {}
157
- if ext_only:
158
- selected_modules['core'] = {}
159
- selected_modules['mod'] = {}
160
-
161
- if not any(selected_modules.values()):
162
- logger.warning('No commands selected to check.')
163
-
164
- selected_mod_names = list(selected_modules['mod'].keys())
165
- selected_mod_names += list(selected_modules['ext'].keys())
166
- selected_mod_names += list(selected_modules['core'].keys())
148
+ selected_mod_names = calc_selected_mod_names(modules)
167
149
 
168
150
  if selected_mod_names:
169
151
  display('Modules selected: {}\n'.format(', '.join(selected_mod_names)))
@@ -194,7 +194,7 @@ def _get_command_source(command_name, command):
194
194
  }
195
195
 
196
196
 
197
- def _create_invoker_and_load_cmds(cli_ctx):
197
+ def _create_invoker_and_load_cmds(cli_ctx, load_arguments=False):
198
198
  from knack.events import (
199
199
  EVENT_INVOKER_PRE_CMD_TBL_CREATE, EVENT_INVOKER_POST_CMD_TBL_CREATE)
200
200
  from azure.cli.core.commands import register_cache_arguments
@@ -215,9 +215,11 @@ def _create_invoker_and_load_cmds(cli_ctx):
215
215
  invoker.commands_loader.load_command_table(None)
216
216
  invoker.commands_loader.command_name = ''
217
217
 
218
- # cli_ctx.raise_event(EVENT_INVOKER_PRE_LOAD_ARGUMENTS, commands_loader=invoker.commands_loader)
219
- # invoker.commands_loader.load_arguments()
220
- # cli_ctx.raise_event(EVENT_INVOKER_POST_LOAD_ARGUMENTS, commands_loader=invoker.commands_loader)
218
+ if load_arguments:
219
+ from azure.cli.core.commands.events import EVENT_INVOKER_PRE_LOAD_ARGUMENTS, EVENT_INVOKER_POST_LOAD_ARGUMENTS
220
+ cli_ctx.raise_event(EVENT_INVOKER_PRE_LOAD_ARGUMENTS, commands_loader=invoker.commands_loader)
221
+ invoker.commands_loader.load_arguments()
222
+ cli_ctx.raise_event(EVENT_INVOKER_POST_LOAD_ARGUMENTS, commands_loader=invoker.commands_loader)
221
223
 
222
224
  cli_ctx.raise_event(EVENT_INVOKER_POST_CMD_TBL_CREATE, commands_loader=invoker.commands_loader)
223
225
  invoker.parser.cli_ctx = cli_ctx
@@ -256,3 +256,17 @@ def load_arguments(self, _):
256
256
  'If the base directory does not exist, it will be created')
257
257
  c.argument('output_type', choices=['xml', 'html', 'text', 'man', 'latex'], default="xml",
258
258
  help='Output type of the generated docs.')
259
+
260
+ with ArgumentsContext(self, 'generate-breaking-change-report') as c:
261
+ c.positional('modules', modules_type)
262
+ c.argument('target_version', default='NextWindow',
263
+ help='Only the breaking changes scheduled prior to the specified version will be displayed. '
264
+ 'The value could be `NextWindow`, `None` or a specified version like `3.0.0`')
265
+ c.argument('source', choices=['deprecate_info', 'pre_announce'], default='pre_announce',
266
+ help='The source of pre-announced breaking changes. `deprecate_info` represents all breaking changes '
267
+ 'marked through `deprecation_info`; `pre_announce` represents the breaking changes announced in '
268
+ '`breaking_change.py` file.')
269
+ c.argument('group_by_version', action='store_true',
270
+ help='If specified, breaking changes would be grouped by their target version as well.')
271
+ c.argument('output_format', choices=['structure', 'markdown'], default='structure',
272
+ help='Output format of the collected breaking changes.')
@@ -47,7 +47,8 @@ from .path import (
47
47
  get_cli_repo_path,
48
48
  get_ext_repo_paths,
49
49
  get_path_table,
50
- get_name_index
50
+ get_name_index,
51
+ calc_selected_mod_names
51
52
  )
52
53
  from .testing import test_cmd
53
54
  from .tools import (
@@ -93,4 +94,5 @@ __all__ = [
93
94
  'require_virtual_env',
94
95
  'require_azure_cli',
95
96
  'diff_branches_detail',
97
+ 'calc_selected_mod_names',
96
98
  ]
@@ -3,7 +3,7 @@
3
3
  # Licensed under the MIT License. See License.txt in the project root for
4
4
  # license information.
5
5
  # -----------------------------------------------------------------------------
6
-
6
+ import logging
7
7
  import os
8
8
  from glob import glob
9
9
 
@@ -11,6 +11,8 @@ from knack.util import CLIError
11
11
 
12
12
  from .const import COMMAND_MODULE_PREFIX, EXTENSION_PREFIX, ENV_VAR_VIRTUAL_ENV
13
13
 
14
+ logger = logging.getLogger(__name__)
15
+
14
16
 
15
17
  def extract_module_name(path):
16
18
 
@@ -261,3 +263,27 @@ def get_path_table(include_only=None, include_whl_extensions=False):
261
263
  raise CLIError('unrecognized modules: [ {} ]'.format(', '.join(include_only)))
262
264
 
263
265
  return table
266
+
267
+
268
+ def calc_selected_mod_names(modules=None):
269
+ # allow user to run only on CLI or extensions
270
+ cli_only = modules == ['CLI']
271
+ ext_only = modules == ['EXT']
272
+ if cli_only or ext_only:
273
+ modules = None
274
+
275
+ selected_modules = get_path_table(include_only=modules)
276
+
277
+ if cli_only:
278
+ selected_modules['ext'] = {}
279
+ if ext_only:
280
+ selected_modules['core'] = {}
281
+ selected_modules['mod'] = {}
282
+
283
+ if not any(selected_modules.values()):
284
+ logger.warning('No commands selected to check.')
285
+
286
+ selected_mod_names = list(selected_modules['mod'].keys())
287
+ selected_mod_names += list(selected_modules['ext'].keys())
288
+ selected_mod_names += list(selected_modules['core'].keys())
289
+ return selected_mod_names
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: azdev
3
- Version: 0.1.81
3
+ Version: 0.1.82
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
@@ -148,6 +148,10 @@ License
148
148
 
149
149
  Release History
150
150
  ===============
151
+ 0.1.82
152
+ ++++++
153
+ * `azdev generate-breaking-change-report`: New command to collect upcoming breaking changes from codebase.
154
+
151
155
  0.1.81
152
156
  ++++++
153
157
  * `azdev scan/mask`: Add `--confidence-level` to support secret pattern levels
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