Improving Julia packaging workflow with Conventional Commits and Semantic-release

Hey! I have been testing Semantic-release for a Julia package with GitHub actions, inspired by @bauglir’s (Joris Kraak) JuliaCon2021 presentation “Semantically Releasing Julia Packages”. As a result, I created a minimal working example of a Julia package with semantic-release, which you can find on GitHub at SemanticReleaseExample.jl.

Furthermore, Semantic-release relies on the Conventional Commits commit message format to formalize commit-messages for automatically determine new version numbers and releases and generate release notes. We might have to agree on the standard commit message type and scope conventions for Julia packages. The default ones are pretty general and should work fine for now. Formalizing commit messages also reduces the cognitive load of writing them and makes the commit history more readable.

I believe it should be possible to create a template with PkgTemplate.jl for semantic release. However, a complete template should work with GitLab and BitBucket and other PkgTemplate plugins like Git and TagBot.

Has anyone else here been using Conventional Commits or Semantic-release for your Julia packaging workflow? Please share your thought!

2 Likes

If you are interested, I also created a video tutorial “How to Configure semantic-release for a Julia package using GitHub Actions” to accompany the GitHub repository.

2 Likes