chore: Maintenance and Tooling
Learn when to use the chore commit type for maintenance tasks. Covers dependency updates, build configuration, tooling changes, and the boundary between chore and build.
Detailed Explanation
The chore Commit Type
The chore type covers changes that do not modify source code or test files. It is used for maintenance tasks, tooling updates, and other changes that keep the project healthy but do not directly affect the application's functionality. Under Semantic Versioning, chore commits do not trigger any version bump.
Example Messages
chore: update development dependencies
chore: add .editorconfig for consistent formatting
chore(deps): bump axios from 1.6.0 to 1.7.2
When to Use chore
Use chore when your commit:
- Updates development dependencies (not runtime dependencies)
- Modifies editor or IDE configuration files
- Updates license or copyright headers
- Modifies Git hooks or repository configuration
- Adds or updates development tooling
- Performs repository cleanup (removing old branches, archives)
chore vs build vs ci
These three types can overlap. Here is a guide:
| Type | When to use |
|---|---|
chore |
General maintenance not covered by other types |
build |
Changes to the build system (webpack, rollup, esbuild) or runtime dependencies |
ci |
Changes to CI configuration (GitHub Actions, Jenkins, CircleCI) |
Dependency Update Patterns
chore(deps): bump eslint from 8.x to 9.x
chore(deps-dev): update jest to 30.0.0
Many teams use automated tools like Dependabot or Renovate that create these commits automatically.
Batch vs Individual Updates
- Individual: Better for tracking which dependency caused an issue
- Batch: Reduces commit noise for routine minor updates
chore(deps): update minor dependencies
Updated 12 packages with non-breaking changes.
See package-lock.json diff for details.
The "Everything Else" Type
chore is intentionally broad. If a change does not fit any other type and does not affect the published software, it is a chore. However, avoid using it as a catch-all; if a more specific type applies, use that instead.
Use Case
You have updated your project's ESLint configuration, added an .editorconfig file, and bumped several development dependencies. None of these changes affect the runtime behavior of your application. You need a commit message that categorizes this as maintenance work and keeps your changelog free of noise.