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
Copy file name to clipboardExpand all lines: CONTRIBUTING.md
+4-2Lines changed: 4 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,9 +32,11 @@ Enhancement suggestions are tracked as GitHub issues. When creating an enhanceme
32
32
1. Fork the repo and create your branch from `main`
33
33
2. If you've added code that should be tested, add tests
34
34
3. Ensure your code follows the existing style
35
-
4.Write a clear commit message describing your changes
35
+
4.**Use a conventional commit format for your PR title** (e.g., `feat(node): add version caching`)
36
36
5. Submit your pull request!
37
37
38
+
**Note:** We use squash merges, so your PR title becomes the commit message on main. Make sure it follows the [commit convention](docs/COMMIT_CONVENTION.md).
39
+
38
40
## Development Setup
39
41
40
42
### Prerequisites
@@ -196,7 +198,7 @@ test(migrate): add tests for package preservation
196
198
197
199
For detailed guidelines and examples, see [Commit Convention Guide](docs/COMMIT_CONVENTION.md).
198
200
199
-
**Note:**Pull requests are automatically checked for commit message compliance. Non-conforming commits will fail CI checks.
201
+
**Note:**PR titles are automatically validated for conventional commit compliance. Non-conforming titles will fail CI checks. Since we use squash merges, your PR title becomes the final commit message.
Copy file name to clipboardExpand all lines: docs/COMMIT_CONVENTION.md
+26-4Lines changed: 26 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -70,18 +70,20 @@ The scope should be the name of the affected module or component:
70
70
The subject contains a succinct description of the change:
71
71
72
72
- Use the imperative, present tense: "add" not "added" nor "adds"
73
-
-Don't capitalize the first letter
73
+
-Start with lowercase (but uppercase abbreviations like PR, API, CLI, URL are allowed)
74
74
- No period (.) at the end
75
75
- Maximum 72 characters
76
76
77
77
**Good examples:**
78
78
-`fix(python): handle missing pip.exe on Windows`
79
79
-`feat(cli): add --yes flag to install command`
80
80
-`docs: add troubleshooting section to README`
81
+
-`chore(ci): remove PR coverage comments`
82
+
-`feat: add API endpoint for version lookup`
81
83
82
84
**Bad examples:**
83
-
-`Fixed bug` (missing scope, not descriptive)
84
-
-`feat(node): Added support for nvm.` (wrong tense, capitalized, period)
85
+
-`Fixed bug` (missing type, not descriptive)
86
+
-`feat(node): Added support for nvm.` (wrong tense, period at end)
85
87
-`Update code` (missing type, not descriptive)
86
88
87
89
### Body (Optional)
@@ -156,9 +158,29 @@ Reverting due to Windows compatibility issues that need more investigation.
156
158
Relates to #234
157
159
```
158
160
161
+
## Pull Requests and Squash Merges
162
+
163
+
This project uses **squash merges** for all pull requests. This means:
164
+
165
+
- All commits in your PR are combined into a single commit on merge
166
+
-**The PR title becomes the commit message** on the main branch
167
+
- Your PR title must follow the conventional commit format
168
+
169
+
When creating a PR, ensure your title follows the format:
170
+
```
171
+
<type>(<scope>): <subject>
172
+
```
173
+
174
+
For example:
175
+
-`feat(node): add support for Node.js 22.x`
176
+
-`fix(shim): handle API errors on Windows`
177
+
-`chore(ci): update PR linting workflow`
178
+
179
+
The PR title is validated automatically - if it doesn't follow the convention, the CI check will fail.
180
+
159
181
## Validation
160
182
161
-
All commits in pull requests are automatically validated using [commitlint](https://commitlint.js.org/). If your commits don't follow this convention, the CI check will fail.
183
+
Both PR titles and individual commits are automatically validated using [commitlint](https://commitlint.js.org/). If they don't follow this convention, the CI check will fail.
0 commit comments