Conventional Commits is a specification for adding human- and machine-readable meaning to commit messages, with Benjamin E. Coe, James J. Womack and Steve Mao as key proponents. Each message follows a schema of type, optional scope and description, with types such as feat, fix, docs or refactor, and an exclamation mark or BREAKING CHANGE footer for breaking changes. The messages determine the semantic version bump, feat a minor, fix a patch and a breaking change a major one, and tell teammates and other stakeholders what kind of change landed.

Conventional Commits

Details

Core Concepts:

  • A specification for adding human and machine readable meaning to commit messages

  • Determining a semantic version bump (based on the types of commits landed)

  • Communicating the nature of changes to teammates, the public, and other stakeholders

    Schema

    <type>[!][(optional scope)]: <description> + optional body/footer

    Common Types
  • feat: - introduce new feature to the codebase (→ Semver Minor)

  • fix: - patches a bug in your codebase (→ SemVer Patch)

  • docs: - documentation improvements to the codebase

  • chore: - codebase/repository housekeeping changes

  • style: - formatting changes that do not affect the meaning of the code

  • refactor: - implementation changes that do not affect the meaning of the code

  • ! - BREAKING CHANGE (→ SemVer Major)

  • BREAKING CHANGE: introduces a breaking API change

    Key Proponents

    Benjamin E. Coe, James J. Womack, Steve Mao

When to Use:

  • everything-as-code paradigm targeted

  • team-/community-communication

  • repository quality improvements