发布 Flower#

本文件描述了当前的发布流程。今后可能会有变化,也可能不会有变化。

在发布期间#

版本号在 pyproject.toml 中说明。要发布 Flower 的新版本,需要完成以下工作(按顺序排列):

  1. Run python3 src/py/flwr_tool/update_changelog.py <YOUR_GH_TOKEN> in order to add every new change to the changelog (feel free to make manual changes to the changelog afterwards until it looks good).

  2. Once the changelog has been updated with all the changes, run ./dev/prepare-release-changelog.sh v<NEW_VERSION>, where <NEW_VERSION> is the version stated in pyproject.toml (notice the v added before it). This will replace the Unreleased header of the changelog by the version and current date, and it will add a thanking message for the contributors. Open a pull request with those changes.

  3. Once the pull request is merged, tag the release commit with the version number as soon as the PR is merged: git tag v<NEW_VERSION> (notice the v added before the version number), then git push --tags. This will create a draft release on GitHub containing the correct artifacts and the relevant part of the changelog.

  4. 检查 GitHub 上的发布稿,如果一切正常,就发布它。

发布后#

创建包含以下更改的拉取请求:

  1. pyproject.toml 中的次要版本增加一个。

  2. 如有必要,更新包含当前版本号的所有文件。

  3. changelog.md 中添加新的 Unreleased 部分。

在同一天合并拉取请求(即在新版本发布到 PyPI 之前)。

发布预发布版本#

释放前命名#

PyPI 支持预发布版本(alpha、beta、release candidate)。预发布版本必须使用以下命名模式之一:

  • 阿尔法 MAJOR.MINOR.PATCHaN

  • 贝塔: MAJOR.MINOR.PATCHbN

  • 版本代号 (RC): MAJOR.MINOR.PATCHrcN

例子包括:

  • 1.0.0a0

  • 1.0.0b0

  • 1.0.0rc0

  • 1.0.0rc1

这符合 PEP-440 和 Python 包装管理局 (PyPA) 的建议:

请注意,PyPA 所定义的方法与 SemVer 2.0.0 规范不兼容,详情请查阅《语义版本规范》<https://semver.org/spec/v2.0.0.html#spec-item-11>`_(特别是关于优先级的第 11 项)。

发布前分类#

下一个预发布版应该叫阿尔法版、贝塔版还是候选发布版?

  • RC:功能完整,无已知问题(除了下一个稳定版中被列为 "不会修复 "的问题)--如果没有问题出现,这将成为下一个稳定版

  • 贝塔版:功能完整,允许存在已知问题

  • 阿尔法版:功能不完整,允许存在已知问题