commit typeA commit that introduces an incompatible change to a public API, protocol, or behaviour that requires consumers to make corresponding changes.
feat(scope)!: short description of the new incompatible behaviour
- what was removed or changed incompatibly (bullet 1)
- what the new behaviour or API is (bullet 2)
- what consumers must do to migrate (bullet 3)
BREAKING CHANGE: Detailed description of the incompatible change and
migration path. Consumers who do X must now do Y instead. Max 72
chars/line.feat(api)!: replace session cookies with Bearer token authentication
- remove Set-Cookie / Cookie session mechanism from all endpoints
- require Authorization: Bearer <token> header on all authenticated requests
- issue tokens via POST /auth/token and revoke via DELETE /auth/token
BREAKING CHANGE: All API clients must migrate from session cookie auth to
Bearer token auth. Existing session cookies are no longer accepted. Issue
tokens using the new POST /auth/token endpoint before the next release.feat(config)!: rename DATABASE_URL to DB_CONNECTION_STRING
- update all internal config reads to use DB_CONNECTION_STRING
- add deprecation error at startup if DATABASE_URL is set without the new key
- update documentation and .env.example with the new variable name
BREAKING CHANGE: The DATABASE_URL environment variable is no longer
recognised. Rename it to DB_CONNECTION_STRING in all deployment
environments, CI secrets, and local .env files before upgrading.refactor(exports)!: remove default export in favour of named exports
- change all module files from export default to named exports
- update internal import sites throughout the codebase
- add migration codemod script at scripts/migrate-imports.ts
BREAKING CHANGE: Default imports (import Client from '@example/sdk') no
longer work. Replace with named imports: import { Client } from '@example/sdk'.
Run the codemod at scripts/migrate-imports.ts to automate the update.feat(cli)!: remove --output flag; use --format and --destination instead
- add --format flag accepting json, yaml, or table
- add --destination flag for output file path (default: stdout)
- print deprecation error when --output is passed and exit 1
BREAKING CHANGE: The --output flag is removed. Scripts using --output <file>
must be updated to --format table --destination <file>. The --format and
--destination flags are available from this version onward.Use feat(scope)!: or fix(scope)!: (a ! immediately before the colon, after optional scope) and add a BREAKING CHANGE: footer whenever you remove a public API, change a method signature incompatibly, rename a required config key, or change a default behaviour that consumers depend on.
git-agent automatically analyzes your changes and infers the correct commit type.
brew install gitagenthq/tap/git-agentWhat triggers a MAJOR version bump in semantic-release?Should I provide a migration guide in the commit body?Can a chore or docs commit be a breaking change?