이것은 PYPI에서 배포 할 파이썬 프로젝트를 만들기위한 Cookiecutter 템플릿입니다. 여기에는 GitHub Actions, ReadThedocs.io 및 Coverals.io와의 통합이 포함됩니다.
프로젝트 구조는 사과 시연 프로젝트의 패턴을 따릅니다. 시는 파이썬 포장 및 종속성을 관리하며, 대부분의 일상적인 작업 (예 : 명령 줄에서 단위 테스트 실행과 같은)은 런 스크립트 프레임 워크를 사용하여시를 통해 조정됩니다. 코딩 표준은 검은 색, Isort 및 Pylint를 사용하여 시행됩니다. Python 3 유형 Hinting은 MyPy를 사용하여 검증됩니다. GitHub Actions Workflow는 GHA 공유 작업 흐름을 사용하여 구현 된 매트릭스 빌드입니다. 코드 스타일 검사를 시행하기위한 사전 커밋 후크도 있습니다. 생성 된 DEVELOPER.md 파일은 코드 구성 방법, 개발 환경 설정 방법 등에 대한 메모를 제공합니다.
이 템플릿을 사용하려면 cookiecutter를 설치해야합니다.
pip install cookiecutter
결과 프로젝트는시 빌드 도구에 따라 다릅니다. Python 3 통역사 및 시만 설치해야합니다. 시 그 자체는 다른 모든 것을 처리합니다. 지침을 참조하십시오.
결과 DEVELOPER.md 파일에 설명 된 개발자 프로세스는 Bash와 같은 Unix 스타일 쉘을 작동한다고 가정합니다. Windows에서는 Windows 용 Git과 함께 설치된 Git Bash 에뮬레이터를 사용해야합니다.
기본적으로 생성 된 .github/workflows/test-suite.yml 워크 플로의 릴리스 프로세스는 Github 저장소의 릴리스에 첨부하여 아티팩트를 게시하도록 구성됩니다. (생성 된 DEVELOPER.md 파일에는 지침이 포함되어 있습니다.) 선택적으로 PYPI에 게시 할 수도 있습니다. 이렇게하려면 PYPI에서 직접 계정을 작성하고 프로젝트를 등록하십시오. 프로젝트가 존재하면 PYPI 계정 설정으로 이동하여 새 프로젝트에 대한 업로드 권한이있는 API 토큰을 만듭니다. GitHub 리포지토리에서 PYPI_TOKEN 라는 GitHub Actions 비밀을 추가하여 토큰을 고정하십시오. 그런 다음 test-suite.yml 조정하여 publish-pypi: true 설정하십시오.
cookiecutter 사용하여 템플릿을 실행하십시오.
cookiecutter gh:pronovic/cookiecutter-pypi
프롬프트되면 모든 템플릿 매개 변수에 대한 값을 제공합니다.
project_slug [sample-project]:
project_name [Sample Project]:
short_description [Short description]:
author_name [First Last]:
author_email [[email protected]]:
github_owner [owner]:
github_repo [samplerepo]:
default_branch [master]:
package [sample]:
python_version [>=3.9,<4]:
black_target ['py39', 'py310']:
copyright_year [2022]:
프로젝트 슬러그는 결과 디렉토리의 이름 이므로이 예에서는 프로젝트가 sample-project 에서 생성됩니다.
cd sample-project
그런 다음 git 저장소를 초기화하십시오.
git init . && git add . && git commit -m "Initial revision based on pronovic/cookiecutter-pypi"
이미 poetry 설치했다고 가정하면 (지침에 따라) run 스크립트를 사용하여 일을 시작할 수 있습니다. 먼저 종속성을 설치하고 사전 커밋 후크를 설정하십시오.
./run install
마지막으로 테스트 스위트를 실행하십시오.
./run suite
테스트 스위트 패스를 가정하면 poetry.lock 을 확인해야합니다.
git add poetry.lock && git commit -m "Add initial poetry.lock" poetry.lock
그런 다음 저장소로 밀고 GitHub 작업 프로세스를 테스트 할 수 있습니다.
참고 : 사용 가능한 다른 명령을 보려면
./run --help사용하십시오. Pycharm과의 통합 등 개발 환경에 대한 자세한 내용은 생성 된DEVELOPER.md파일을 참조하십시오.
테스트하려는 플랫폼 및 파이썬 버전을 반영하려면 .github/workflows/test-suite.yml 수동으로 조정해야합니다. 제안 된 워크 플로는 지원되는 모든 Python 버전에 대한 Linux에서 매트릭스 빌드와 최신 Python 버전의 경우에만 Windows 및 MacOS를 빌드합니다. GitHub 액션에서 Linux 러너는 훨씬 빠르고 신뢰할 수 있으므로이 전략은 최상의 결과를 얻는 것으로 보입니다.