2.4 KiB
Commit Message Requirements
- A commit message consists of a title and an optional body.
1. Commit Title Format
-
The commit title must follow this format:
[type] short summary of main change [BREAK] -
typeis enclosed in square brackets ([]) and describes the nature of the change. For example:[feature]: new feature[fix]: bug fix[docs]: documentation changes[refactor]: refactoring without behavior change[test]: tests added or updated[chore]: build, config, or other maintenance tasks
-
You may introduce additional types if needed, following the same
[type]pattern. -
The text after the type is a concise, one-line summary of the most important change.
-
Keep the title under 72 characters.
-
Use present tense in the title.
- e.g.
add,fix,update,refactor(notadded,fixed)
- e.g.
2. BREAK Suffix
-
If the commit introduces a breaking change (for example, variable renames, API signature changes, or anything that breaks backward compatibility), add the
[BREAK]suffix at the end of the title.[feature] add new auth middleware [BREAK] [refactor] rename core config struct [BREAK] -
If there is no breaking change, do not add
[BREAK].
3. Commit Body
-
The commit body should briefly describe the key changes in the edited files.
-
A bullet list is recommended:
- describe change 1 - describe change 2 - summarize changes per file or module -
Focus on what changed and why, rather than low-level implementation details.
-
If there are security or privacy-related changes, explicitly mention them.
4. Examples
-
Without breaking changes:
[feature] add support for local proxy client - add CLI flags for local proxy configuration - implement basic request forwarding logic - update documentation with usage examples -
With breaking changes (e.g., renaming variables or structures):
[refactor] rename db config fields for clarity [BREAK] - rename DSN to DatabaseURL in the config struct - update all references in store and CLI packages - adjust environment variable parsing logic
This guideline preserves the original project’s requirements (present tense, short main-change summary, explicit BREAK marking) while adapting the format to use [type] commit prefixes.