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: docs/Guidelines.md
+47-2Lines changed: 47 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,6 +12,8 @@ During development, you might want to use `npm run unit` or `npm run unit-watch`
12
12
### No Merge Commits
13
13
Please use [rebase instead of merge](https://www.atlassian.com/git/tutorials/merging-vs-rebasing) to update a branch to the latest main. This helps keeping a clean commit history in the project.
14
14
15
+
16
+
15
17
### Commit Message Style
16
18
17
19
This project uses the [Conventional Commits specification](https://www.conventionalcommits.org/) to ensure a consistent way of dealing with commit messages.
@@ -22,6 +24,49 @@ This project uses the [Conventional Commits specification](https://www.conventio
22
24
type(scope): Description
23
25
```
24
26
25
-
- required: every commit message has to start with a lowercase `type`. The project has defined a set of [valid types](../commitlint.config.mjs#L10).
26
-
- optional: the `scope` is typically the affected module. If multiple modules are affected by the commit, skip it or define a meaningful abstract scope.
27
+
- required: every commit message has to start with a lowercase `type`. The project has defined a set of [valid types](../commitlint.config.mjs#L10)
28
+
- Note that the types `feat`, `fix`, `perf`, `deps`, and `revert` will appear in the public changelog of the released packages
29
+
- required: the `scope` is required for changes that will appear in the public changelog. The scope must be the package folder name (e.g. `cli`, `builder`, ...). Other scopes are not allowed.
30
+
27
31
- required: the `description` has to follow the Sentence Case style. Only the first word and proper nouns are written in uppercase.
32
+
33
+
34
+
Rules (for commitlint checks)
35
+
- Require a scope for all types that appear in the commit message (TBD: what about deps?)
36
+
- Limit the scope to the package folder names (cli, builder, ..., incl. documentation)
37
+
-
38
+
39
+
40
+
#### Examples
41
+
42
+
```
43
+
feat(cli): Add "versions" command
44
+
```
45
+
46
+
```
47
+
fix(fs): Correctly handle paths containing non-ASCII characters on Windows
48
+
```
49
+
50
+
### Multi-Package Changes
51
+
52
+
When making changes that affect multiple packages, create individual commits for each package to maintain clear scoping and changelog generation. Each commit should follow the conventional commit format with the appropriate package scope.
53
+
54
+
**Exception:** Create a single commit for cross-package changes that do not affect the public changelog, such as:
55
+
- Code style updates and formatting changes
56
+
- Refactoring that doesn't change public APIs
57
+
- Internal tooling and configuration updates
58
+
- Documentation updates across packages
59
+
60
+
#### Examples
61
+
62
+
For a feature spanning multiple packages:
63
+
```
64
+
feat(cli): Add support for new build option
65
+
feat(builder): Implement new build option processing
66
+
feat(fs): Add helper methods for new build option
67
+
```
68
+
69
+
For refactoring across packages:
70
+
```
71
+
refactor: Standardize error handling across packages
0 commit comments