Should we use standard version in our commit messages for Mautic core and plugins?

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.

:backhand_index_pointing_right: 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 :+1: