You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
11. Submit a pull request through the GitHub website.
136
136
137
+
# Commit Message Guidelines
138
+
139
+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages and [Release Please](https://github.com/googleapis/release-please) for automated releases.
140
+
141
+
## Conventional Commit Format
142
+
143
+
Commit messages should follow this format:
144
+
145
+
```
146
+
<type>[optional scope]: <description>
147
+
148
+
[optional body]
149
+
150
+
[optional footer(s)]
151
+
```
152
+
153
+
### Types
154
+
155
+
-`feat`: A new feature
156
+
-`fix`: A bug fix
157
+
-`docs`: Documentation only changes
158
+
-`style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
159
+
-`refactor`: A code change that neither fixes a bug nor adds a feature
160
+
-`perf`: A code change that improves performance
161
+
-`test`: Adding missing tests or correcting existing tests
162
+
-`build`: Changes that affect the build system or external dependencies
163
+
-`ci`: Changes to CI configuration files and scripts
164
+
-`chore`: Other changes that don't modify src or test files
165
+
-`revert`: Reverts a previous commit
166
+
167
+
### Examples
168
+
169
+
```bash
170
+
feat: add support for new actuator model
171
+
fix: resolve memory leak in joint controller
172
+
docs: update installation instructions
173
+
refactor: simplify sensor calibration logic
174
+
test: add unit tests for PID controller
175
+
```
176
+
177
+
### Breaking Changes
178
+
179
+
Breaking changes should be indicated by adding `!` after the type/scope or by including `BREAKING CHANGE:` in the footer:
180
+
181
+
```bash
182
+
feat!: remove deprecated API methods
183
+
# or
184
+
feat: add new configuration format
185
+
186
+
BREAKING CHANGE: Configuration file format has changed from JSON to YAML
187
+
```
188
+
189
+
## Release Please
190
+
191
+
This project uses Release Please to automatically:
192
+
193
+
- Generate changelogs
194
+
- Create releases
195
+
- Update version numbers
196
+
- Publish to PyPI
197
+
- Deploy documentation
198
+
199
+
Release Please analyzes conventional commit messages to determine the type of release (major, minor, or patch) and generates appropriate release notes. This happens automatically when commits are pushed to the main branch.
200
+
201
+
### How Release Please Works
202
+
203
+
1.**On every push to main**: Release Please analyzes new commits using conventional commit format
204
+
2.**Creates/updates a Release PR**: If releasable changes are found, it creates or updates a "chore: release X.Y.Z" PR
205
+
3.**When Release PR is merged**: A GitHub release is created and the package is automatically published to PyPI
206
+
207
+
### Avoiding Unintended Releases
208
+
209
+
If you need to commit to main without triggering a release (for urgent fixes, documentation, etc.), use these strategies:
210
+
211
+
#### Skip Release Processing
212
+
213
+
Add `Release-As: skip` to your commit message:
214
+
215
+
```bash
216
+
git commit -m "docs: fix typo in contributing guide
217
+
218
+
Release-As: skip"
219
+
```
220
+
221
+
#### Use Non-Release Commit Types
222
+
223
+
Some commit types don't trigger releases by default:
224
+
225
+
-`chore`: Maintenance tasks
226
+
-`ci`: CI/CD changes
227
+
-`build`: Build system changes
228
+
-`docs`: Documentation-only changes (depending on configuration)
11. Submit a pull request through the GitHub website.
136
136
137
+
# Commit Message Guidelines
138
+
139
+
This project uses [Conventional Commits](https://www.conventionalcommits.org/) for commit messages and [Release Please](https://github.com/googleapis/release-please) for automated releases.
140
+
141
+
## Conventional Commit Format
142
+
143
+
Commit messages should follow this format:
144
+
145
+
```
146
+
<type>[optional scope]: <description>
147
+
148
+
[optional body]
149
+
150
+
[optional footer(s)]
151
+
```
152
+
153
+
### Types
154
+
155
+
-`feat`: A new feature
156
+
-`fix`: A bug fix
157
+
-`docs`: Documentation only changes
158
+
-`style`: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
159
+
-`refactor`: A code change that neither fixes a bug nor adds a feature
160
+
-`perf`: A code change that improves performance
161
+
-`test`: Adding missing tests or correcting existing tests
162
+
-`build`: Changes that affect the build system or external dependencies
163
+
-`ci`: Changes to CI configuration files and scripts
164
+
-`chore`: Other changes that don't modify src or test files
165
+
-`revert`: Reverts a previous commit
166
+
167
+
### Examples
168
+
169
+
```bash
170
+
feat: add support for new actuator model
171
+
fix: resolve memory leak in joint controller
172
+
docs: update installation instructions
173
+
refactor: simplify sensor calibration logic
174
+
test: add unit tests for PID controller
175
+
```
176
+
177
+
### Breaking Changes
178
+
179
+
Breaking changes should be indicated by adding `!` after the type/scope or by including `BREAKING CHANGE:` in the footer:
180
+
181
+
```bash
182
+
feat!: remove deprecated API methods
183
+
# or
184
+
feat: add new configuration format
185
+
186
+
BREAKING CHANGE: Configuration file format has changed from JSON to YAML
187
+
```
188
+
189
+
## Release Please
190
+
191
+
This project uses Release Please to automatically:
192
+
- Generate changelogs
193
+
- Create releases
194
+
- Update version numbers
195
+
- Publish to PyPI
196
+
- Deploy documentation
197
+
198
+
Release Please analyzes conventional commit messages to determine the type of release (major, minor, or patch) and generates appropriate release notes. This happens automatically when commits are pushed to the main branch.
199
+
200
+
### How Release Please Works
201
+
202
+
1.**On every push to main**: Release Please analyzes new commits using conventional commit format
203
+
2.**Creates/updates a Release PR**: If releasable changes are found, it creates or updates a "chore: release X.Y.Z" PR
204
+
3.**When Release PR is merged**: A GitHub release is created and the package is automatically published to PyPI
205
+
206
+
### Avoiding Unintended Releases
207
+
208
+
If you need to commit to main without triggering a release (for urgent fixes, documentation, etc.), use these strategies:
209
+
210
+
#### Skip Release Processing
211
+
Add `Release-As: skip` to your commit message:
212
+
213
+
```bash
214
+
git commit -m "docs: fix typo in contributing guide
215
+
216
+
Release-As: skip"
217
+
```
218
+
219
+
#### Use Non-Release Commit Types
220
+
Some commit types don't trigger releases by default:
221
+
-`chore`: Maintenance tasks
222
+
-`ci`: CI/CD changes
223
+
-`build`: Build system changes
224
+
-`docs`: Documentation-only changes (depending on configuration)
0 commit comments