Microsoft Azure CLI Developer Tools
The azdev
tool is designed to aid new and experienced developers in contributing to Azure CLI command modules and extensions.
Setting up your development environment +++++++++++++++++++++++++++++++++++++++
Install Python 3.6+ from http://python.org. Please note that the version of Python that comes preinstalled on OSX is 2.7.
Fork and clone the repository or repositories you wish to develop for.
Create a new virtual environment for Python in the root of your clone. You can do this by running:
Python 3.6+ (all platforms):
::
python -m venv env
or:
::
python3 -m venv env
Activate the env virtual environment by running:
Windows CMD.exe:
::
env\scripts\activate.bat
Windows Powershell:
::
env\scripts\activate.ps1
OSX/Linux (bash):
::
source env/bin/activate
Install azdev
by running:
::
pip install azdev
Complete setup by running:
::
azdev setup
This will launch the interactive setup process. To see non-interactive options run azdev setup -h
.
Reporting issues and feedback +++++++++++++++++++++++++++++
If you encounter any bugs with the tool please file an issue in the Issues <https://github.com/Azure/azure-cli-dev-tools/issues>
__ section of our GitHub repo.
Contribute Code +++++++++++++++
This project has adopted the Microsoft Open Source Code of Conduct <https://opensource.microsoft.com/codeofconduct/>
__.
For more information see the Code of Conduct FAQ <https://opensource.microsoft.com/codeofconduct/faq/>
__ or contact opencode@microsoft.com <mailto:opencode@microsoft.com>
__ with any additional questions or comments.
If you would like to become an active contributor to this project please
follow the instructions provided in Microsoft Azure Projects Contribution Guidelines <http://azure.github.io/guidelines.html>
__.
License +++++++
::
Azure CLI Dev Tools (azdev)
Copyright (c) Microsoft Corporation
All rights reserved.
MIT License
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the ""Software""), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.::
.. :changelog:
0.1.61 ++++++
azdev test
: Add some examples.azdev style
: Modify the execution order of the _update_table function.azdev linter
: Bug fixes for _detected_tested_command
, strictly limited to starting with test and ending with .py or .yaml0.1.60 ++++++
azdev statistics list-command-table
: Handle exceptions when source code cannot be retrieved0.1.59 ++++++
azdev command-change meta-export
: Normalize basic cmd types: str, bool, int, float0.1.58 ++++++
0.1.57 ++++++
azdev command-change meta-diff
: Remove duplicated meta-diff code and use azure-cli-diff-tool0.1.56 ++++++
0.1.55 ++++++
azdev command-change meta-diff
: Fix data/meta_change_whitelist.txt pkg building0.1.54 ++++++
azdev command-change meta-export/meta-diff
: Add cmd type
extraction, fix false positive in cmdPropUpdate and add whitelist in certain meta-changes (#401)0.1.53 ++++++
azdev command-change meta-export
: Add rule link (#402)0.1.52 ++++++
0.1.51 ++++++
0.1.50 ++++++
0.1.49 ++++++
0.1.48 ++++++
azdev command-change meta-export
: Add option deprecation info and ignore cmd
arg (#381)0.1.47 ++++++
azdev command-change meta-export
: Load parameter from module loader (#378)0.1.46 ++++++
azdev command-change meta-diff
: Add subgroups change detect (#374)0.1.45 ++++++
azdev command-change meta-diff
: Refine no meta diff output (#372)0.1.44 ++++++
azdev command-change meta-export
: Fix object dump failure (#370)0.1.43 ++++++
azdev statistics list-command-table
: Fix unexpected indent (#368)0.1.42 ++++++
azdev command-change meta-export/meta-diff
: Generate cli cmd meta data and the diffs between two meta data (#362)0.1.41 ++++++
azdev statistics list-command-table
: Support stats of nested function (#363)0.1.40 ++++++
0.1.39 ++++++
0.1.38 ++++++
azdev statistics list-command-table
: List Command table for CLI modules (#342)azdev statistics diff-command-tables
: Diff the command table change (#343)0.1.37 ++++++
azdev verify license
: Support license for CodeGen V2 (#334)azdev test
: Revert integrate pytest-cov (#327)0.1.36 ++++++
0.1.35 ++++++
master
branch by main
branch (#315)mock
library (#313)0.1.34 ++++++
azdev linter
: support to detect commmand groups which are missing in command_group_table (#308)0.1.33 ++++++
pylint
to 2.8.2 and move --ignore
to pylintrc
file (#301)0.1.32 ++++++
pylint
to 2.8.0 (#295)0.1.31 ++++++
azdev style
: Fix pylint
by pinning astroid
to 2.4.2 (#294)_copy_vendored_sdk
for Track 2 SDK (#293)0.1.30 ++++++
0.1.29 ++++++
azdev linter
: Remove the prefix dashes in option length calculation (#284)azdev setup
: Show error if pip
command fails (#281)0.1.28 ++++++
azdev linter
.0.1.27 ++++++
show_command
or custom_show_command
.0.1.26 ++++++
0.1.25 ++++++
azdev test
: new parameter --markazdev perf benchmark
: refine output0.1.24 ++++++
_
".0.1.23 ++++++
0.1.22 ++++++
0.1.21 ++++++
azdev perf benchmark
: support new command to calculate each command execution time.0.1.20 ++++++
azdev setup
: Fix missing dependencies of azure-cli-testsdk0.1.19 ++++++
0.1.18 ++++++
Linter Rule Severity: Rules now have an associated severity level. Only high severity rules should be run in CI. All previous rules are annotated as HIGH severity.
linter_exclusions.yml
in the CLI.azdev linter
: Expose --min-severity
to support idea of rule severity. New HIGH, MEDIUM and LOW severity rules have also been added.
0.1.17 ++++++
azdev setup
: Add option --deps-from to allow resolving dependencies from requirements.txt or setup.py. The default changes to requirements.txt.0.1.16 ++++++
azdev test
: Add option --no-exit-first to disable pytest exit once failure is detected0.1.15 ++++++
sys.exit(0)
when no tests need to run instead of raising CLIError0.1.14 ++++++
ProfileContext
AzureDevOpsContext
to apply incremental test strategy0.1.13 ++++++
0.1.12 ++++++
0.1.11 ++++++
0.1.10 ++++++
0.1.9 ++++++
pip install -e
instead in ADO to fix fix import bug0.1.8 ++++++
0.1.7 ++++++
0.1.6 ++++++
0.1.5 ++++++
--ext/-e *
.--cli/-c EDGE
.--include-whl-extensions
flag to permit running the linter on extensions installed using
the az extension add
command.azdev cli/extension generate-docs
to generate sphinx documentation.0.1.4 ++++++
azdev linter
: Fix issue with help example rule.azdev style
: Omit namespace packages from core modules.azdev verify document-map
: Updates to work correctly on Linux.0.1.3 ++++++
azdev linter
: Fix issue where certain installations would fail on ci_exclusions.yml
not found.0.1.2 ++++++
azdev setup
: Fix regression where azure.cli could not be run after installation.0.1.1 ++++++
azdev cli/extension create
: Fix issue where supporting files were not included. Adjust generation logic.0.1.0 ++++++
azdev cli update-setup
. Package changes to azure-cli no longer require this.azdev verify history
and azdev cli check-versions
no longer accept any arguments. Since there are
now far fewer modules, these were deemed unnecessary.0.0.6 ++++++
azdev cli create
and azdev extension create
to scaffold new modules/extensions.azdev setup
: Tweaks to interactive experience.azdev test
: Fix issue where using --profile
did not use the correct index.
Changed the behavior to switch back to the original profile upon completion of tests.0.0.5 ++++++
azdev cli check-versions
did not accept the short form of a module name.azdev cli check-versions
to allow modules as a positional argument, consistent with other azdev commands.azdev test --discover
could result in a stack trace when a virtual environment exists within an extensions repo.0.0.4 ++++++
azdev setup
.0.0.3 ++++++
azdev extension build
and azdev extension publish
to simplify extension publishing.azdev linter
when used on extensions.--ci-exclusions
flag to azdev linter
to emulate CI mode when run locally.azdev test --discover
could result in a stack trace when a virtual environment exists within a cloned repo.azdev per load-times
.0.0.2 ++++++
azdev test
to, by default, run tests on everything to be consistent with commands like azdev style
and azdev linter
.azdev verify version
and splits into two commands azdev cli check-versions
and azdev cli update-setup
.azdev perf load-times
to reduce spurious failures.0.0.1 ++++++