Description
I'm wondering if we could get a consensus on using release please.
Basically, it's an github action that runs after commits/merges to main. It checks for semantic commits, and if it detects a feat/fix/breaking
change, it creates a running PR (see example in Java SDK here). The action automatically and intelligently increments the versions numbers in this PR with new commits to main by searching for annotations in XML/JSON/etc.
When these PRs are merged, the existing release process runs. Currently, we use this in the Java SDK, Go SDK, Node SDK, and all the contrib repos. To ease things for deveopers, we use github's "sqush and merge" setting to use the PR title as the commit message. We also have a github action that lints the commit message. This means that the only thing that needs to follow semantic commits is the PR title.
Benefits:
- breaking changes are identified, audited and recorded at PR time, not at release time, reducing burden on release manager.
- releases are democratic (they are PRs opened by a bot that must be merged)
- semantic versioning is done automatically
- CHANGELOG is built automatically
cc @benjiro