Skip to content

Commit 31357f6

Browse files
committed
docs: Update development guidelines
1 parent a4f0018 commit 31357f6

File tree

1 file changed

+47
-2
lines changed

1 file changed

+47
-2
lines changed

docs/Guidelines.md

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ During development, you might want to use `npm run unit` or `npm run unit-watch`
1212
### No Merge Commits
1313
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.
1414

15+
16+
1517
### Commit Message Style
1618

1719
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
2224
type(scope): Description
2325
```
2426

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+
2731
- 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
72+
```

0 commit comments

Comments
 (0)