发布创建的自动化
项目描述
disperse
disperse是一个简单的脚本,我用它为维护的一些免费软件包创建发布。它的目的是简化发布过程,减少创建发布所需的人力,以及减少棕色包发布的可能性。
它可以执行以下一个或多个操作
- 检查CI是否当前通过(对于支持的平台,如GitHub)
- 通过检查现有发布和项目文件中指定的版本字符串来推导出预期的新的版本号
- 用发布日期更新NEWS文件
- 确保各种文件包含正确的版本字符串
- 验证测试套件是否成功运行
- 可选地,如果在上X天中没有更改存储库,则只创建发布(对于在cron作业中运行很有用)
- 上传到仓库站点
- 如果项目是Python项目,则将源和通用轮文件上传到PyPI
- 如果项目是Rust项目,则上传到crates.io
- 为新的发布创建git标签
- 在支持的平台(如GitHub)上创建“发布”条目
发布完成后,它还可以更新例如为下一个发布更新NEWS。
Disperse之前被称为“发布者”。
配置
在很大程度上,disperse将自动确定需要发生什么。它可以通过读取~/.pypirc中的用户名并枚举它们来发现您在PyPI上维护的项目。
它可以解析和修改setup.py和Cargo.toml文件。
它使用配置文件(disperse.conf)用于无法自动检测的所有内容,并且位于存储库根目录中。
例如
tag_format: "dulwich-%(release)s"
news_path: "NEWS"
基本用法
disperse有各种子命令。核心的包括
- release - 在$CWD或特定URL处为项目创建新发布
- discover - 查找当前用户拥有的项目(例如,在PyPI上)并在它们有未发布更改且足够重要的情况下发布它们
- validate - 验证disperse配置
从Docker运行
运行dispere的最简单方法是使用ghcr.io/jelmer/disperse
的Docker镜像。请确保有适当的SSH和PGP密钥。
作者定期在Kubernetes cronjob中运行dispere。
未来
将来,我希望它
- 支持比Python和Rust更多的语言
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
disperse-0.0.7.tar.gz (36.6 kB 查看散列值)
构建分布
disperse-0.0.7-py3-none-any.whl (28.1 kB 查看散列值)