Proposal: Standardize Commit Messages across Mautic using Conventional Commits
Hi everyone,
while working closely with different parts of the Mautic ecosystem, I noticed that we currently use a variety of commit message styles across repositories.
This makes it harder to:
-
understand changes quickly
-
generate consistent changelogs
-
automate releases in a reliable way
I see some already apply `Conventional Commits`: feat(email): my amazing feature.
I would like to propose that we align on a common standard:
Conventional Commits (used by standard-version / semantic-release)
Why this matters
A consistent commit format enables:
-
automated changelog generation
-
better readability of commit history
-
easier onboarding for contributors
-
cleaner release processes
Many modern projects already follow this approach.
Proposed format
type(scope): short description
Examples:
feat(contact): add bulk edit for contact segments
fix(form): prevent radio value 0 from being preselected
obs(logging): add structured JSON logs for API requests
Suggested base types
A simple and practical set could be:
-
featโ new user-facing feature -
fixโ bug fix -
uxโ user experience improvement -
obsโ logging, tracing, metrics -
perfโ performance improvements -
securityโ security fixes -
chore,docs,refactor,test,build,ciโ internal changes
Aivie setup (example)
We implemented this in Aivie using:
1. Commitlint (validation)
'type-enum': [
2,
'always',
[
'fix',
'feat',
'ux',
'obs',
'chore',
'perf',
'revert',
'docs',
'style',
'refactor',
'test',
'build',
'ci',
'security'
]
]
2. Standard-version (changelog + releases)
-
commits are grouped automatically
-
changelog sections are generated consistently
-
releases are derived from commit history
3. Git hook (enforcement)
We enforce the format via a commit-msg hook:
npx --no -- commitlint --edit "$1"
This ensures:
-
consistent commit messages
-
immediate feedback for contributors
-
no need for manual policing
Why not enforce this centrally?
This is not about strict enforcement across all repos immediately, but about:
-
agreeing on a shared convention
-
gradually aligning over time
-
improving the developer experience across the ecosystem
Sources
- [Conventional Commits Docs]( Conventional Commits )
-[Aivie Recaptcha Plugin]( GitHub - aiviemarketing/aivie-recaptcha: This Plugin brings reCAPTCHA integration to mautic. ยท GitHub )
Open questions
-
Would the community be open to adopting a shared commit convention?
-
Are we ok with the proposed set of types?
-
Should we force topics? E.g. feat(email): new features for email
-
Would it make sense to include this in contributor guidelines?
Happy to hear your thoughts and discuss ![]()