构建与发布#

本文档概述了构建和发布 mambular 包的步骤。此时,假设该包的开发和测试已经成功完成。

1. Test documentation#

贡献者应在源代码更改时及时更新文档。请使用以下流程测试文档:

cd mambular/docs/

make doctest

修复任何与文档字符串相关的问题,然后继续下一步。

2. Version update#

包版本在 mambular/__version__.py 文件中维护。根据更改(如补丁、次要、主要或全部)增加版本号。

3. Release#

我们使用 git flow 进行包的发布。

  • 如果你没有安装 git flow,你可以按照 这里 的指示来安装它。

  • 如果尚未完成,请使用以下命令在仓库中初始化 git flow。

  • 使用默认选项进行 git flow 初始化。

git flow init
  • 使用以下命令开始一个新的发布。将 <version> 替换为你想要发布的版本号。

  • 版本号应与你在 __version__.py 文件中更新的版本号相同。

  • 版本号应采用 主版本.次版本.补丁 的格式。例如,v0.0.1

  • 版本号应以示例中所示的 v 为前缀。否则,将包发布到 PyPi 的流水线将会失败。

git flow release start v0.0.1
  • develop 分支创建了一个新分支。这个新分支根据约定命名为 release/<版本>。例如,如果你运行 git flow release start v0.0.1,新分支将是 release/v0.0.1

  • 当前工作分支切换到新创建的发布分支。这意味着任何新的提交将被添加到发布分支,而不是 develop 分支。

  • 这个新分支用于完成发布。你可以执行诸如版本号更新、文档更新和最终测试等任务。

一旦你对更改满意,使用以下命令来完成发布。

 git flow release finish v0.0.1
  • 它将把发布分支合并到 main (或 master)中。

  • 用版本号标记发布。

  • 将发布分支合并回 develop

  • 删除发布分支。

最后,将提交和标签推送到原点。

git push origin --tags

这将把标签发布到远程仓库。

此外,最新文档发布如下:

  • 工作流从 main(或 master)触发,通过 readthedocs 发布文档。

  • 文档发布在readthedocs上,可以在 mambular.readthedocs.io 访问。

4. Publish package to PyPi#

该包通过 GitHub Actions 发布到 PyPi。当向仓库推送新标签时,工作流程将被触发。工作流程将构建包并将其上传到 PyPi。

5. GitHub Release#

在 GitHub 上创建一个新版本,包含版本号和发布说明。发布说明应包括版本中所做的更改。