-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Today, releasing @cubing projects requires running scripts on a developer's laptop. This is error-prone, and we don't always do it correctly. See cubing/icons#143 (comment).
We do have some tooling to generate github releases for commits that appear to have version tags: https://github.com/cubing/actions-workflows/blob/02f6b937ac2a350970b0aa47b30e1acb4ec038ad/.github/workflows/publish-github-release.yaml
For my personal open source projects, releasing every time main changes is sufficient. My understanding is that this would be sufficient for all @cubing projects at their current level of activity/maturity. @lgarron, feel free to disagree.
I am familiar with a few tools in the Conventional Commits* ecosystem:
- https://github.com/semantic-release/semantic-release: A bit annoying to configure: need plugins to get reasonable things done, gets funky to install if you aren't in a JS project (Nix helps with this). Project I work on that uses this: https://github.com/molybdenumsoftware/pr-tracker.
- Knope: I would explore this for my next project. More straightforward configuration, and less of a javascripty feel (you don't need to create a
package.jsonwith all your plugins). - https://github.com/googleapis/release-please: I haven't used this, just mentioning it for completeness.
*Note: I don't actually love Conventional Commits, but I am sold on the fact that they automate releasing (no human needs to be involved to pick a "next version" number). Another way to get humans out of the loop is CalVer (which I personally prefer to semver).