We could introduce a release script, which would perform all the steps required for a release, such that no step could be forgotten. This could include:
setting a version in the manifest. The tool called dasel can be used for manipulating toml safely. Or perhaps can just use sed, for simplicity.
extracting changelog snippet to set text for a GitHub release. Can be as simple as splitting the string on ## and taking the first item (example)
checking that the changelog entry has a correct version
creating a GitHub release (which will also create a git tag, triggering CI build and release). For example using gh tool (example)
Example usage of such script:
./tools/release 1.2.3
Motivation: even though the current version is 0.6.0, the manifest still says 0.5.0:
We could introduce a release script, which would perform all the steps required for a release, such that no step could be forgotten. This could include:
sed
, for simplicity.##
and taking the first item (example)gh
tool (example)Example usage of such script:
Motivation: even though the current version is 0.6.0, the manifest still says 0.5.0:
https://github.com/neherlab/pangraph/blob/1303b661941fc916deaeaeec3aff91392314a65a/Project.toml#L4
It is easy to forget a step in the multi-step process. Introducing a script allows to automate and enforce the release routine.