-
Notifications
You must be signed in to change notification settings - Fork 592
Open
Labels
good first issueIndicates a good issue for first-time contributorsIndicates a good issue for first-time contributorspriority:highImportant issue affecting many usersImportant issue affecting many usersproject:buildIssues or pull requests related to buildsIssues or pull requests related to buildsstatus:ready-for-devIssue is ready for developmentIssue is ready for developmenttype:enhancementIndicates new feature requestsIndicates new feature requests
Description
Summary
This issue proposes enforcing Conventional Commits at the pull request level and commit level using a GitHub Action. The aim is to improve consistency in commit messages and support better automation around changelog generation and versioning through GoReleaser.
Why additionally at the pull request level? Github when you select squash merge, will use the pull request title as the commit message title, this would help ensure that it is consistent across the board
Current
- We already use GoReleaser for building and - however we aren't using publish/releasing feature.
- GoReleaser can generate changelogs based on commit history, but this works best when commits follow a consistent, structured format.
- Currently, commit messages vary in format, which sometimes requires manual review and editing of the changelog or leads to inconsistencies in releases.
- Example: Some feature added in not included in v2.36.18 release #1375 — PRs merged into
mainweren’t included in a tagged release due to manual tagging inconsistencies. - Our current release:
🔗 https://github.com/Versent/saml2aws/releases/tag/v2.36.19
GoReleaser’s own example:
🔗 https://github.com/goreleaser/goreleaser/releases/tag/v2.8.1
Desire
- Automate changelog generation and versioning via commit messages.
- Improve the readability and predictability of commit history.
- Highlight breaking changes and categorize updates more effectively (
feat,fix,chore, etc.). - Prevent issues where features get merged but not released due to unclear commit histories or manual tagging.
- Reduce the cognitive load on maintainers during releases.
- Keep the barrier to entry low for new contributors, while still encouraging best practices.
Proposal
- Enforce commit format via GitHub Action (e.g., Conventional Pull Request Action to validate PR titles and/or commit messages.
- Update GoReleaser configuration to use commit messages for changelog generation. This enables automatic generation of structured release notes based on commit type (
feat,fix,chore, etc.). - Update contribution documentation with guidance and examples to help contributors format their commits correctly. Perhaps we can consider a bot that would approioately suggest a commit message title, with ways to fix commits made to reduce friction?
pwmcintyre
Metadata
Metadata
Assignees
Labels
good first issueIndicates a good issue for first-time contributorsIndicates a good issue for first-time contributorspriority:highImportant issue affecting many usersImportant issue affecting many usersproject:buildIssues or pull requests related to buildsIssues or pull requests related to buildsstatus:ready-for-devIssue is ready for developmentIssue is ready for developmenttype:enhancementIndicates new feature requestsIndicates new feature requests