<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>

CC BY-SA 4.0
2024-03-19T21:58:11.827Z
2024-03-19T23:03:36.713Z
2024-03-19T23:03:36.713Z
Evan Carroll
<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>

CC BY-SA 4.0
2024-03-19T22:51:26.420Z
2024-03-19T22:51:26.420Z
Thomas Owens
<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>

<gitlab><git>
What is a "chore commit"?
Evan Carroll
# 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.


---

