ci(semantic-release): migrate to @gitlab/semantic-release-merge-request-analyzer
This is a drop-in replacement for @semantic-release/commit-analyzer
: it
determines whether to create a release (and if so, what type), and creates
release notes. In contrast to the previous plugin,
@gitlab/semantic-release-merge-request-analyzer
looks up the merge requests
belonging to individual commits and will base its decision on the merge request
labels, instead of a commit prefix.
We recently added the autolabels
CI job, which takes a similar role as the
commitlint
job, in that it ensures that a type::*
label is set.
This has several advantages:
- Labels are familiar to all GitLab users.
- Labels are discoverable.
- Labels can easily be changed.
- Aligns with GitLab's Work Type Classification mandate.
With this change, the following features are no longer required and can be disabled, if desired:
- The
commitlint
job. While Conventional Commits continue to be a handy shortcut for populating thetype::*
label from the commit message, they are no longer required and we no longer need to enforce their use. - Squash commits when merging. Since release notes are based on merge requests, not commits, we no longer need to encourage users to squash commits in order to yield clean release notes.
Issue: #2165 (closed)