Skip to main content

测试 GitHub 操作、Cirrus CI、文档和 Python 包的发布版本。

项目描述

工作流沙箱

构建状态 代码风格:黑色 执照 派皮 蟒蛇版本

用于测试 GitHub 操作和 Cirrus CI 以构建和发布 Python 包版本的虚拟项目。

这将是测试 PyPI 上的(虚拟)Python 包,具有​​包名workflow-sandbox和模块名workflow_sandbox

实践

  • 这个虚拟项目松散地采用发布流分支模型/策略。(Loosley,因为我不会总是使用功能分支。)
  • 版本控制是使用优秀的自省setuptools_scm,使用release-branch-semver 版本方案
  • 当一个发布候选被确定时(a574270,下面的 C):
    • 创建了一个新分支maintenance/0.2.x,为次要版本提供服务0.2
    • 该提交被标记v0.2.0rc1为 ,该版本的第一个候选版本。
    • 随后的未标记提交是版本化的(使用本地方案no-local-version):
    • masteras 上0.3.0devN,例如0.3.0dev1ee03672,E 下面);
    • maintenance/0.2.x作为0.2.0rc2.dev1(6006a6f ,下面的 D )。
  • 在这个例子中,发布候选被认为是令人满意的,并且使用一个虚拟提交来创建6006a6f(下面的 F),以便它可以被唯一地标记为v0.2.0.

在图片中,这看起来像:

       D -- F [maintenance/0.2.x]
      /     ^ [v0.2.0]
B -- C---E [master]
     ^
[v0.2.0rc1]

更新:请参阅#13,了解为什么这是必要的和更好的替代方案(使用 v0.2.0rc1 和 v0.2.0 标记 C/D)。

实际版本,例如0.2.0和错误修复版本0.2.10.2.2等将单独标记maintenance/0.2.x。此分支将不包含任何开发,但会从 master 中挑选错误修复。

路线图

GitHub 操作

  • 使用actions/create_release.
  • actions/upload-release-asset使用...在 GitHub 上发布版本
  • ...body上面的内容是从基于 git 标签的相应发行说明中提取的(参见#14)。
  • 使用pypa/gh-action-pypi-publish
    • 所有标记的版本(包括候选版本)都会自动发布在 PyPI 和 TestPyPI 上。
    • 所有未标记的推送mastermaintenance/*分支都会自动在 TestPyPI 上发布,并带有适当的dev版本后缀。
  • 调查触发创建与分支推送事件(参见#8)。
  • 使用分支工作流actions/[up/down]load-artifact(参见例如chrisjbillington/desktop-app#7)和/或manylinux(GitHub Action RalfG/python-wheels-manylinux-build)构建多个轮子。
  • 自动化文档构建并推送到gh-pages分支。

卷云CI

  • 格式化使用black.
  • 使用flake8.

致谢

其中大部分是由其他开发社区的实践以及与@chrisjbillington@philipstarkey进行的许多有益对话所指导的。

下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

workflow-sandbox-0.5.0.tar.gz (55.5 kB 查看哈希

已上传 source

内置分布

workflow_sandbox-0.5.0-py3-none-any.whl (4.7 kB 查看哈希

已上传 py3