The internal release process is described in great detail here.
We're using Release Drafter
to automate release notes creation. Drafter also does its best to propose
the next release version based on commit messages from main branch.
Release Drafter is also responsible for auto-labeling pull requests.
It checks both title and body of the pull request and adds appropriate labels.
NOTE: The auto-labeling mechanism will not remove labels once they're
created. For example, If you end up changing PR title from sec: to fix:
you'll have to manually remove security label.
On each commit to main branch, Release Drafter will update the next release
draft.
In addition to Release Drafter, we're also running a script which extracts
explicitly listed release notes and breaking changes which are optionally
defined in ## Release Notes and ## Breaking Changes headers.
It also performs a cleanup of the PR draft mitigating Release Drafter
shortcomings.