Based on the established documentation around Conventional Commits and the recommendations made in #1334, we have decided to adopt this principle using the following guidelines:
- Since v2, we have exclusively used squash merges, which has been beneficial so far. Therefore, we will continue to use this as the foundation for our workflow.
- Semantic versioning is mandatory for Pull Requests, particularly the use of
!
for breaking changes. - Semantic commit messages are recommended for individual commits, as they will be included in the PR description after a squash merge.
- Renaming PR titles is significantly easier than reworking commits. While we encourage all contributors to adhere to the convention, reviewers can make necessary adjustments as needed.
- Reviewers must ensure consistency with the convention during the merge process.
- Use lowercase for all commit messages.
- Include a scope when relevant. For example, use
feat(lib)
when adding a new framework or library. - The following commit types are supported:
fix
: Bug fixesfeat
: New featureschore
: Maintenance tasks or changes that don't affect production coderefactor
: Code changes that neither fix bugs nor add featuresperf
: special refactor commits, that improve performancedocs
: Documentation updates or improvementstest
: Adding or updating testsci
: Changes to the CI configuration or scriptsbuild
: Changes that affect the build system or external dependencies