Python
Build Status
azdev 도구는 신규 및 숙련된 개발자가 Azure CLI 명령어 모듈과 확장 기능에 기여할 수 있도록 돕기 위해 설계되었습니다.
시작하기 비디오 (Getting Started Videos)
1. 저장소 복제 (Cloning Repos)
2. azdev setup을 이용한 설정 (Setup with azdev setup)
3. azdev style/test/linter 기본 사용법 (Basics with azdev style/test/linter)
4. azdev cli create를 이용한 모듈 생성 (Creating modules with azdev cli create)
5. azdev extension create를 이용한 확장 기능 생성 (Create extensions with azdev extension create)
6. azdev extension publish를 이용한 확장 기능 게시 (Publishing extensions with azdev extension publish)
개발 환경 설정하기 (Setting up your development environment)
- http://python.org에서 Python 3.6/3.7/3.8을 설치하십시오. 참고로, OSX에 기본으로 설치되는 Python 버전은 2.7입니다. 현재는 Python 3.9 사용이 권장되지 않습니다.
- 개발하고자 하는 저장소 또는 여러 개의 저장소를 Fork하고 Clone 하십시오.
azure-cli를 Fork한 후에는 다음 명령어를 따라 설정하십시오:
# Fork한 저장소를 Clone합니다
git clone https://github.com/<your-github-name>/azure-cli.git
...
azure-cli-extensions의 경우도 동일하게 할 수 있지만, 기본 브랜치가 main이므로 대신 git branch main --set-upstream-to upstream/main을 실행하십시오.
코드를 푸시할 때 필요한 Git의 GitHub 자격 증명 캐싱에 대해서는 [Git에서 GitHub 인증하기]를 참조하십시오.
- 클론된 루트 디렉터리에 Python용 새로운 가상 환경을 만드십시오. 다음 명령어를 실행하여 수행할 수 있습니다:
Python 3.6+ (모든 플랫폼):
또는
- 다음 명령어를 실행하여 가상 환경을 활성화하십시오:
Windows CMD.exe:
Windows Powershell:
OSX/Linux (bash):
azdev 준비 및 설치
리눅스를 사용하는 경우, 먼저 다음 명령어를 실행하여 종속성 패키지를 설치하십시오:
apt 패키지의 경우:
sudo apt install gcc python3-dev
rpm 패키지의 경우:
sudo yum install gcc python3-devel
그렇지 않으면 나중에 azure-cli를 설정할 때 psutil 설치 문제(#269)가 발생합니다.
모든 플랫폼에서 pip 업그레이드:
python -m pip install -U pip
azdev 설치:
- 다음 명령어를 실행하여 설정을 완료하십시오:
이렇게 하면 대화형 설정 프로세스가 시작됩니다. 비대화형 옵션으로도 실행할 수 있습니다:
azdev setup --cli /path/to/azure-cli --repo /path/to/azure-cli-extensions
더 많은 비대화형 옵션을 보려면 azdev setup --help를 실행하십시오.
명령어 및 테스트 작성 (Authoring commands and tests)
[azure-rest-api-specs]의 REST API SPEC을 기반으로 명령어를 구축하는 경우, [aaz-dev-tools]를 활용하여 명령어를 생성할 수 있습니다. 그렇지 않다면 다음 명령어를 실행하여 코드 템플릿을 만들 수 있습니다:
azdev extension create <extension-name>
또는
azdev cli create <module-name>
확장 기능을 개발하는 경우, 해당 명령을 실행하기 전에 소스 코드에서 확장 기능을 설치해야 합니다. 다음 명령을 실행하세요:
azdev extension add <확장 기능 이름>
명령 인터페이스와 도움말 메시지를 빠르게 확인하려면, 명령어 그룹 또는 명령어에 대해 az <명령어> --help를 실행하세요.
수동으로 명령과 테스트를 작성하는 방법에 대한 지침은 다음을 참조하세요:
스타일, linter 검사 및 테스트
- 코드 스타일 확인 (Pylint 및 PEP8):
azdev style <확장 기능 이름/모듈 이름>
2. CLI 명령어 테이블의 정적 코드 검사 실행:
```
azdev linter <확장 기능 이름/모듈 이름>
- CLI 테스트 기록 또는 재생:
azdev test <확장 기능 이름/모듈 이름>
기본적으로 테스트는 `once` 모드로 실행됩니다. 일치하는 기록 파일(yaml 형식)이 없는 경우, 라이브 테스트를 실행하고 기록 파일을 생성합니다. 기록 파일이 발견되면, 테스트는 해당 기록 파일을 대상으로 `playback` 모드에서 실행됩니다. `--live` 플래그를 사용하면 테스트를 강제로 `live` 모드로 실행하고 기록 파일을 재생성할 수 있습니다.
## 최신 패키지 인덱스
Azure CLI의 최신 인덱스 생성 스크립어를 사용하여 azdev 래퍼를 사용하세요:
azdev latest-index generate
azdev latest-index verify
필요에 따라 명시적인 Azure CLI 체크아웃 경로를 전달할 수 있습니다:
azdev latest-index generate --cli /path/to/azure-cli
azdev latest-index verify --repo /path/to/azure-cli
`azdev latest-index verify`는 생성된 출력이 커밋된 `commandIndex.latest.json` 또는 `helpIndex.latest.json`과 다를 경우 0이 아닌 값으로 종료되므로, CI 환경에 적합합니다.
## 코드를 병합하기 위한 풀 리퀘스트 제출
1. 로컬에서 코드를 커밋한 후, 포크된(forked) 저장소로 푸시합니다:
```
git push --set-upstream origin <feature_branch>
```
2. 자신의 저장소의 `feature_branch`에서 기본 브랜치(default branch)인 [Azure/azure-cli] 또는 [Azure/azure-cli-extensions] 저장소로 병합(merge)하기 위해 PR(Pull Request)을 제출합니다. 자세한 내용은 [Submitting Pull Requests]와 [Publish Extensions]를 참조하세요.
## 문제 보고 및 피드백 (Reporting issues and feedback)
도구 사용 중 버그를 발견하면 저희 GitHub 저장소의 [Issues] 섹션에 이슈를 등록해 주세요.
## 코드 기여 (Contribute Code)
이 프로젝트는 [Microsoft Open Source Code of Conduct]를 채택했습니다.
더 자세한 정보는 [Code of Conduct FAQ]를 참조하거나, 추가 질문이나 의견이 있으면 [[email protected]]으로 연락해 주세요.
본 프로젝트의 활성 기여자가 되고자 한다면 [Microsoft Azure Projects Contribution Guidelines]에 제공된 지침을 따라주세요.
## 라이선스 (License)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Azure CLI Dev Tools (azdev)
Copyright (c) Microsoft Corporation
...