Differences between revisions 1 and 18 (spanning 17 versions)
Revision 1 as of 2013-05-20 19:52:50
Size: 141
Editor: SamatJain
Comment:
Revision 18 as of 2022-09-08 20:04:59
Size: 6311
Editor: SamatJain
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
[[https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit?pli=1|Git Commit Message conventions for AngularJS]] == Conventional Commits format ==

{{{
${type}(${scope}): ${subject}

${body}

${footer}
}}}

Where:

$type is one of:

External-facing stuff, important to publish to users.

 * ✨ or ⭐ or 💎 feat or new: New feature. Correlates to MINOR in Semantic Versioning.
  * feat: add beta sequence
 * 🐛 or 🐞 fix: Bug fix. Correlates to PATCH in Semantic Versioning.
  * fix: remove broken confirmation message
 * 🔒 security: Security-related fix, i.e. important to highlight in changelog.
 * ⚡ perf: Change that improves performance. Sometimes a subset of refactor.
 * ⚙️ or 🛠️ conf: Configuration change, e.g. modify a default.
 * 🌐 or 💬 i18n or l10n: Internationalization, localization, or translation addition, fix.
 * ♿ a11y: Accessibility.
 * 🔊 log: Logging or printing-related added.

Internal repository-related:

 * 🎉 initial: Initial commit of something, may not yet work.
 * ⏪ revert : Revert of previous behavior, fix, or feature
 * ✅ or 🚨 or 🧪: test: Adding new test or making changes to existing test
  * test: ensure Tayne retains clothing
 * 🔗 deps: Add, upgrade, or anything to do with an external dependency.
 * 🔀 merge: Merge from another branch.
 * 🚧 wip: Work-in-progress.

Internal changes, not user-facing.

 * 🔧 chore: Code change that external user won't see and does not impact a feature (e.g. change to .gitignore file)
  * chore: add Oyster build script
 * 👷 ci: CI-related change, subset of chore.
  * 💚 ci : Fix CI
 * 📦 build: Build related changes (e.g. cmake, Broccoli, grunt). Subset of chore.
 * 🚀 deploy or release: New version, snapshot, or deploy.

Refactor-related, i.e. does not add new features.

 * ♻️ or 🔨 or 🛠️ refactor: A code that neither fix bug nor adds a feature. (e.g. semantic changes like renaming a variable/ function name)
  * refactor: share logic between component1 and component2
 * ✏️ comments: Internal documentation not otherwise exported, e.g. comments. Subset of refactor.
 * 📚 docs: External documentation. Includes API documentation (docstrings, doxygen). Subset of refactor.
  * docs: explain hat wobble
 * 🎨 style: Style change, like improving structure or formatting. Subset of refactor.
  * style: convert tabs to spaces
  * style: format w/ black
 * 🚚 rename: Move files. Subset of refactor.
 * 🗑 remove: Remove deprecated code no longer used. Keep as a separate commit to make it easy to revert. Subset of refactor.
 * 👕 lint: linting, typing, casting fix. Subset of refactor.

Other:

 * 👌 review: Change from code review.
 * 📈 or 📡 telemetry, analytics, metrics, or logging
 * ➖ removal
 * ➕ addition
 * 🔖 bookmark, tag
 * 📖 metadata
 * 📇 metadata or index
 * 💡 idea, comment, etc
 * 🚑 or 🔥 hotfix
 * 💩 shitcode, needs refactor
 * 💥 breaking-change
 * 👥 contributor or sponsor update
 * 🍒 cherry-pick'ed commit
 * ☸️ k8s
 * 🐋 docker or container
 * ✅ Add but not ❌ Added
 * ✅ Fix but not ❌ Fixed
 * ➔ right-pointing arrow

$scope refers to the module or component. Examples:

 * init
 * runner
 * watcher
 * config
 * web-server
 * proxy

$subject is the first line of the commit message, and:

 * 50c soft limit, 70c hard limit
 * Uses imperative, present tense. "add" vs "adds" or "added", "fix" vs "fixes" or "fixed".
 * Do not end with period
 * Finish this sentence: If applied, this commit will ${subject}

