测试GitHub操作、cirrusci、文档和Python包的发布版本。
workflow-sandbox的Python项目详细描述
工作流沙盒
用于测试GitHub操作和Cirrus CI以生成和发布Python包版本的虚拟项目。在
这将是testpypi上的一个(伪)Python包,包名为workflow-sandbox
,模块名为workflow_sandbox
。在
实践
- 这个虚拟项目松散地采用了release flow分支模型/策略。(Loosley,因为我不会总是使用功能分支。)
- 版本控制使用优秀的^{
} ,使用release-branch-semver
version scheme进行内省。在 - 当确定了一个候选版本时(a574270,C如下): 在
- 在这个例子中,发布候选者被认为是令人满意的,并使用一个伪提交来创建6006a6f(下面是F),这样它就可以被唯一地标记为
v0.2.0
。在
在图片中,这看起来像:
D -- F [maintenance/0.2.x]
/ ^ [v0.2.0]
B -- C---E [master]
^
[v0.2.0rc1]
Update:请参见#13,了解为什么这是必要的,并且是更好的替代方案(标签C/D同时具有v0.2.0rc1和v0.2.0)。在
实际版本,例如0.2.0
和错误修复版本0.2.1
,0.2.2
等将单独在maintenance/0.2.x
上标记。这个分支将不包含任何开发,但是从master中挑选错误修复。在
路线图
GitHub操作
- [x] 使用
actions/create_release
创建发布。在 - [x] 使用
actions/upload-release-asset
在GitHub上发布发布版本。。。在 - [。。。上面的
body
基于git标记从适当的发行说明中提取出来(参见#14)。在 - [x] 使用
pypa/gh-action-pypi-publish
:- 所有标记的发布(包括候选版本)都会自动发布到PyPI和TestPyPI上。在
- 对
master
和maintenance/*
分支的所有未标记的推送都会自动发布在TestPyPI上,并带有适当的dev
版本后缀。在
- [x] 研究触发关闭创建与分支推送事件(请参见#8)。在
- []使用分支工作流
actions/[up/down]load-artifact
(参见chrisjbillington/desktop-app#7)和/或{a17}(GitHub操作RalfG/python-wheels-manylinux-build)构建多个控制盘。在 - []自动生成文档并推送到
gh-pages
分支。在
CirrusCI
- [x] 使用
black
格式化。在 - [x] 使用
flake8
进行Linting。在
致谢
这其中大部分是由其他开发社区的实践指导的,以及与@chrisjbillington和{a20}进行的许多有益的对话。在
- 项目
标签: