commit type

chore commit template

A commit for maintenance tasks that do not modify production source code or tests: dependency updates, tooling configuration, build scripts, and housekeeping.

chore(scope): short imperative description of the maintenance task - what was updated, added, or removed (bullet 1) - any notable version or config change (bullet 2) Why the maintenance task was necessary: security patch, deprecation, tooling alignment, or routine housekeeping. Max 72 chars/line.
chore(deps): upgrade express from 4.18.2 to 4.19.2 - bump express and @types/express to 4.19.2 - update jest mock to match new res.json() return type in 4.19 - verify no breaking changes apply to our usage per the changelog 4.18.x reached end of security updates; 4.19.2 patches CVE-2024-29041 path traversal in static file serving.
chore(ci): add caching for pnpm store in GitHub Actions - add actions/cache step keyed on pnpm-lock.yaml hash - restore cache before pnpm install and save after on cache miss - add separate cache for Playwright browser binaries CI install time was 3m 20s per run without caching; with cache hits the install step completes in under 10 seconds for unchanged lockfiles.
chore(tooling): migrate from eslint 8 to eslint 9 flat config - replace .eslintrc.json with eslint.config.mjs using flat config format - update eslint-plugin-import and @typescript-eslint to versions supporting flat config - remove eslint-config-airbnb-base in favour of direct rule configuration ESLint 8 is end-of-life; the flat config migration is required before upgrading to eslint 9 which drops legacy config support entirely.
chore(gitignore): add common build and tool output paths - add .turbo/, .next/, dist/, and out/ directories - add .env.local and .env.*.local credential files - add OS-specific files (.DS_Store, Thumbs.db) Several build outputs were being staged accidentally by contributors unfamiliar with the project's toolchain.

Use chore for maintenance work that does not change what the software does: dependency upgrades, tooling updates, CI configuration, lockfile updates, .gitignore changes, and project scaffolding.

git-agent automatically analyzes your changes and infers the correct commit type.

brew install gitagenthq/tap/git-agent
Should dependency updates that enable a new feature use chore or feat?
Split them: chore(deps) for the dependency update and feat(scope) for the feature that uses the new dependency. Each is a separate logical change.
Does chore appear in public changelogs?
Not by default. Standard changelog presets exclude chore. For libraries, chore(deps) updates are sometimes included in a separate Dependencies section when they contain security patches.
Is there a difference between chore and build commit types?
Some teams use build specifically for changes to the build system (webpack config, Makefile, Dockerfile) and chore for general housekeeping. Both are excluded from changelogs. Choose one convention and apply it consistently.