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
+41-11Lines changed: 41 additions & 11 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,8 +12,6 @@ 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
-
17
15
### Commit Message Style
18
16
19
17
This project uses the [Conventional Commits specification](https://www.conventionalcommits.org/) to ensure a consistent way of dealing with commit messages.
@@ -24,27 +22,59 @@ This project uses the [Conventional Commits specification](https://www.conventio
24
22
type(scope): Description
25
23
```
26
24
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.
25
+
-**Type (required)**: Every commit message must start with a lowercase `type`. The project has defined a set of [valid types](../commitlint.config.mjs#L10)
26
+
-**Scope (conditional)**: Required only for types that appear in the public changelog: `feat`, `fix`, `perf`, `deps`, and `revert`. The scope must be the package folder name (e.g. `cli`, `builder`, `fs`, `logger`, `project`, `server`, `documentation`). No other scopes are allowed (except `build(deps-dev)` for dev dependencies).
27
+
-**Description (required)**: Must follow Sentence Case style. Only the first word and proper nouns are written in uppercase.
28
+
29
+
#### Dependencies
30
+
31
+
- Use `deps(scope)` for productive dependency updates that are relevant for end users
32
+
- Use `build(deps-dev)` for development dependency updates
30
33
31
-
- required: the `description` has to follow the Sentence Case style. Only the first word and proper nouns are written in uppercase.
34
+
#### Breaking Changes
32
35
36
+
Breaking changes should follow the [Conventional Commits specification](https://www.conventionalcommits.org/):
37
+
- Add `!` after the type/scope: `feat(cli)!: Remove deprecated command`
38
+
- Include `BREAKING CHANGE:` in the commit footer with details about the change
33
39
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
-
-
40
+
#### Commitlint Rules
38
41
42
+
The following rules are enforced by commitlint:
43
+
- Valid commit types are enforced (see [commitlint.config.mjs](../commitlint.config.mjs))
44
+
- When using a scope, it must be one of: package names (`builder`, `cli`, `documentation`, `fs`, `logger`, `project`, `server`) or `deps-dev` for development dependencies
45
+
- Commit messages must follow sentence case for the description
46
+
47
+
**Important**: Commitlint cannot automatically enforce that scopes are required only for public changelog types. Please manually ensure that:
48
+
-`feat`, `fix`, `perf`, `deps`, `revert` commits always include a package scope
49
+
- Other commit types should not include a scope (except `build(deps-dev)` for dev dependencies)
39
50
40
51
#### Examples
41
52
53
+
**Features and fixes:**
42
54
```
43
55
feat(cli): Add "versions" command
56
+
fix(fs): Correctly handle paths containing non-ASCII characters on Windows
57
+
perf(builder): Improve bundle generation speed by 25%
44
58
```
45
59
60
+
**Dependencies:**
46
61
```
47
-
fix(fs): Correctly handle paths containing non-ASCII characters on Windows
62
+
deps(cli): Update @ui5/logger to v4.0.0
63
+
build(deps-dev): Update eslint to v9.0.0
64
+
```
65
+
66
+
**Breaking changes:**
67
+
```
68
+
feat(cli)!: Remove deprecated "init" command
69
+
70
+
BREAKING CHANGE: The "init" command has been removed. Use "create" instead.
0 commit comments