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
@@ -43,140 +43,58 @@ The workflow consists of three main jobs:
43
43
44
44
## Release Please Configuration
45
45
46
-
The configuration is defined in [`release-please-config.json`](../release-please-config.json). Below is a detailed explanation of each property:
46
+
The configuration is defined in [`release-please-config.json`](../release-please-config.json). This section explains our specific configuration choices and constraints.
**Purpose**: Defines the title format for release pull requests in monorepos
56
+
**Why we can't use `${version}`**: When using the `linked-versions` plugin, Release Please doesn't support the `${version}` placeholder in the PR title pattern. This is because linked versions create a single PR for multiple packages with the same version, but the templating system doesn't expose this shared version to the title pattern. As a workaround, we use `${branch}` (which resolves to "main") instead.
56
57
57
-
**Behavior**:
58
-
- Uses `${branch}` placeholder, which gets replaced with the branch name
59
-
- For linked versions, Release Please creates a single PR for all packages
**Purpose**: We're currently in alpha phase for v5.0.0. Once stable, these flags should be removed to enable normal semantic versioning.
142
71
143
72
---
144
73
145
-
###`packages`
74
+
#### Package Configuration
146
75
147
76
```json
148
77
"packages": {
149
-
"packages/logger": {
150
-
"component": "logger"
151
-
},
152
-
"packages/cli": {
78
+
"packages/logger": { "component": "logger" },
79
+
"packages/cli": {
153
80
"component": "cli",
154
81
"extra-files": ["npm-shrinkwrap.json"]
155
82
}
156
83
}
157
84
```
158
85
159
-
**Purpose**: Defines which packages in the monorepo are managed by Release Please
160
-
161
-
**Structure**:
162
-
-**Key**: Path to package directory (relative to repo root)
163
-
-**`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as this might tag something wrongly on GitHub
164
-
-**`extra-files`**: Additional files to version-bump (beyond `package.json`)
86
+
**Why explicit package configuration**: We explicitly list packages rather than using `exclude-paths` to:
87
+
1. Make it clear which packages are released
88
+
2. Prevent accidental inclusion of internal tooling
89
+
3. Keep the configuration maintainable
165
90
166
-
**Behavior**:
167
-
- Each package gets its own changelog
168
-
- Only specified packages are included in releases
91
+
**Why `"component"` doesn't include `@ui5` scope**: Using scoped names (e.g., `"@ui5/logger"`) in the component field can cause incorrect GitHub tagging behavior.
**Note**: We explicitly configure packages instead of using `exclude-paths` for the following reasons:
173
-
1. More maintainable - clear list of released packages
174
-
2. Prevents accidental inclusion of internal tooling
175
-
3. Better for documentation and understanding
93
+
**Why `extra-files` for CLI**: The CLI package's `npm-shrinkwrap.json` must be version-bumped alongside `package.json` to maintain consistency.
176
94
177
95
---
178
96
179
-
###Plugins
97
+
#### Plugin Configuration
180
98
181
99
```json
182
100
"plugins": [
@@ -192,95 +110,37 @@ The configuration is defined in [`release-please-config.json`](../release-please
192
110
]
193
111
```
194
112
195
-
**Purpose**: Extends Release Please functionality with additional behaviors
196
-
197
-
#### `node-workspace`Plugin
113
+
**`node-workspace` with `merge: false`**: When using `linked-versions`, the `node-workspace` plugin **must** set `merge: false` ([documented requirement](https://github.com/googleapis/release-please/blob/main/docs/manifest-releaser.md#linked-versions)). This prevents conflicts in Release Please's internal manifest processing between:
114
+
1. The `linked-versions` plugin synchronizing versions across all packages
115
+
2. The `node-workspace`plugin updating workspace dependency references
198
116
199
-
```json
200
-
{
201
-
"type": "node-workspace",
202
-
"merge": false
203
-
}
204
-
```
117
+
Without this flag, Release Please may fail to generate the release PR or produce incorrect version updates.
205
118
206
-
**Purpose**: Automatically updates workspace dependency versions in `package.json` files
119
+
**Note**: Release Please always force-pushes to the PR branch, so this flag only affects internal manifest processing, not Git commit structure.
207
120
208
-
**Behavior**:
209
-
- Scans all `package.json` files in the workspace
210
-
- Updates `dependencies` and `devDependencies` when workspace packages are bumped
211
-
-`merge: false` updates versions, but doesn't merge PRs automatically
121
+
**`linked-versions` rationale**: All UI5 CLI packages are tightly coupled and should be released together with synchronized version numbers.
0 commit comments