$body should:

 * Focus on WHY and WHAT, not on HOW.
 * Uses imperative, present tense. "add" vs "adds" or "added", "fix" vs "fixes" or "fixed".
 * Includes motivation for the change, and contrasts previous behavior/implementation vs new behavior/implementation
 * Describe what the commit will do, not what you did.
 * Wrap at 72c.

$footer should:

 * Be one per line, and follow the [[https://git-scm.com/docs/git-interpret-trailers|git trailer format]]. That is, each line is a key–value pair, separated by either `:<space>` or `<space>#`.
 * `Closes #${BUG_NO}`, e.g. `Closes #123` if the commit closes an issue in your issue tracker.
 * `Fix #${BUG_NO}`, e.g. `Fix #123` if the commit closes an issue in your issue tracker.
 * `BREAKING-CHANGE: ${description}` to describe this commit breaks previous behavior/interface.
 * Signed-off-by, Acked-by, Cc, Reported-by, Tested-by, Reviewed-by as described by [[https://gerrit-review.googlesource.com/Documentation/user-signedoffby.html|Gerrit]], based on [[https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/SubmittingPatches|Linux' SubmittingPatches guide]].
 * Co-authored-by (gcc)
 * See-also: commit hash or URL


See also:

 * [[https://karma-runner.github.io/6.3/dev/git-commit-msg.html|Karma Git Commit Msg]]
 * [[https://365git.tumblr.com/post/3308646748/writing-git-commit-messages|365Git: Writing git commit messages]]
 * [[https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html|tbaggery - A note about git commit messages]]
 * [[https://docs.google.com/document/d/1QrDFcIiPjSLDn3EL15IJygNPiHORgU1_OOAqWjiDU5Y/edit?pli=1|Git Commit Message conventions for AngularJS]]
 * [[https://sparkbox.com/foundry/semantic_commit_messages|Semantic Commit Messages]]
 * Emoji was taken from [[https://github.com/folke/devmoji|folke/devmoji]] and [[https://gitmoji.dev/|gitmoji.dev]]
 * [[https://chris.beams.io/posts/git-commit/|How to Write a Git Commit Message]]

Good examples:

 * [[https://github.com/eslint/eslint/commits/master|eslint commit history]]
 * [[https://github.com/torvalds/linux/commits/master|torvalds/linux]]
 * [[https://github.com/git/git/commits/master|git/git]]
 * [[https://github.com/tpope/vim-pathogen/commits/master|tpope/vim-pathogen]]

== Semantic Branch Names ==

https://gist.github.com/seunggabi/87f8c722d35cd07deb3f649d45a31082

 * feature/: New feature
 * bugfix/: Bug fix
 * docs/: Documentation change
 * style/: Style change
 * refactor/: Refactor
 * test/: Adding tests, refactoring tests, etc.
 * chore:/ Chore

== GitLab ==

 * [[https://docs.gitlab.com/ee/user/markdown.html|GitLab Flavored Markdown]]
 * [[https://mermaid-js.github.io/mermaid/#/flowchart|Mermaid flowcharting]]

Conventional Commits format

${type}(${scope}): ${subject}

${body}

${footer}

Where:

$type is one of:

External-facing stuff, important to publish to users.

  • ✨ or ⭐ or 💎 feat or new: New feature. Correlates to MINOR in Semantic Versioning.
    • feat: add beta sequence
  • 🐛 or 🐞 fix: Bug fix. Correlates to PATCH in Semantic Versioning.
    • fix: remove broken confirmation message
  • 🔒 security: Security-related fix, i.e. important to highlight in changelog.
  • ⚡ perf: Change that improves performance. Sometimes a subset of refactor.
  • ⚙️ or 🛠️ conf: Configuration change, e.g. modify a default.
  • 🌐 or 💬 i18n or l10n: Internationalization, localization, or translation addition, fix.
  • ♿ a11y: Accessibility.
  • 🔊 log: Logging or printing-related added.

Internal repository-related:

  • 🎉 initial: Initial commit of something, may not yet work.
  • ⏪ revert : Revert of previous behavior, fix, or feature
  • ✅ or 🚨 or 🧪: test: Adding new test or making changes to existing test
    • test: ensure Tayne retains clothing
  • 🔗 deps: Add, upgrade, or anything to do with an external dependency.
  • 🔀 merge: Merge from another branch.
  • 🚧 wip: Work-in-progress.

Internal changes, not user-facing.

  • 🔧 chore: Code change that external user won't see and does not impact a feature (e.g. change to .gitignore file)
    • chore: add Oyster build script
  • 👷 ci: CI-related change, subset of chore.
    • 💚 ci : Fix CI
  • 📦 build: Build related changes (e.g. cmake, Broccoli, grunt). Subset of chore.
  • 🚀 deploy or release: New version, snapshot, or deploy.

Refactor-related, i.e. does not add new features.

  • ♻️ or 🔨 or 🛠️ refactor: A code that neither fix bug nor adds a feature. (e.g. semantic changes like renaming a variable/ function name)
    • refactor: share logic between component1 and component2
  • ✏️ comments: Internal documentation not otherwise exported, e.g. comments. Subset of refactor.
  • 📚 docs: External documentation. Includes API documentation (docstrings, doxygen). Subset of refactor.
    • docs: explain hat wobble
  • 🎨 style: Style change, like improving structure or formatting. Subset of refactor.
    • style: convert tabs to spaces
    • style: format w/ black
  • 🚚 rename: Move files. Subset of refactor.
  • 🗑 remove: Remove deprecated code no longer used. Keep as a separate commit to make it easy to revert. Subset of refactor.
  • 👕 lint: linting, typing, casting fix. Subset of refactor.

Other:

  • 👌 review: Change from code review.
  • 📈 or 📡 telemetry, analytics, metrics, or logging
  • ➖ removal
  • ➕ addition
  • 🔖 bookmark, tag
  • 📖 metadata
  • 📇 metadata or index
  • 💡 idea, comment, etc
  • 🚑 or 🔥 hotfix
  • 💩 shitcode, needs refactor
  • 💥 breaking-change
  • 👥 contributor or sponsor update
  • 🍒 cherry-pick'ed commit
  • ☸️ k8s
  • 🐋 docker or container
  • ✅ Add but not ❌ Added
  • ✅ Fix but not ❌ Fixed
  • ➔ right-pointing arrow

$scope refers to the module or component. Examples:

  • init
  • runner
  • watcher
  • config
  • web-server
  • proxy

$subject is the first line of the commit message, and:

  • 50c soft limit, 70c hard limit
  • Uses imperative, present tense. "add" vs "adds" or "added", "fix" vs "fixes" or "fixed".
  • Do not end with period
  • Finish this sentence: If applied, this commit will ${subject}

$body should:

  • Focus on WHY and WHAT, not on HOW.
  • Uses imperative, present tense. "add" vs "adds" or "added", "fix" vs "fixes" or "fixed".
  • Includes motivation for the change, and contrasts previous behavior/implementation vs new behavior/implementation
  • Describe what the commit will do, not what you did.
  • Wrap at 72c.

$footer should:

  • Be one per line, and follow the git trailer format. That is, each line is a key–value pair, separated by either :<space> or <space>#.

  • Closes #${BUG_NO}, e.g. Closes #123 if the commit closes an issue in your issue tracker.

  • Fix #${BUG_NO}, e.g. Fix #123 if the commit closes an issue in your issue tracker.

  • BREAKING-CHANGE: ${description} to describe this commit breaks previous behavior/interface.

  • Signed-off-by, Acked-by, Cc, Reported-by, Tested-by, Reviewed-by as described by Gerrit, based on Linux' SubmittingPatches guide.

  • Co-authored-by (gcc)
  • See-also: commit hash or URL

See also:

Good examples:

Semantic Branch Names

https://gist.github.com/seunggabi/87f8c722d35cd07deb3f649d45a31082

  • feature/: New feature
  • bugfix/: Bug fix
  • docs/: Documentation change
  • style/: Style change
  • refactor/: Refactor
  • test/: Adding tests, refactoring tests, etc.
  • chore:/ Chore

GitLab

SamatsWiki: CodingStyle/Git (last edited 2022-09-08 20:04:59 by SamatJain)