Crates.io | disperse |
lib.rs | disperse |
version | 0.0.10 |
source | src |
created_at | 2023-09-05 20:54:22.998148 |
updated_at | 2024-08-27 01:44:09.020203 |
description | automation for creation of releases |
homepage | https://github.com/jelmer/disperse |
repository | https://github.com/jelmer/disperse.git |
max_upload_size | |
id | 964830 |
size | 294,063 |
disperse is a simple application that I use to create releases for some of the free software packages I maintain. It's meant to streamline the releasing process, reducing the human effort involved in creating a release as well as the likelihood of a brown-bag release.
It can do one or more of the following:
After the release has completed, it can also update e.g. NEWS for the next release.
Disperse was previously known as "releaser".
To a large extent, disperse will automatically figure out what needs to happen. It can discover the projects you maintain on pypi by reading ~/.pypirc for your username and enumerating them.
It can parse and modify setup.py and Cargo.toml files.
It uses a configuration file (disperse.conf) for anything that can not be autodetected, and which lives in the repository root.
For example:
tag_format: "dulwich-$VERSIONs"
news_path: "NEWS"
Supported variables are:
$VERSION
("1.2.0")$TUPLED\_VERSION
("(1, 2, 0)")$STATUS\_TUPLED\_VERSION
('(1, 2, 3, "dev", 0)')disperse has various subcommands. The core ones are:
The easiest way to run disperse is to use the docker image at
ghcr.io/jelmer/disperse
. You'll need to make sure that appropriate SSH
and PGP keys are available.
The author regularly runs disperse inside of a Kubernetes cronjob.
In the future, I would like it to: