Skip to main content

Microsoft Azure CLI Developer Tools

Project description

Microsoft Azure CLI Dev Tools (azdev)

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

  1. Install Python 3.6+ from http://python.org. Please note that the version of Python that comes preinstalled on OSX is 2.7.

  2. Fork and clone the repository or repositories you wish to develop for.
  3. 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
  4. 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
  5. Install azdev by running:

    pip install azdev
  6. 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 section of our GitHub repo.

Contribute Code

This project has adopted the Microsoft Open Source Code of Conduct.

For more information see the Code of Conduct FAQ or contact 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.

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.::

Release History

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 .yaml

0.1.60

  • azdev statistics list-command-table: Handle exceptions when source code cannot be retrieved

0.1.59

  • azdev command-change meta-export: Normalize basic cmd types: str, bool, int, float

0.1.58

  • Fix cmdcov issue(#417): Any name of a parameter has been tested, the parameter should be considered as passing the parameter test coverage.

0.1.57

  • azdev command-change meta-diff: Remove duplicated meta-diff code and use azure-cli-diff-tool

0.1.56

  • Fix cmdcov issue(#410): Get config from github when get_cli_repo_path failed

0.1.55

  • azdev command-change meta-diff: Fix data/meta_change_whitelist.txt pkg building

0.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

  • Fix cmdcov issue(#396): Fix the regex which to get the command group

0.1.51

  • Fix cmdcov issue(#391): Add violation message to cmdcov linter rule and fix related issues

0.1.50

  • Fix cmdcov issue(#385): Add cmdcov to package data

0.1.49

  • Add Command Coverage Report for CLI modules (#323)

  • Add Linter rule missing_command_coverage and missing_parameter_coverage (#323)

  • Add Command Coverage Report for CLI extensions (#383)

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

  • Fix pytest issues (#347)

0.1.39

  • Fix package issues (#345)

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

  • Remove colorama reference (#321)

0.1.35

  • Support Python 3.10 (#319)

  • Replace master branch by main branch (#315)

  • Drop mock library (#313)

  • Add extension repo missing error (#309)

0.1.34

  • azdev linter: support to detect commmand groups which are missing in command_group_table (#308)

0.1.33

  • Bump pylint to 2.8.2 and move –ignore to pylintrc file (#301)

0.1.32

  • Bump pylint to 2.8.0 (#295)

0.1.31

  • azdev style: Fix pylint by pinning astroid to 2.4.2 (#294)

  • Fix _copy_vendored_sdk for Track 2 SDK (#293)

0.1.30

  • Change azure-storage-blob dependency (#290)

0.1.29

  • azdev linter: Remove the prefix dashes in option length calculation (#284)

  • azdev setup: Show error if pip command fails (#281)

  • Support Python 3.9 (#280)

0.1.28

  • [Linter] Fix minor display issue in azdev linter.

0.1.27

  • [Linter] “Show” command should use show_command or custom_show_command.

0.1.26

  • Support PEP420 package

0.1.25

  • azdev test: new parameter –mark

  • Update the way invoking pytest

  • azdev perf benchmark: refine output

  • Support PEP420 package

0.1.24

  • [Linter] Argument must have an option whose length is less than 22.

  • [Linter] Argument cannot contain “_”.

0.1.23

  • [Linter] Only violation of high severity rule would exit with 1.

  • Minimal pytest version requires at least 5.0.0.

0.1.22

  • Hornor the configuration of pylint and flake8 in Azure/azure-cli and Azure/azure-cli-extensions.

  • Rename test folder to make place for unittest of other commands.

  • Enable test result coverage.

0.1.21

  • Fix isort package version to 4.3.21.

  • azdev perf benchmark: support new command to calculate each command execution time.

0.1.20

  • azdev setup: Fix missing dependencies of azure-cli-testsdk

0.1.19

  • Downgrade parameter_should_not_end_in_resource_group’s severity to medium.

  • Fix bug that azdev test could not work on Windows with Chinese system language.

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.

    • Note: HIGH severity rules are egregious and should generally be fixed, not excluded. LOW severity rules tend to be informational, and might raise false positives. Exclude them via 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 detected

0.1.15

  • sys.exit(0) when no tests need to run instead of raising CLIError

0.1.14

  • Refine the logic of testing against different profiles with ProfileContext

  • pytest version limit change to pytest>=4.4.0

  • Use AzureDevOpsContext to apply incremental test strategy

  • Refine the main flow of azdev test to be more compact and clean

0.1.13

  • azdev verify license: fix bug that license verification will omit files while checking extensions

0.1.12

  • azdev extension publish: fix issue when –yes if not provided

  • azdev verify license: support CodeGen generated License

  • Drop Python 2 and Python 3.5 support

0.1.11

  • azdev extension build: remove –universal to respect setup.cfg

0.1.10

  • relax version limit of microsoft/Knack

0.1.9

  • azdev extension publish: add –storage-account-key and remove –storage-subscription

  • azdev extension update-index: remove unnecessary warning that will fail this command

  • CI: use pip install -e instead in ADO to fix fix import bug

0.1.8

  • fix: azdev test cannot be used in python 3.8.1 or later

0.1.7

  • fix: azdev test cannot find core tests

0.1.6

  • Fix bug: azdev==0.1.5 help commands’ error

0.1.5

  • azdev extension add/remove:
    • Add ability to supply wildcard (*) to install all available dev extensions.

    • Add ability to remove all installed dev extensions.

  • azdev setup:
    • Add ability to install all extensions using –ext/-e *.

    • Add ability to install CLI edge build with –cli/-c EDGE.

  • azdev style/test/linter:
    • Add special names CLI and EXT to allow running on just CLI modules or just extensions. extensions which have changed based on a git diff.

  • azdev linter:
    • Added –include-whl-extensions flag to permit running the linter on extensions installed using the az extension add command.

  • azdev verify license:
    • Command will not check any dev-installed CLI and extension repos. Previously, it only checked the CLI repo.

  • New 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

  • Update for compatability with azure-cli 2.0.68’s new package structure.

  • BREAKING CHANGE: Removed azdev cli update-setup. Package changes to azure-cli no longer require this.

  • BREAKING CHANGE: 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

  • Added new commands 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

  • Fix issue where azdev cli check-versions did not accept the short form of a module name.

  • Update azdev cli check-versions to allow modules as a positional argument, consistent with other azdev commands.

  • Fix issue where azdev test –discover could result in a stack trace when a virtual environment exists within an extensions repo.

0.0.4

  • Fix critical bug in azdev setup.

0.0.3

  • Adds new commands azdev extension build and azdev extension publish to simplify extension publishing.

  • Updates default exclusions for azdev linter when used on extensions.

  • Adds a –ci-exclusions flag to azdev linter to emulate CI mode when run locally.

  • Fix issue where azdev test –discover could result in a stack trace when a virtual environment exists within a cloned repo.

  • Tweaks thresholds for azdev per load-times.

0.0.2

  • Changes the behavior of azdev test to, by default, run tests on everything to be consistent with commands like azdev style and azdev linter.

  • Removes azdev verify version and splits into two commands azdev cli check-versions and azdev cli update-setup.

  • Various modifications to play nicely with azure-cli’s CI build system.

  • Revamps azdev perf load-times to reduce spurious failures.

0.0.1

  • Initial release

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

azdev-0.1.61.tar.gz (234.1 kB view details)

Uploaded Source

Built Distribution

azdev-0.1.61-py3-none-any.whl (260.6 kB view details)

Uploaded Python 3

File details

Details for the file azdev-0.1.61.tar.gz.

File metadata

  • Download URL: azdev-0.1.61.tar.gz
  • Upload date:
  • Size: 234.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for azdev-0.1.61.tar.gz
Algorithm Hash digest
SHA256 61df63cab5ae3eb7ad70361fceb49cd9afa712caf53639bc03b87ca83ced67d9
MD5 c0ad11db4c6df2c388b7a148b16e51d8
BLAKE2b-256 2624211c020a890e1ce457200bb30fcd6a567a039f80d92530af437c5150869f

See more details on using hashes here.

File details

Details for the file azdev-0.1.61-py3-none-any.whl.

File metadata

  • Download URL: azdev-0.1.61-py3-none-any.whl
  • Upload date:
  • Size: 260.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: RestSharp/106.13.0.0

File hashes

Hashes for azdev-0.1.61-py3-none-any.whl
Algorithm Hash digest
SHA256 9630650e0b2164eb108bb7dd43f6aed181b2e4215e6bc1e85f213d4a92774d63
MD5 a283792c7655de052c42c72ff73d8914
BLAKE2b-256 8efa4cc1a8c96c29ed9c2fccf6ef2647380f98e4d2d52c91b71efb2f9a4a1057

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page