Skip to content

Instantly share code, notes, and snippets.

@Zekfad
Last active June 22, 2026 09:01
Show Gist options
  • Select an option

  • Save Zekfad/f51cb06ac76e2457f11c80ed705c95a3 to your computer and use it in GitHub Desktop.

Select an option

Save Zekfad/f51cb06ac76e2457f11c80ed705c95a3 to your computer and use it in GitHub Desktop.
Conventional Commits Cheatsheet

Quick examples

  • feat: new feature
  • fix(scope): bug in scope
  • feat!: breaking change / feat(scope)!: rework API
  • chore(deps): update dependencies

Commit types

  • build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)
  • ci: Changes to CI configuration files and scripts (example scopes: Travis, Circle, BrowserStack, SauceLabs)
  • chore: Changes which doesn't change source code or tests e.g. changes to the build process, auxiliary tools, libraries
  • docs: Documentation only changes
  • feat: A new feature
  • fix: A bug fix
  • perf: A code change that improves performance
  • refactor: A code change that neither fixes a bug nor adds a feature
  • revert: Revert something
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • test: Adding missing tests or correcting existing tests

Reminders

@LordFckHelmchen

Copy link
Copy Markdown

Suggestions: Adding vendor type, which is used for updating dependencies/packages.

Updating dependencies/packages is under "chore" prefix, isn't it?

This needs some (opinionated) clarification:

  • The angular definition, says "build: Changes that affect the build system or external dependencies (example scopes: gulp, broccoli, npm)" which can be read as changes "that affect the build system" OR "that affect external dependencies", meaning "build" should be the type for dependencies. However, the Angular Convention does not define the "chore" type, so there is no choice to be made there.
  • Your example "Quick Example" literally mentions "chore(deps): update dependencies" and your definition also implies that "chore" should be the type for deps-changes
  • The picture is even more complex
    • Sometimes (always?) you want core deps changes to be recognizable in the version for traceability. Most tools won't bump on chore/build so you'd need to "fix(deps)"-commit core dependency changes. Beware however, that you most likely do NOT want to have dev-dependencies show up in this way and you need to have a convention how to commit core ("fix") vs. dev. deps. ("chore/build") changes.
    • Sometimes core deps. changes can be breaking, in which case you need to suffix your chosen commit type with "!" and/or add the "BREAKING CHANGE" footer to the message body.
    • More often than not you pull in core deps changes to fix vulnerabilities, in which case "fix(deps)" seems to be the only valid choice.

My take is use

  • "build(deps)" & "build(dev-deps)" to align with the Angular convention (which is the reference for the conventional commit guidelines)
  • "chore(deps)" & "chore(dev-deps)" if you want to emphasize this is a routine task
  • Always use "fix(deps)" when pulling in security fixes
  • Only use "fix(deps" also for routine deps updates if you really need the version bumping for traceability

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment