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

workflow-sandbox的Python项目详细描述


工作流沙盒

Build StatusCode style: blackLicensePyPIPython Version

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

这将是testpypi上的一个(伪)Python包,包名为workflow-sandbox,模块名为workflow_sandbox。在

实践

  • 这个虚拟项目松散地采用了release flow分支模型/策略。(Loosley,因为我不会总是使用功能分支。)
  • 版本控制使用优秀的^{},使用release-branch-semverversion scheme进行内省。在
  • 当确定了一个候选版本时(a574270,C如下):
    • 创建了一个新的分支maintenance/0.2.x,为次要版本0.2提供服务。在
    • 提交被标记为v0.2.0rc1,这是这个版本的第一个候选版本。在
    • 后续未标记的提交将进行版本控制(使用本地方案no-local-version):
    • master上作为0.3.0devN,例如0.3.0dev1ee03672,下面e)
    • maintenance/0.2.x上作为0.2.0rc2.dev16006a6f,D下面)。在
  • 在这个例子中,发布候选者被认为是令人满意的,并使用一个伪提交来创建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.10.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上。在
    • mastermaintenance/*分支的所有未标记的推送都会自动发布在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}进行的许多有益的对话。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
JavaFX进度条从单独的函数更改而来   jvm使用java服务器选项   java在<li>元素中查找同名的最后一个链接   java问题将参数传递给不同公共类中的构造函数   如何在php中从java函数中获取字符串   java如何在Android中动态显示多个tile   java仅使用Ribbon而不使用任何服务注册表是否可以实现负载平衡?   Jersey 1.19版本的java Swagger JAXRS出现“冲突URI模板”错误   带H2数据库的java Spring boot jpa   从12:00:00到00:00:00的日期转换   Android中的java如何设置文本?   java密钥库“不支持的保护参数”   http使用Java在Java中发送httprequest。净包   SpringJava刷新数据库   java在Spring Boot应用程序中使用嵌入式MongoDb和MongoTemplate失败   java需要什么MatOfMatch对象?   xml使用Java中的合并算法将两个值合并为单个值   java SQLite数据库不保存数据为什么不工作