이 프로젝트는 PYPI 표준 패키지 생성을위한 전체 구조를 생성하는 Cookiecutter 템플릿으로 구성됩니다.
이 프로젝트를 사용하는 동안 저자, 프로젝트 이름 등과 같은 일부 입력을 제공해야합니다. 결과적으로 패키지를 빠르게 코딩하기 위해 완전한 파일 및 폴더 구조를 얻을 수 있습니다.
"Feddit"이라는 프로젝트를 만들고 싶다고 가정 해 봅시다. CookieCutter를 기반 으로이 템플릿을 사용하면 빌드 가능한 PYPI 패키지를 신속하게 설정할 수 있습니다.
먼저 Cookiecutter를 얻으십시오. 날 믿어 굉장 해요 :
$ pip install cookiecutter
또는 시 와 함께 :
$시 자체 추가 Cookiecutter
이제이 repo에 대해 실행하십시오.
$ cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
또는:
$ Poetry Run Cookiecutter https://github.com/zhiwei2017/pyckage-cookiecutter
몇 가지 값을 제출할 수 있습니다. 그들에게 제공하면 프로젝트가 만들어집니다.
경고 :이 시점 후에 ' 내 멋진 프로젝트 ', ' John Doe '등을 자신의 정보로 변경하십시오.
원하는 프롬프트로 프롬프트에 답하십시오. 예를 들어:
'pyckage-cookiecutter'로 클로닝 ... 원격 : 열거하는 개체 : 219, 완료. 원격 : 계산 물체 : 100% (219/219), 완료. 원격 : 압축 물체 : 100% (123/123), 완료. 원격 : 총 219 (Delta 83), 재사용 181 (Delta 69), Pack Resised 0 수신 객체 : 100% (219/219), 41.09 kib | 1.71 MIB/S, 완료. 델타 해결 : 100% (83/83), 완료. [1/8] 프로젝트 이름을 선택합니다 (내 멋진 프로젝트) : [2/8] 소스 코드를 호스팅하기위한 프로젝트 URL. (https://repository-hosting.com/example_project) : https://github.com/zhiwei2017/feddit [3/8] 저자 전체 이름. (John Doe) : John Doe [4/8] 저자 이메일 주소. ([email protected]) : [email protected] [5/8] 간단한 설명. (내 멋진 프로젝트를 보라!) : 가짜 레딧 API. [6/8] 릴리스에 사용할 시맨틱 버전. (0.1.0) : 0.1.0 [7/8] 프로젝트에 어떤 라이센스를 사용 하시겠습니까? 1- 없음 2- MIT 3- 아파치 4-2 -Clause BSD 5-3 -Clause BSD 6 -gpl [1/2/3/4/5/6] (1) : 2 중에서 선택하십시오 [8/8] 어떤 CI/CD 파이프 라인을 사용할 계획입니까? 1- 없음 2 -Github 3- gitlab 4- 비트 버킷 [1/2/3/4] (1) : 2에서 선택하십시오 ** 프로젝트의 Readme.rst의 의견을 읽으십시오. CI/CD 파이프 라인을 설정하고 MakeFile에서 명령을 사용하는 방법을 알아보십시오. **
프로젝트를 입력하고 주변을 둘러보십시오.
$ cd Feddit/ $ ls
repo에는 다음과 같은 구조가 있어야합니다.
Feddit .github- GitHub 조치 구성 Workflows Test.yml- 검사 및 테스트를위한 파이프 라인 relpely.yml- 태그가있는 릴리스 파이프 라인 sphinx.yml- github 페이지를 게시하기위한 파이프 라인 DOCS- 스핑크스 문서 sphinfile -makefile -makefile은 스핑크스 문서의 터미널 명령을 정의합니다. │ │ │ ─헤 소스 - 문서 소스 폴더 01_ABOR.RST 02_Source.rst 03_authors.rst 04_Contributing.rst conf.py- 스핑크스 구성 파일 index.rst ├ ─) Feddit │ │ │─퀴 __init__.py Tests- 테스트 │ │ │ ─퀴 - 리소스 - 테스트에 사용되는 리소스 conftest.py- 테스트의 비품 Test_version.py- 테스트 버전 정보. .gitignore Contributing.RST- 기여 가이드 라인 license 라이센스 makefile- 사전 정의 된 터미널 명령 ├ 착수 ├ ─) README.RST- 패키지 정보 setup.cfg- pyproject.toml을 지원하지 않기 때문에 flake8에 대한 구성. pyproject.toml- 패키지 구성 파일
패키지를 PYPI에 업로드하기 위해 CI/CD 파이프 라인을 사용하려면 섹션 CI/CD 구성을 확인하십시오.
메모 :
이 repo는 휠 패키지로 제작되었으며 PYPI에 업로드됩니다. PIP 를 통해 설치할 수 있습니다.
$ pip Pyckage-CookieCutter를 설치합니다
또는 시 를 통해 :
$시 자체 추가 pyckage-cookiecutter
전화로 새 프로젝트 생성을 시작하십시오.
$ pyckage_cookiecutter
또는:
$ Poetry Run pyckage_cookiecutter
나머지는 소개 된 자습서와 동일합니다.
CI/CD 파이프 라인은 생성 된 프로젝트에서 사전 정의되어 있습니다. 단계가 포함 된 다음과 다른 플랫폼에서 구성하는 방법을 확인하십시오.
.github/workflows 폴더에서 GitHub 작업의 모든 구성 파일을 찾을 수 있습니다.
| 구성 파일 | 단계 | 트리거 규칙 | 필수 CI/CD 변수 | CI/CD 변수 설명 |
|---|---|---|---|---|
| test.yml | Mypy Check |
| ||
| Flake8 확인 | ||||
| 산적 확인 | ||||
| Python 3.8 (Ubuntu/Mac OS/Windows)로 테스트 | ||||
| Python 3.9 (Ubuntu/Mac OS/Windows)로 테스트 | ||||
| Python 3.10으로 테스트 (Ubuntu/Mac OS/Windows) | ||||
| Python 3.11 (Ubuntu/Mac OS/Windows)으로 테스트 | ||||
| Python 3.12 (Ubuntu/Mac OS/Windows)로 테스트 | ||||
| 꼬기 패키지를 확인하십시오 | ||||
| release.yml | PYPI에 배포하십시오 | vxx.xx.xx 와 일치하는 태그로 푸시합니다 | poetry_pypi_token_pypi | 공식 PYPI에 패키지를 업로드하기위한 토큰. 개인 인공물을 사용하는 경우 Package_Index_Repository_url, Package_Index_Username 및 Package_Index_password 변수를 사용하십시오. |
| package_index_repository_url | 개인 패키지 인덱스의 URL. | |||
| package_index_username | 개인 패키지 인덱스의 사용자 이름. | |||
| package_index_password | 개인 패키지 색인의 비밀번호. | |||
| sphinx.yml | GitHub 페이지를 배포합니다 | 마스터 브랜치로 밀어냅니다 |
메모 :
프로젝트의 Github 페이지를 처음으로 게시하기 전에 다음을 통해 지점 GH-PAGE를 수동으로 작성하십시오.
$ git 체크 아웃 마스터 $ git 체크 아웃 -B GH -PAGE $ git 푸시 원산지 GH-PAGE
파일 .gitlab-ci.yml 에는 gitlab ci에 대한 모든 구성이 포함되어 있습니다.
| 단계 | 단계 | 트리거 규칙 | 필수 CI/CD 변수 | CI/CD 변수 설명 |
|---|---|---|---|---|
| 일선 | Mypy Check |
| ||
| Flake8 확인 | ||||
| 산적 확인 | ||||
| 시험 | 파이썬 3.8로 테스트 | |||
| 파이썬 3.9로 테스트 | ||||
| Python 3.10으로 테스트하십시오 | ||||
| 파이썬 3.11로 테스트하십시오 | ||||
| 파이썬 3.12로 테스트 | ||||
| 짓다 | 꼬기 패키지를 확인하십시오 | |||
| 배포 | PYPI에 배포하십시오 | vxx.xx.xx 와 일치하는 태그로 푸시합니다 | poetry_pypi_token_pypi | 공식 PYPI에 패키지를 업로드하기위한 토큰. 개인 인공물을 사용하는 경우 Package_Index_Repository_url, Package_Index_Username 및 Package_Index_password 변수를 사용하십시오. |
| package_index_repository_url | 개인 패키지 인덱스의 URL. | |||
| package_index_username | 개인 패키지 인덱스의 사용자 이름. | |||
| package_index_password | 개인 패키지 색인의 비밀번호. |
설정 으로 이동하십시오.
CI/CD 섹션을 클릭하십시오.
변수 섹션으로 이동하십시오.
변수 추가 버튼을 클릭하십시오.
CI/CD 변수의 이름과 값을 입력하십시오.
기본적으로 플래그 보호 된 플래그가 확인되므로 추가 변수는 보호 된 가지/태그에만 사용할 수 있습니다. 변수 보호를 유지하려면 설정 -> 리포지토리 -> 보호 태그 에서 와일드 카드 V*를 보호 된 태그로 추가하십시오.
또는 상자를 선택 취소하여 모든 분기 및 태그의 변수를 사용할 수 있습니다.
bitbucket-pipelines.yml 파일에는 Bitbucket 파이프 라인의 모든 구성이 포함되어 있습니다.
| 단계 | 트리거 규칙 | 필수 CI/CD 변수 | CI/CD 변수 설명 |
|---|---|---|---|
| Mypy Check |
| ||
| Flake8 확인 | |||
| 산적 확인 | |||
| 파이썬 3.8로 테스트 | |||
| 파이썬 3.9로 테스트 | |||
| Python 3.10으로 테스트하십시오 | |||
| 파이썬 3.11로 테스트하십시오 | |||
| 파이썬 3.12로 테스트 | |||
| 꼬기 패키지를 확인하십시오 | |||
| PYPI에 배포하십시오 | vxx.xx.xx 와 일치하는 태그로 푸시합니다 | poetry_pypi_token_pypi | 공식 PYPI에 패키지를 업로드하기위한 토큰. 개인 인공물을 사용하는 경우 Package_Index_Repository_url, Package_Index_Username 및 Package_Index_password 변수를 사용하십시오. |
| package_index_repository_url | 개인 패키지 인덱스의 URL. | ||
| package_index_username | 개인 패키지 인덱스의 사용자 이름. | ||
| package_index_password | 개인 패키지 색인의 비밀번호. |
저장소 설정 으로 이동하십시오.
저장소 변수를 클릭하십시오.
추가 버튼을 클릭하십시오.
CI/CD 변수의 이름과 값을 입력하십시오.
새 변수를 처음으로 추가하기 전에 파이프 라인을 활성화해야합니다.
| 명령 | 설명 |
|---|---|
| 깨끗한 | 자가 생성 된 폴더와 아티팩트를 제거하십시오. |
| 깨끗한 파이크 | 파이썬 아티팩트를 제거하십시오. |
| 깨끗한 건축 | 빌드 아티팩트를 제거하십시오. |
| 적기 | 산적 보안 분석을 실행하십시오. |
| Mypy | MyPy 유형 확인을 실행하십시오. |
| 플레이크 8 | Flake8 Linting을 실행하십시오. |
| 설치하다 | 모든 종속성과 패키지 자체를 설치하십시오. |
| 시험 | 테스트를 실행하고 적용 범위 보고서를 생성합니다. |
| 짓다 | 휠 패키지 빌드. |
| 게시 | 빌드 휠 패키지를 게시하십시오. |
Nice Contributing.rst 템플릿에 대한 프로젝트 CookieCutter-Pypackage에 특별한 감사를드립니다.