Flower 릴리즈 하기#

이 문서는 현재 릴리즈 과정을 설명합니다. 이는 앞으로 변경될 수도 있습니다.

릴리즈 동안에#

릴리즈의 버전 번호는 ``pyproject.toml``에 명시되어 있습니다. Flower의 새 버전을 릴리즈하려면 다음 작업이 순서대로 수행되어야 합니다:

  1. 모든 새로운 변경 사항을 변경 로그에 추가하기 위해``python3 src/py/flwr_tool/update_changelog.py <YOUR_GH_TOKEN>``을 실행합니다 (변경 로그가 만족스러워질 때까지 수동으로 변경해도 됩니다).

  2. 모든 변경 사항으로 변경 로그가 업데이트되면,``./dev/prepare-release-changelog.sh v<NEW_VERSION>``을 실행합니다. 여기서 ``<NEW_VERSION>``은 ``pyproject.toml``에 명시된 버전 번호입니다 (앞에 ``v``가 추가된 것을 주의하세요). 이 명령어는 변경 로그의 ``Unreleased``헤더를 해당 버전과 현재 날짜로 교체하고, 기여자들에게 감사 메시지가 추가됩니다. 이러한 변경 사항으로 pull request합니다.

  3. pull request가 병합되면, PR이 병합되는 즉시 버전 번호로 릴리즈 커밋에 태그를 지정합니다:git tag v<NEW_VERSION> (버전 번호 앞에 v``가 추가된 것을 확인), 다음 ``git push --tags. 이렇게 하면 올바른 아티팩트와 변경 로그의 관련 부분이 포함된 초안 릴리즈가 GitHub에 생성됩니다.

  4. GitHub에서 릴리즈 초안을 확인하고, 모든 것이 양호하면 게시하세요.

릴리즈 후에#

다음 변경 사항이 포함된 pull request를 만듭니다:

  1. ``pyproject.toml``의 마이너 버전을 하나씩 늘립니다.

  2. 필요한 경우 현재 버전 번호가 포함된 모든 파일을 업데이트합니다.

  3. changelog.md``에 ``Unreleased 섹션을 새로 추가합니다.

pull request를 같은 날(즉, 새로운 nightly 릴리즈가 PyPI에 게시되기 전에) 병합하세요.

사전 릴리즈 게시#

사전 릴리즈 이름#

PyPI는 사전 릴리즈(알파, 베타, 릴리스 후보)를 지원합니다. 사전 릴리즈는 반드시 다음 명명 패턴 중 하나를 사용해야 합니다:

  • Alpha: MAJOR.MINOR.PATCHaN

  • Beta: MAJOR.MINOR.PATCHbN

  • Release candidate (RC): MAJOR.MINOR.PATCHrcN

예시:

  • 1.0.0a0

  • 1.0.0b0

  • 1.0.0rc0

  • 1.0.0rc1

이는 PEP-440 및 Python Packaging Authority (PyPA)의 권장 사항과 일치합니다:

PyPA에서 정의한 접근 방식은 SemVer 2.0.0 사양과 호환되지 않으며, 자세한 내용은`Semantic Versioning 관리 사양 <https://semver.org/spec/v2.0.0.html#spec-item-11>`_ (특히 항목 11이 우선순위)을 참조하세요.

사전 릴리즈 분류#

다음 사전 릴리즈를 알파, 베타 또는 릴리스 후보라고 불러야 하나요?

  • RC: 기능 완료, 알려진 문제 없음(다음 stable 릴리즈에서 “수정되지 않음”으로 분류된 문제 제외) - 문제가 나타나지 않으면 다음 stable 릴리즈가 됩니다

  • 베타: 기능 완료, 알려진 문제 발생 가능

  • 알파: 기능 미완성, 알려진 문제가 있을 수 있음