== 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 `:` or `#`. * `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]]