Skip to content

Commit d603f64

Browse files
committed
doc: add commit message guidelines in the contributing document.
1 parent 23b0837 commit d603f64

File tree

1 file changed

+77
-0
lines changed

1 file changed

+77
-0
lines changed

CONTRIBUTING.md

Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,83 @@ We also recommend that you share in your description:
7878
If at any point you have a question or need assistance with your pull request, feel free to mention a project member!
7979
We're always happy to help contributors with their pull requests.
8080

81+
## Commit Message Guidelines
82+
83+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages and pull request titles.
84+
This format helps us automatically generate changelogs and determine semantic versioning.
85+
86+
### Format
87+
88+
Commit messages and PR titles should follow this structure:
89+
90+
```
91+
<type>[optional scope]: <description>
92+
93+
[optional body]
94+
95+
[optional footer(s)]
96+
```
97+
98+
### Common Types
99+
100+
- **feat**: A new feature for the user
101+
- **fix**: A bug fix
102+
- **docs**: Documentation changes only
103+
- **style**: Code style changes (formatting, missing semicolons, etc.) that don't affect functionality
104+
- **refactor**: Code changes that neither fix a bug nor add a feature
105+
- **perf**: Performance improvements
106+
- **test**: Adding or updating tests
107+
- **build**: Changes to the build system or external dependencies
108+
- **ci**: Changes to CI configuration files and scripts
109+
- **chore**: Other changes that don't modify src or test files
110+
111+
### Scope (Optional)
112+
113+
The scope provides additional context about which part of the codebase is affected:
114+
115+
```
116+
feat(crashtracker): add signal handler for SIGSEGV
117+
fix(profiling): correct memory leak in stack unwinding
118+
docs(readme): update installation instructions
119+
```
120+
121+
### Breaking Changes
122+
123+
Breaking changes should be indicated by a `!` after the type/scope or by including `BREAKING CHANGE:` in the footer:
124+
125+
```
126+
feat!: remove deprecated API endpoint
127+
```
128+
129+
or
130+
131+
```
132+
feat: update API response format
133+
134+
BREAKING CHANGE: The response format has changed from XML to JSON
135+
```
136+
137+
### Examples
138+
139+
Good commit messages:
140+
- `feat: add support for custom metadata tags`
141+
- `fix(profiling): resolve deadlock in thread sampling`
142+
- `docs: add examples for exception tracking`
143+
- `chore: update dependencies to latest versions`
144+
- `test(crashtracker): add integration tests for signal handling`
145+
146+
Poor commit messages:
147+
- `update code` (not descriptive, missing type)
148+
- `Fixed bug` (missing type format, not descriptive)
149+
- `WIP` (not meaningful)
150+
151+
### Pull Request Titles
152+
153+
When your pull request is merged, all commits will be squashed into a single commit. The PR title will become the final
154+
commit message, so it's important that it accurately describes your changes.For that reason your pull request title must
155+
follow the conventional commit format described above. Our CI pipeline will automatically validate the PR title and fail
156+
if it doesn't comply with the format. You can update the PR title at any time to fix any validation issues.
157+
81158
## Final word
82159

83160
Many thanks to all of our contributors, and looking forward to seeing you on Github! :tada:

0 commit comments

Comments
 (0)