Answers: <p>A &quot;chore commit&quot; is typically an automatically generated commit made by CI that either lands in a production branch, or in code on a merge-release. A chore can do things like automatically generate
  and update a ChangeLog, or bump a version based on the content of other commits in the merge request.</p>
  <p>You can see it <a href="https://github.com/semantic-release/commit-analyzer" rel="nofollow noreferrer">described here in semantic-release's commit analyzer</a>,</p>
  <blockquote>
  <p>Commits with type 'chore' will not be associated with a release type.</p>
  </blockquote>
  <p>That means a commit with a header of <code>chore:</code> will not trigger a release of any type. Which in the case of <code>semantic-release</code> is useful because the system itself generates the commit.</p>
  <p>Chore commits pushed by themselves should not trigger CI. This typically happens in one of two ways,</p>
  <ul>
  <li>Using something like the <a href="https://docs.gitlab.com/ee/user/project/push_options.html" rel="nofollow noreferrer"><code>-o ci.skip</code> push option on GitLab.</a>. That is to say, to tell the CI executor not to run on that commit.</li>
  <li>Using a convention in the the commit message like <code>chore:</code> which the CI is contextually aware of and short circuits (skips the run).</li>
  </ul>
  <h2>History</h2>
  <p>This comes from <a href="https://www.conventionalcommits.org/en/v1.0.0/#summary" rel="nofollow noreferrer">Conventional Commits</a>,</p>
  <blockquote>
  <p>types other than fix: and feat: are allowed, for example @commitlint/config-conventional (based on the Angular convention) recommends build:, <strong>chore</strong>:, ci:, docs:, style:, refactor:, perf:, test:, and others.</p>
  </blockquote>
  <p>But as an aside, the reference <a href="https://github.com/angular/angular/blob/main/CONTRIBUTING.md" rel="nofollow noreferrer">Angular convention did not adopt this term, or the chore commit type</a>, though <a href="https://karma-runner.github.io/0.10/dev/git-commit-msg.html" rel="nofollow noreferrer">Karma.js did</a>,</p>
  <blockquote>
  <p>chore (updating grunt tasks etc; no production code change)</p>
  </blockquote>
  
Answers: CC BY-SA 4.0
Answers: 2024-03-19T21:58:11.827Z
Answers: 2024-03-19T23:03:36.713Z
Answers: 2024-03-19T23:03:36.713Z
Answers: Evan Carroll
Answers: <p>Commit types come from <a href="https://www.conventionalcommits.org/" rel="nofollow noreferrer">Conventional Commits</a>. The idea is to annotate changes with metadata that describes the type of commit, such as fixing bugs or introducing new features. These commit types can also be tied to <a href="https://semver.org/" rel="nofollow noreferrer">Semantic Versioning</a> version numbers and allow for automatically calculating an appropriate version number.</p>
  <p>Although the Conventional Commits specification only defines <code>fix</code>, <code>feat</code>, and methods for specifying breaking changes in the body of the commit message, other types are derived from other projects. For example, the Angular commit message guidelines add <code>build</code>, <code>ci</code>, <code>docs</code>, <code>perf</code>, <code>refactor</code>, <code>style</code>, and <code>test</code>. The <a href="https://github.com/conventional-changelog/commitlint" rel="nofollow noreferrer">commitlint tool</a> specifies <code>chore</code> as an option.</p>
  <p>Since the definition of <code>chore</code> is not part of the Conventional Commits specification but takes advantage of its allowances for the specification of other types, it would be up to a project to specify exactly what a <code>chore</code> commit is and when it is used.</p>
  
Answers: CC BY-SA 4.0
Answers: 2024-03-19T22:51:26.420Z
Answers: 2024-03-19T22:51:26.420Z
Answers: Thomas Owens
Body: <p>I've seen the term &quot;chore commit&quot; used in multiple places, what is a chore commit?</p>
  <p>And it's in <a href="https://github.com/semantic-release/commit-analyzer/commit/5b6c43fa6bca97029f3bb23c365a9ac1b3f590e5" rel="nofollow noreferrer">the commit message here</a>.</p>
  <blockquote>
  <p>chore(gitattributes): ensured consistent line endings across OSs</p>
  </blockquote>
  <p>What does this mean?</p>
  
Tags: <gitlab><git>
Title: What is a "chore commit"?
UserDisplayName: Evan Carroll
ThreadText: # What is a "chore commit"?
  
  (Asked by: username_0 on 2024-03-19)
  
  I've seen the term "chore commit" used in multiple places, what is a chore commit?
  
  And it's in [the commit message here](https://github.com/semantic-release/commit-analyzer/commit/5b6c43fa6bca97029f3bb23c365a9ac1b3f590e5).
  
  > chore(gitattributes): ensured consistent line endings across OSs
  
  What does this mean?
  
  **Tags:** gitlab, git
  
  
  ---
  
  ## 2 answers
  
  ### Answer by username_0 on 2024-03-19. Score: 0 | Accepted answer
  
  A "chore commit" is typically an automatically generated commit made by CI that either lands in a production branch, or in code on a merge-release. A chore can do things like automatically generate
  and update a ChangeLog, or bump a version based on the content of other commits in the merge request.
  
  You can see it [described here in semantic-release's commit analyzer](https://github.com/semantic-release/commit-analyzer),
  
  > Commits with type 'chore' will not be associated with a release type.
  
  That means a commit with a header of `chore:` will not trigger a release of any type. Which in the case of `semantic-release` is useful because the system itself generates the commit.
  
  Chore commits pushed by themselves should not trigger CI. This typically happens in one of two ways,
  
  * Using something like the [`-o ci.skip` push option on GitLab.](https://docs.gitlab.com/ee/user/project/push_options.html). That is to say, to tell the CI executor not to run on that commit.
  * Using a convention in the the commit message like `chore:` which the CI is contextually aware of and short circuits (skips the run).
  
  ## History
  
  This comes from [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/#summary),
  
  > types other than fix: and feat: are allowed, for example @commitlint/config-conventional (based on the Angular convention) recommends build:, **chore**:, ci:, docs:, style:, refactor:, perf:, test:, and others.
  
  But as an aside, the reference [Angular convention did not adopt this term, or the chore commit type](https://github.com/angular/angular/blob/main/CONTRIBUTING.md), though [Karma.js did](https://karma-runner.github.io/0.10/dev/git-commit-msg.html),
  
  > chore (updating grunt tasks etc; no production code change)
  
  
  ---
  
  ### Answer by username_1 on 2024-03-19. Score: 0
  
  Commit types come from [Conventional Commits](https://www.conventionalcommits.org/). The idea is to annotate changes with metadata that describes the type of commit, such as fixing bugs or introducing new features. These commit types can also be tied to [Semantic Versioning](https://semver.org/) version numbers and allow for automatically calculating an appropriate version number.
  
  Although the Conventional Commits specification only defines `fix`, `feat`, and methods for specifying breaking changes in the body of the commit message, other types are derived from other projects. For example, the Angular commit message guidelines add `build`, `ci`, `docs`, `perf`, `refactor`, `style`, and `test`. The [commitlint tool](https://github.com/conventional-changelog/commitlint) specifies `chore` as an option.
  
  Since the definition of `chore` is not part of the Conventional Commits specification but takes advantage of its allowances for the specification of other types, it would be up to a project to specify exactly what a `chore` commit is and when it is used.
  
  
  ---
  
  