Skip to content

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 the type::* 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)

Merge request reports

Loading