콘텐츠로 이동

기여; 기여; 기여; 기부; 기부 (이 단어는 여러 의미를 가지며, 구체적인 번역은 문맥에 따라 결정되어야 합니다)

Starlette에 기여하는 데 관심을 가져주셔서 감사합니다. 여러 가지 방법으로 프로젝트에 기여할 수 있습니다.

버그 또는 기타 문제 보고

Starlette가 지원해야 할 것을 찾았습니까? 우연히 예상치 못한 행동을 만났습니까?

기여는 일반적으로 토론으로 시작해야 합니다. 가능한 버그는 "잠재적 문제" 토론으로 제기될 수 있으며 기능 요청은 "아이디어" 토론으로 제기될 수 있습니다. 그런 다음 해당 토론을 "문제"로 확대해야 하는지, 아니면 당김 요청을 고려할 것인지 결정할 수 있습니다.

가능한 한 많은 세부 사항을 설명하고 버그 보고서의 경우 다음과 같은 정보를 최대한 많이 제공하십시오.

  • 운영 체제 플랫폼
  • 파이썬 버전
  • 설치 종속성 및 버전(python -m pip freeze)
  • 코드 조각
  • 역추적 오류

항상 문제를 설명하는 가장 간단한 상황으로 예를 줄이려고 노력해야 합니다.

개발; 개발

Starlette 개발을 시작하려면 GitHub에서 Starlette 저장소용 포크를 만드십시오.

그런 다음 다음 다음 명령으로 분기를 복제하고 YOUR-USERNAME 를 GitHub 사용자 이름으로 바꿉니다.

$Git 클론https://github.com/YOUR-USERNAME/starlette

이제 다음 명령을 사용하여 프로젝트 및 종속성을 설치할 수 있습니다.

$CD 스타렛
$스크립트/설치

테스트 및 코드 검사

사용자 지정 셸 스크립트를 사용하여 테스트, 코드 검사 및 문서 작성 워크플로우를 자동화합니다.

이러한 테스트를 실행하려면 다음을 사용하십시오.

$스크립트/테스트

다른 모든 인수는 pytest 로 전달됩니다. 자세한 내용은 pyest 문서를 참조하십시오.

예를 들어 단일 테스트 스크립트 실행:

$스크립트/테스트 테스트/test_application.py

자동으로 포맷된 코드를 실행하려면:

$스크립트/보풀

마지막으로 코드 검사를 별도로 실행하려면(scripts/test 의 일부로도 실행됨) 다음을 실행합니다.

$스크립트/수표

기록; 문서 준비

설명서 페이지는 docs/ 폴더 아래에 있습니다.

문서 사이트를 로컬로 실행하려면(변경 내용을 미리 보는 데 유용) 다음을 사용하십시오.

$스크립트/문서

빌드/지속적인 통합 실패 해결

꺼내기 요청을 제출하면 테스트 제품군이 자동으로 실행되고 결과가 GitHub에 표시됩니다. 테스트 제품군이 실패하면 "세부 정보" 링크를 클릭하고 테스트 제품군이 실패한 이유를 확인해야 합니다.

실패한 PR 커밋 상태

테스트 제품군이 실패할 수 있는 몇 가지 일반적인 방법은 다음과 같습니다.

작업 확인 실패

GitHub 액션 보풀 작업 실패

이 작업 실패는 코드 형식 문제 또는 유형 주석 문제를 의미합니다. 작업 출력을 보고 실패한 이유를 파악하거나 셸에서 실행할 수 있습니다.

$스크립트/수표

$ scripts/lint 를 실행하여 코드를 자동으로 포맷하고 작업이 성공하면 변경 사항을 커밋하는 것이 좋습니다.

문서 작업 실패

이 작업 실패는 문서 빌드가 실패했음을 의미합니다. 이는 잘못된 Markdown 또는 mkdocs.yml 내의 구성 누락과 같은 다양한 이유로 발생할 수 있습니다.

파이썬 3. X 작업 실패

실패한 GitHub 액션 테스트 작업

이 작업 실패는 단위 테스트가 실패했거나 단위 테스트에 의해 모든 코드 경로가 덮어쓰기되지 않았음을 의미합니다.

테스트가 실패하면 적용 범위 보고서 아래에 이 메시지가 표시됩니다.

=== 1 failed, 435 passed, 1 skipped, 1 xfailed in 11.09s ===

테스트가 성공했지만 적용 범위가 현재 임계값에 도달하지 않으면 적용 범위 보고서 아래에 이 메시지가 표시됩니다.

FAIL Required test coverage of 100% not reached. Total coverage: 99.00%

게시; 릴리스; 릴리스

이 섹션은 Starlette 유지관리자를 대상으로 합니다.

새 버전을 출시하기 전에 다음 내용으로 꺼내기 요청을 만드십시오.

  • 변경 로그에 대한 업데이트:
    • 우리는 achangelog 형식을 따릅니다.
    • 는 master 를 최신 버전의 태그와 비교하고 사용자에게 관심 있는 모든 항목을 나열합니다.
      • 변경 로그에 문서화해야 하는 기능: 추가, 변경, 더 이상 사용되지 않거나 제거된 기능 및 버그 수정.
      • 변경 로그에 기록해서는 안 되는 사항: 문서, 테스트 또는 도구의 변경 사항.
      • 영향/중요도 내림차순으로 항목을 정렬하려고 합니다.
      • 간결하고 요점을 유지하십시오.🎯
  • 의 버전 업그레이드:__version__.py 를 참조하십시오.

예를 들어 #1600을 참조하십시오.

릴리스 PR이 병합되면 다음과 같은 새 릴리스가 생성됩니다.

0.13.3 와 같은* 레이블 버전. * 릴리스 제목 Version 0.13.3 * 변경 로그에서 복사하는 방법을 설명합니다.

이 버전이 생성되면 자동으로 PyPI에 업로드됩니다.

PyPI 작업에 문제가 있는 경우 scripts/publish 스크립트를 사용하여 버전을 릴리스할 수 있습니다.