From 31b5215547eeedef57bf5593d02e8fafd5a07d58 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Wed, 26 Nov 2025 09:32:37 +0200 Subject: [PATCH 01/49] docs: Add release please flow and config information --- docs/Release-Workflow.md | 286 +++++++++++++++++++++++++++ docs/release-workflow-diagram.drawio | 91 +++++++++ docs/release-workflow-diagram.svg | 1 + 3 files changed, 378 insertions(+) create mode 100644 docs/Release-Workflow.md create mode 100644 docs/release-workflow-diagram.drawio create mode 100644 docs/release-workflow-diagram.svg diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md new file mode 100644 index 00000000000..174e732b8b5 --- /dev/null +++ b/docs/Release-Workflow.md @@ -0,0 +1,286 @@ +# Release Please Workflow + +This document explains the automated release and publishing workflow for the UI5 CLI monorepo using [Release Please](https://github.com/googleapis/release-please). + +## Table of Contents + +- [Overview](#overview) +- [Workflow Architecture](#workflow-architecture) +- [Release Please Configuration](#release-please-configuration) + +## Overview + +The UI5 CLI uses an automated release workflow powered by Release Please to: +1. **Automatically generate release PRs** based on Conventional Commits +2. **Update version numbers** across all workspace packages synchronously +3. **Generate changelogs** for each package +4. **Publish packages to npm** sequentially to respect dependency order +5. **Create GitHub releases** with release notes + +## Workflow Architecture + +![Release Workflow Diagram](./release-workflow-diagram.svg) + +The workflow consists of three main jobs: + +### 1. Release Please Job +- **Trigger**: Push to `main` branch +- **Purpose**: Create/update release PR with version bumps and changelogs +- **Output**: Information about created releases and PRs + +### 2. Publish Packages Job +- **Trigger**: When release PR is merged to `main` +- **Action**: Developer merges the release PR in GitHub +- **Result**: + - Release Please creates releases & tags in GitHub for every package + - Packages are published to npm sequentially (logger → fs → builder → server → project) +- **Strategy**: Sequential execution (`max-parallel: 1`) to ensure dependencies exist before dependents + +### 3. Publish CLI Job +- **Trigger**: After all other packages are published +- **Purpose**: Generate `npm-shrinkwrap.json` and publish the CLI package +- **Dependency**: Requires all other packages to be available on npm registry + +## Release Please Configuration + +The configuration is defined in [`release-please-config.json`](../release-please-config.json). Below is a detailed explanation of each property: + + +### Pull Request Title Pattern + +```json +"group-pull-request-title-pattern": "release: UI5 CLI packages ${branch}" +``` + +**Purpose**: Defines the title format for release pull requests in monorepos. + +**Behavior**: +- Uses `${branch}` placeholder which gets replaced with the branch name +- For linked versions, Release Please creates a single PR for all packages + +**Documentation**: [Grouping Pull Requests](https://github.com/googleapis/release-please?tab=readme-ov-file#group-pull-request-title-pattern) + +--- + +### Release Type + +```json +"release-type": "node" +``` + +**Purpose**: Specifies the project type, which determines default behavior for versioning and changelog generation. + +**Behavior**: +- Uses Node.js/npm conventions +- Updates `package.json` version field +- Generates conventional changelog format +- Handles npm-specific files + +**Documentation**: [Release Types](https://github.com/googleapis/release-please?tab=readme-ov-file#release-types-supported) + +--- + +### Always Update + +```json +"always-update": true +``` + +**Purpose**: Ensures the release PR is updated with every commit to the main branch. + +**Behavior**: +- Scans commits since last release +- Updates PR description, version numbers, and changelogs +- Prevents stale release PRs + +**Documentation**: This is a standard boolean flag in Release Please for keeping PRs current. + +--- + +### Pull Request Header + +```json +"pull-request-header": ":tractor: New release prepared" +``` + +**Purpose**: Customizes the header text in the release PR description. + +**Behavior**: +- Appears at the top of the release PR body +- Can include emojis and markdown +- Provides context to reviewers + +**Documentation**: [Pull Request Header](https://github.com/googleapis/release-please?tab=readme-ov-file#pull-request-header) + +--- + +### Prerelease Configuration + +```json +"prerelease": true, +"prerelease-type": "alpha", +"release-as": "5.0.0-alpha.0" +``` + +**Purpose**: Configures prerelease versioning for alpha/beta releases. + +**`prerelease`**: +- Enables prerelease mode +- Affects version bumping logic +- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#prerelease) + +**`prerelease-type`**: +- Defines the prerelease identifier (alpha, beta, rc, etc.) +- Appended to version: `5.0.0-alpha.0`, `5.0.0-alpha.1`, etc. +- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#prerelease-type) + +**`release-as`**: +- Forces the next release version +- Used for major version bumps or initial releases +- Takes precedence over conventional commit version bumps +- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#release-as) + +--- + +### Packages + +```json +"packages": { + "packages/logger": { + "component": "logger" + }, + "packages/cli": { + "component": "cli", + "extra-files": ["npm-shrinkwrap.json"] + } +} +``` + +**Purpose**: Defines which packages in the monorepo should be managed by Release Please. + +**Structure**: +- **Key**: Path to package directory (relative to repo root) +- **`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as it might tag something wrongly on GitHub +- **`extra-files`**: Additional files to version bump (beyond `package.json`) + +**Behavior**: +- Each package gets its own changelog +- Only specified packages are included in releases + +**Documentation**: [Monorepo Support](https://github.com/googleapis/release-please?tab=readme-ov-file#monorepo-support) + +**Note**: We explicitly configure packages instead of using `exclude-paths` because: +1. More maintainable - clear list of released packages +2. Prevents accidental inclusion of internal tooling +3. Better for documentation and understanding + +--- + +### Plugins + +```json +"plugins": [ + { + "type": "node-workspace", + "merge": false + }, + { + "type": "linked-versions", + "groupName": "ui5-cli-packages", + "components": ["logger", "fs", "builder", "server", "project", "cli"] + } +] +``` + +**Purpose**: Extend Release Please functionality with additional behaviors. + +#### Node Workspace Plugin + +```json +{ + "type": "node-workspace", + "merge": false +} +``` + +**Purpose**: Automatically updates workspace dependency versions in `package.json` files. + +**Behavior**: +- Scans all `package.json` files in the workspace +- Updates `dependencies` and `devDependencies` when workspace packages are bumped +- `merge: false` means it updates versions but doesn't merge PRs automatically + +**Known Limitations**: +- Cannot resolve circular peer dependencies (e.g., `@ui5/project` ↔ `@ui5/builder`) +- May update lockfile entries for npm aliases incorrectly + +**Workaround**: We manually update circular peer dependencies in the workflow after Release Please runs. + +**Documentation**: [Node Workspace Plugin](https://github.com/googleapis/release-please/blob/main/docs/plugins.md#node-workspace) + +--- + +#### Linked Versions Plugin + +```json +{ + "type": "linked-versions", + "groupName": "ui5-cli-packages", + "components": ["logger", "fs", "builder", "server", "project", "cli"] +} +``` + +**Purpose**: Synchronizes version numbers across multiple packages in a monorepo. + +**Behavior**: +- All specified components get the same version number +- Single release PR for all packages +- Single GitHub release created for the group +- Changelogs are still separate per package + +**Benefits**: +- Simplifies versioning for tightly coupled packages +- Easier for consumers to know compatible versions +- Reduces release management overhead + +**Documentation**: [Linked Versions Plugin](https://github.com/googleapis/release-please/blob/main/docs/plugins.md#linked-versions) + +--- + +### Changelog Sections + +```json +"changelog-sections": [ + { + "type": "feat", + "section": "Features" + }, + { + "type": "fix", + "section": "Bug Fixes" + }, + { + "type": "docs", + "section": "Documentation", + "hidden": true + } +] +``` + +**Purpose**: Defines which commit types appear in the changelog and how they're grouped. + +**Structure**: +- **`type`**: Conventional commit type (feat, fix, docs, etc.) +- **`section`**: Heading in the changelog +- **`hidden`**: If `true`, commits won't appear in changelog but may still trigger version bumps + +**Behavior**: +- Only configured types are included +- Types can be reordered by array position +- Hidden types are useful for internal changes (tests, CI, etc.) + +**Documentation**: [Changelog Sections](https://github.com/googleapis/release-please?tab=readme-ov-file#changelog-sections) + +**Our Configuration**: +- **Visible**: Features, Bug Fixes, Performance Improvements, Dependencies, Reverts +- **Hidden**: Documentation, Styles, Refactoring, Tests, Build, CI, Release diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio new file mode 100644 index 00000000000..ccbb05319cf --- /dev/null +++ b/docs/release-workflow-diagram.drawio @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/release-workflow-diagram.svg b/docs/release-workflow-diagram.svg new file mode 100644 index 00000000000..65a76d3c643 --- /dev/null +++ b/docs/release-workflow-diagram.svg @@ -0,0 +1 @@ +
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates CHANGELOGs for each package
• Generates CHANGELOGs for each package
• Fixes circular peerDependency & lockfile issues ** (Not handled by Release Please)
• Fixes circular peerDependency & lockfile issues ** (Not handled...
👤 Developer
Merges Release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why Sequential Publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• max-parallel: 1 ensures proper order
Why Sequential Publishing?...
Why CLI Published Last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI Published Last?...
• Syncronizes package.json intra dependency versions for the packages
• Syncronizes package.json intra dependency versions for the pack...
Text is not SVG - cannot display
\ No newline at end of file From 8bef2ef977b4ffcbe30325fcb00640dda97bf393 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:55:33 +0200 Subject: [PATCH 02/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 174e732b8b5..478b646c2ca 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -10,7 +10,7 @@ This document explains the automated release and publishing workflow for the UI5 ## Overview -The UI5 CLI uses an automated release workflow powered by Release Please to: +UI5 CLI uses an automated release workflow powered by Release Please to perform the following tasks: 1. **Automatically generate release PRs** based on Conventional Commits 2. **Update version numbers** across all workspace packages synchronously 3. **Generate changelogs** for each package From e6e5f015b641c03878496784c00943cdc8925fd3 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:55:43 +0200 Subject: [PATCH 03/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 478b646c2ca..9802caf38db 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -23,7 +23,7 @@ UI5 CLI uses an automated release workflow powered by Release Please to perform The workflow consists of three main jobs: -### 1. Release Please Job +### 1. `release-please` Job - **Trigger**: Push to `main` branch - **Purpose**: Create/update release PR with version bumps and changelogs - **Output**: Information about created releases and PRs From 78f7b9b96878a0cf5b59a6af3cb290d1cd96c6b1 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:55:53 +0200 Subject: [PATCH 04/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 9802caf38db..4b6db60829e 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -28,7 +28,7 @@ The workflow consists of three main jobs: - **Purpose**: Create/update release PR with version bumps and changelogs - **Output**: Information about created releases and PRs -### 2. Publish Packages Job +### 2. `publish-packages` Job - **Trigger**: When release PR is merged to `main` - **Action**: Developer merges the release PR in GitHub - **Result**: From 683c488a039db0cb8686a8434a915f525041ed69 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:56:00 +0200 Subject: [PATCH 05/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 4b6db60829e..08df3b1ce07 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -36,7 +36,7 @@ The workflow consists of three main jobs: - Packages are published to npm sequentially (logger → fs → builder → server → project) - **Strategy**: Sequential execution (`max-parallel: 1`) to ensure dependencies exist before dependents -### 3. Publish CLI Job +### 3. `publish-cli` Job - **Trigger**: After all other packages are published - **Purpose**: Generate `npm-shrinkwrap.json` and publish the CLI package - **Dependency**: Requires all other packages to be available on npm registry From 0958c92b85bde74007386cc2a07763b684a3bbe9 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:56:07 +0200 Subject: [PATCH 06/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 08df3b1ce07..7191969072b 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -29,7 +29,7 @@ The workflow consists of three main jobs: - **Output**: Information about created releases and PRs ### 2. `publish-packages` Job -- **Trigger**: When release PR is merged to `main` +- **Trigger**: Merger of release PR into `main` branch - **Action**: Developer merges the release PR in GitHub - **Result**: - Release Please creates releases & tags in GitHub for every package From b6b7e0a6081af2eafc03e5708eeb4baa3c05c1f6 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:56:32 +0200 Subject: [PATCH 07/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index ccbb05319cf..08419ac5558 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -22,7 +22,7 @@ - + From 9350db45d58a193044940c12a3e597867c69f279 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:56:51 +0200 Subject: [PATCH 08/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index 08419ac5558..fe92640e136 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -28,7 +28,7 @@ - + From 18456c3c41e6d7e55ab5426f1280bc9f0aad8006 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:57:00 +0200 Subject: [PATCH 09/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index fe92640e136..852a8a1172a 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -76,7 +76,7 @@ - + From f86a32bce0220a2febd06fecc8527f15cad69cb8 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:57:22 +0200 Subject: [PATCH 10/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index 852a8a1172a..1fd7a3d5f46 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -79,7 +79,7 @@ - + From f2616203195ccdbe589e9eb24ae2be9ff44fe8b6 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:57:43 +0200 Subject: [PATCH 11/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 7191969072b..3ef78672289 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -37,7 +37,7 @@ The workflow consists of three main jobs: - **Strategy**: Sequential execution (`max-parallel: 1`) to ensure dependencies exist before dependents ### 3. `publish-cli` Job -- **Trigger**: After all other packages are published +- **Trigger**: All other packages have been published - **Purpose**: Generate `npm-shrinkwrap.json` and publish the CLI package - **Dependency**: Requires all other packages to be available on npm registry From 52ce1c7f67aa1a611acb505f00075c38643c350e Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:58:39 +0200 Subject: [PATCH 12/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index 1fd7a3d5f46..26d44576f5c 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -19,7 +19,7 @@ - + From f5deca502a3c04b57cbb7411f94ca554e3e087be Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 15:59:17 +0200 Subject: [PATCH 13/49] docs: Update docs/release-workflow-diagram.drawio MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/release-workflow-diagram.drawio | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index 26d44576f5c..c6cf12e0890 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -82,7 +82,7 @@ - + From 82d4924dbd5a2e0925ff8a77eae6a5fa83d97aee Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:00:31 +0200 Subject: [PATCH 14/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 3ef78672289..3ac18b96592 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -283,4 +283,4 @@ The configuration is defined in [`release-please-config.json`](../release-please **Our Configuration**: - **Visible**: Features, Bug Fixes, Performance Improvements, Dependencies, Reverts -- **Hidden**: Documentation, Styles, Refactoring, Tests, Build, CI, Release +- **Hidden**: Documentation, styles, refactoring, tests, build, CI, release From 01d2d312f9d60cff5c4c6c782b19dab22c5681a7 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:03:08 +0200 Subject: [PATCH 15/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 3ac18b96592..8fb427dc222 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -282,5 +282,5 @@ The configuration is defined in [`release-please-config.json`](../release-please **Documentation**: [Changelog Sections](https://github.com/googleapis/release-please?tab=readme-ov-file#changelog-sections) **Our Configuration**: -- **Visible**: Features, Bug Fixes, Performance Improvements, Dependencies, Reverts +- **Visible**: Features, bugfixes, performance improvements, dependencies, reverts - **Hidden**: Documentation, styles, refactoring, tests, build, CI, release From dc7de694389b6eded069e690ea82638156abd27f Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:05:56 +0200 Subject: [PATCH 16/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 8fb427dc222..0ff58f068ff 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -267,7 +267,7 @@ The configuration is defined in [`release-please-config.json`](../release-please ] ``` -**Purpose**: Defines which commit types appear in the changelog and how they're grouped. +**Purpose**: Defines which commit types appear in the changelog and how they're grouped **Structure**: - **`type`**: Conventional commit type (feat, fix, docs, etc.) From 132fac0d2adc26a41c617b396de5f0c2197b4742 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:06:40 +0200 Subject: [PATCH 17/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 0ff58f068ff..da81b108a56 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -247,7 +247,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -### Changelog Sections +### `changelog-sections` ```json "changelog-sections": [ From 5574cab53a4d5ecae45e7f42de3bb92c8d658e54 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:06:59 +0200 Subject: [PATCH 18/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index da81b108a56..b5ceee5f6c5 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -234,7 +234,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Behavior**: - All specified components get the same version number -- Single release PR for all packages +- Single release PR created for all packages - Single GitHub release created for the group - Changelogs are still separate per package From 1aa7828186df8ab0f0f5d830c5aff8bb45875b58 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:45:34 +0200 Subject: [PATCH 19/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index b5ceee5f6c5..901ffbd5d44 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -230,7 +230,7 @@ The configuration is defined in [`release-please-config.json`](../release-please } ``` -**Purpose**: Synchronizes version numbers across multiple packages in a monorepo. +**Purpose**: Synchronizes version numbers across multiple packages in a monorepo **Behavior**: - All specified components get the same version number From be1eed201662ce2e12130886267569335b266dc3 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:45:53 +0200 Subject: [PATCH 20/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 901ffbd5d44..83faad2fd14 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -220,7 +220,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -#### Linked Versions Plugin +#### `linked-versions` Plugin ```json { From 94d7b361fe607e1f3af648b694e1a6ae1b80b37a Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:46:08 +0200 Subject: [PATCH 21/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 83faad2fd14..b2d6acf2e24 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -210,7 +210,7 @@ The configuration is defined in [`release-please-config.json`](../release-please - Updates `dependencies` and `devDependencies` when workspace packages are bumped - `merge: false` means it updates versions but doesn't merge PRs automatically -**Known Limitations**: +**Known limitations**: - Cannot resolve circular peer dependencies (e.g., `@ui5/project` ↔ `@ui5/builder`) - May update lockfile entries for npm aliases incorrectly From 94d8f8352d58a76df7fd27148ad93da369162349 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:46:24 +0200 Subject: [PATCH 22/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index b2d6acf2e24..87782bb3b77 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -208,7 +208,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Behavior**: - Scans all `package.json` files in the workspace - Updates `dependencies` and `devDependencies` when workspace packages are bumped -- `merge: false` means it updates versions but doesn't merge PRs automatically +- `merge: false` updates versions, but doesn't merge PRs automatically **Known limitations**: - Cannot resolve circular peer dependencies (e.g., `@ui5/project` ↔ `@ui5/builder`) From e9a3fac4ce23c09bc3c31162b3a917961df17d37 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:46:44 +0200 Subject: [PATCH 23/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 87782bb3b77..2a3658cb6f1 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -203,7 +203,7 @@ The configuration is defined in [`release-please-config.json`](../release-please } ``` -**Purpose**: Automatically updates workspace dependency versions in `package.json` files. +**Purpose**: Automatically updates workspace dependency versions in `package.json` files **Behavior**: - Scans all `package.json` files in the workspace From f8546d6435ca04a0875dd2b92e13430b52d8e1d6 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:46:59 +0200 Subject: [PATCH 24/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 2a3658cb6f1..260f7c6078c 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -194,7 +194,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Purpose**: Extend Release Please functionality with additional behaviors. -#### Node Workspace Plugin +#### `node-workspace` Plugin ```json { From ea8f43af9842940eb800d1447322ecdda8d33c8a Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:47:24 +0200 Subject: [PATCH 25/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 260f7c6078c..03e838cccbd 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -192,7 +192,7 @@ The configuration is defined in [`release-please-config.json`](../release-please ] ``` -**Purpose**: Extend Release Please functionality with additional behaviors. +**Purpose**: Extends Release Please functionality with additional behaviors #### `node-workspace` Plugin From 9f5a2e3c78706e1cedb0cccf5556736e17cbd018 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:47:39 +0200 Subject: [PATCH 26/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 03e838cccbd..814f97d5e97 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -169,7 +169,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Documentation**: [Monorepo Support](https://github.com/googleapis/release-please?tab=readme-ov-file#monorepo-support) -**Note**: We explicitly configure packages instead of using `exclude-paths` because: +**Note**: We explicitly configure packages instead of using `exclude-paths` for the following reasons: 1. More maintainable - clear list of released packages 2. Prevents accidental inclusion of internal tooling 3. Better for documentation and understanding From 2d9dd7b65209732160a45d5b2991b6e6318c805b Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:47:57 +0200 Subject: [PATCH 27/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 814f97d5e97..a5292769aaf 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -161,7 +161,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Structure**: - **Key**: Path to package directory (relative to repo root) - **`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as it might tag something wrongly on GitHub -- **`extra-files`**: Additional files to version bump (beyond `package.json`) +- **`extra-files`**: Additional files to version-bump (beyond `package.json`) **Behavior**: - Each package gets its own changelog From 2da980af93da777727763751586e58868ae9c3ed Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:48:13 +0200 Subject: [PATCH 28/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index a5292769aaf..fda5fee46a7 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -160,7 +160,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Structure**: - **Key**: Path to package directory (relative to repo root) -- **`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as it might tag something wrongly on GitHub +- **`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as this might tag something wrongly on GitHub - **`extra-files`**: Additional files to version-bump (beyond `package.json`) **Behavior**: From 9f6414567b4b1af3ad4f3ce86212466ca75c7881 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:48:26 +0200 Subject: [PATCH 29/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index fda5fee46a7..31f0e4749f9 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -156,7 +156,7 @@ The configuration is defined in [`release-please-config.json`](../release-please } ``` -**Purpose**: Defines which packages in the monorepo should be managed by Release Please. +**Purpose**: Defines which packages in the monorepo are managed by Release Please **Structure**: - **Key**: Path to package directory (relative to repo root) From ea162df84bfaea4975fd5ceca2c940844639c799 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:48:45 +0200 Subject: [PATCH 30/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 31f0e4749f9..504538eedbf 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -142,7 +142,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -### Packages +### `packages` ```json "packages": { From aa31c333e6d141bfd97cb97df478ed7e380af2f0 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:49:23 +0200 Subject: [PATCH 31/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 504538eedbf..525f36536d5 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -131,7 +131,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **`prerelease-type`**: - Defines the prerelease identifier (alpha, beta, rc, etc.) -- Appended to version: `5.0.0-alpha.0`, `5.0.0-alpha.1`, etc. +- Appended to version designation: `5.0.0-alpha.0`, `5.0.0-alpha.1`, etc. - [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#prerelease-type) **`release-as`**: From d9b17f6704a730d7ff9db6b4b1847f900e5d50bd Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:49:40 +0200 Subject: [PATCH 32/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 525f36536d5..37a24a9b525 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -122,7 +122,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "release-as": "5.0.0-alpha.0" ``` -**Purpose**: Configures prerelease versioning for alpha/beta releases. +**Purpose**: Configures prerelease versioning for alpha/beta releases **`prerelease`**: - Enables prerelease mode From 2b9a674db04ca505e3284e6302e22e5eca92982b Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:49:54 +0200 Subject: [PATCH 33/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 37a24a9b525..690546daf0f 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -103,7 +103,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "pull-request-header": ":tractor: New release prepared" ``` -**Purpose**: Customizes the header text in the release PR description. +**Purpose**: Customizes the header text in the release PR description **Behavior**: - Appears at the top of the release PR body From 42e784da17cc6f4cbee4efe0ddd69be88dd7c4f4 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:50:09 +0200 Subject: [PATCH 34/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 690546daf0f..afbd675c583 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -97,7 +97,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -### Pull Request Header +### `pull-request-header` ```json "pull-request-header": ":tractor: New release prepared" From bec91cbadbf51127baa71fcf98afa0ff3f5b45a7 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:50:23 +0200 Subject: [PATCH 35/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index afbd675c583..8da3e94674c 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -86,7 +86,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "always-update": true ``` -**Purpose**: Ensures the release PR is updated with every commit to the main branch. +**Purpose**: Ensures the release PR is updated with every commit to the main branch **Behavior**: - Scans commits since last release From 4aea0302dae752f78e5b847f5c8104c213ea22b8 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:50:36 +0200 Subject: [PATCH 36/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 8da3e94674c..c5b90a9359c 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -80,7 +80,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -### Always Update +### `always-update` ```json "always-update": true From 5327594c7f17b99eb40aa3115077fd221a3a5efd Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:50:51 +0200 Subject: [PATCH 37/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index c5b90a9359c..e6a53b36c15 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -68,7 +68,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "release-type": "node" ``` -**Purpose**: Specifies the project type, which determines default behavior for versioning and changelog generation. +**Purpose**: Specifies the project type, which determines the default behavior for versioning and changelog generation **Behavior**: - Uses Node.js/npm conventions From 72edb08aa2e5a588f4fee8e86994aada632da8e6 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:51:03 +0200 Subject: [PATCH 38/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index e6a53b36c15..8606e345470 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -62,7 +62,7 @@ The configuration is defined in [`release-please-config.json`](../release-please --- -### Release Type +### `release-type` ```json "release-type": "node" From deac4a9b101780d692c9536df35a566f5f4af109 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:51:15 +0200 Subject: [PATCH 39/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 8606e345470..a11271dbe7d 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -55,7 +55,7 @@ The configuration is defined in [`release-please-config.json`](../release-please **Purpose**: Defines the title format for release pull requests in monorepos. **Behavior**: -- Uses `${branch}` placeholder which gets replaced with the branch name +- Uses `${branch}` placeholder, which gets replaced with the branch name - For linked versions, Release Please creates a single PR for all packages **Documentation**: [Grouping Pull Requests](https://github.com/googleapis/release-please?tab=readme-ov-file#group-pull-request-title-pattern) From da108bcf10e16bddb10439433f484018c8112161 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:51:27 +0200 Subject: [PATCH 40/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index a11271dbe7d..20a2533594c 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -38,7 +38,7 @@ The workflow consists of three main jobs: ### 3. `publish-cli` Job - **Trigger**: All other packages have been published -- **Purpose**: Generate `npm-shrinkwrap.json` and publish the CLI package +- **Purpose**: Generates `npm-shrinkwrap.json` and publishes the CLI package - **Dependency**: Requires all other packages to be available on npm registry ## Release Please Configuration From 1859b2f89036c07df1414705b39ffd53090eac01 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:51:38 +0200 Subject: [PATCH 41/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 20a2533594c..66e9a76e72a 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -25,7 +25,7 @@ The workflow consists of three main jobs: ### 1. `release-please` Job - **Trigger**: Push to `main` branch -- **Purpose**: Create/update release PR with version bumps and changelogs +- **Purpose**: Creates/updates release PR with version bumps and changelogs - **Output**: Information about created releases and PRs ### 2. `publish-packages` Job From d3f308fa30b26dd1d11feb809b35dac5d4d4613f Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:51:51 +0200 Subject: [PATCH 42/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 66e9a76e72a..28def7ae5d5 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -52,7 +52,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "group-pull-request-title-pattern": "release: UI5 CLI packages ${branch}" ``` -**Purpose**: Defines the title format for release pull requests in monorepos. +**Purpose**: Defines the title format for release pull requests in monorepos **Behavior**: - Uses `${branch}` placeholder, which gets replaced with the branch name From 8afeda2802d79aab3bb2e32a22d39e6e7cfbf4e2 Mon Sep 17 00:00:00 2001 From: Yavor Ivanov Date: Thu, 27 Nov 2025 16:52:01 +0200 Subject: [PATCH 43/49] docs: Update docs/Release-Workflow.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Günter Klatt <57760635+KlattG@users.noreply.github.com> --- docs/Release-Workflow.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 28def7ae5d5..7386c38d012 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -46,7 +46,7 @@ The workflow consists of three main jobs: The configuration is defined in [`release-please-config.json`](../release-please-config.json). Below is a detailed explanation of each property: -### Pull Request Title Pattern +### `group-pull-request-title-pattern` ```json "group-pull-request-title-pattern": "release: UI5 CLI packages ${branch}" From bde8f3c3bbf7198d3bdb56d8fc7a5961993ac037 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Thu, 27 Nov 2025 16:57:18 +0200 Subject: [PATCH 44/49] fix: Rebuild diagram --- docs/release-workflow-diagram.svg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/release-workflow-diagram.svg b/docs/release-workflow-diagram.svg index 65a76d3c643..ca5d96375da 100644 --- a/docs/release-workflow-diagram.svg +++ b/docs/release-workflow-diagram.svg @@ -1 +1 @@ -
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates CHANGELOGs for each package
• Generates CHANGELOGs for each package
• Fixes circular peerDependency & lockfile issues ** (Not handled by Release Please)
• Fixes circular peerDependency & lockfile issues ** (Not handled...
👤 Developer
Merges Release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why Sequential Publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• max-parallel: 1 ensures proper order
Why Sequential Publishing?...
Why CLI Published Last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI Published Last?...
• Syncronizes package.json intra dependency versions for the packages
• Syncronizes package.json intra dependency versions for the pack...
Text is not SVG - cannot display
\ No newline at end of file +
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates changelogs for each package
• Generates changelogs for each package
• Fixes circular peer dependency & lockfile issues ** (not handled by Release Please)
• Fixes circular peer dependency & lockfile issues ** (not handle...
👤 Developer
merges release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why sequential publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• `max-parallel: 1` ensures proper ordering
Why sequential publishing?...
Why CLI published last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI published last?...
• Synchronizes package.json intra-dependency versions for the packages
• Synchronizes package.json intra-dependency versions for the pac...
Text is not SVG - cannot display
\ No newline at end of file From 791ea99fc0431ae15752adff3de5d05073b9e6c7 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Fri, 28 Nov 2025 10:06:03 +0200 Subject: [PATCH 45/49] refactor: Rebuild diagram with corrections --- docs/release-workflow-diagram.drawio | 6 +++--- docs/release-workflow-diagram.svg | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index c6cf12e0890..b233631bd42 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -1,6 +1,6 @@ - + @@ -55,10 +55,10 @@ - + - + diff --git a/docs/release-workflow-diagram.svg b/docs/release-workflow-diagram.svg index ca5d96375da..98fbf80e2d9 100644 --- a/docs/release-workflow-diagram.svg +++ b/docs/release-workflow-diagram.svg @@ -1 +1 @@ -
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates changelogs for each package
• Generates changelogs for each package
• Fixes circular peer dependency & lockfile issues ** (not handled by Release Please)
• Fixes circular peer dependency & lockfile issues ** (not handle...
👤 Developer
merges release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
4. Publish @ui5/server (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
5. Publish @ui5/project (depends on fs, logger)
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why sequential publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• `max-parallel: 1` ensures proper ordering
Why sequential publishing?...
Why CLI published last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI published last?...
• Synchronizes package.json intra-dependency versions for the packages
• Synchronizes package.json intra-dependency versions for the pac...
Text is not SVG - cannot display
\ No newline at end of file +
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates changelogs for each package
• Generates changelogs for each package
• Fixes circular peer dependency & lockfile issues ** (not handled by Release Please)
• Fixes circular peer dependency & lockfile issues ** (not handle...
👤 Developer
merges release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
5. Publish @ui5/project (depends on fs, logger; peer dependency to builder)
5. Publish @ui5/project (depends on fs, logger; peer dep...
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why sequential publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• `max-parallel: 1` ensures proper ordering
Why sequential publishing?...
Why CLI published last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI published last?...
• Synchronizes package.json intra-dependency versions for the packages
• Synchronizes package.json intra-dependency versions for the pac...
Text is not SVG - cannot display
\ No newline at end of file From 656dede5827571e50a5e2e40740688edc0351787 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Fri, 28 Nov 2025 10:26:13 +0200 Subject: [PATCH 46/49] refactor: Do not apply 1:1 release please config, but stress on important decisions --- docs/Release-Workflow.md | 200 ++++++--------------------------------- 1 file changed, 30 insertions(+), 170 deletions(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index 7386c38d012..d4652dc932d 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -43,78 +43,23 @@ The workflow consists of three main jobs: ## Release Please Configuration -The configuration is defined in [`release-please-config.json`](../release-please-config.json). Below is a detailed explanation of each property: +The configuration is defined in [`release-please-config.json`](../release-please-config.json). This section explains our specific configuration choices and constraints. +### Key Configuration Decisions -### `group-pull-request-title-pattern` +#### PR Title Pattern ```json "group-pull-request-title-pattern": "release: UI5 CLI packages ${branch}" ``` -**Purpose**: Defines the title format for release pull requests in monorepos +**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. -**Behavior**: -- Uses `${branch}` placeholder, which gets replaced with the branch name -- For linked versions, Release Please creates a single PR for all packages - -**Documentation**: [Grouping Pull Requests](https://github.com/googleapis/release-please?tab=readme-ov-file#group-pull-request-title-pattern) +**Documentation**: [group-pull-request-title-pattern](https://github.com/googleapis/release-please?tab=readme-ov-file#group-pull-request-title-pattern) --- -### `release-type` - -```json -"release-type": "node" -``` - -**Purpose**: Specifies the project type, which determines the default behavior for versioning and changelog generation - -**Behavior**: -- Uses Node.js/npm conventions -- Updates `package.json` version field -- Generates conventional changelog format -- Handles npm-specific files - -**Documentation**: [Release Types](https://github.com/googleapis/release-please?tab=readme-ov-file#release-types-supported) - ---- - -### `always-update` - -```json -"always-update": true -``` - -**Purpose**: Ensures the release PR is updated with every commit to the main branch - -**Behavior**: -- Scans commits since last release -- Updates PR description, version numbers, and changelogs -- Prevents stale release PRs - -**Documentation**: This is a standard boolean flag in Release Please for keeping PRs current. - ---- - -### `pull-request-header` - -```json -"pull-request-header": ":tractor: New release prepared" -``` - -**Purpose**: Customizes the header text in the release PR description - -**Behavior**: -- Appears at the top of the release PR body -- Can include emojis and markdown -- Provides context to reviewers - -**Documentation**: [Pull Request Header](https://github.com/googleapis/release-please?tab=readme-ov-file#pull-request-header) - ---- - -### Prerelease Configuration +#### Prerelease Configuration ```json "prerelease": true, @@ -122,61 +67,34 @@ The configuration is defined in [`release-please-config.json`](../release-please "release-as": "5.0.0-alpha.0" ``` -**Purpose**: Configures prerelease versioning for alpha/beta releases - -**`prerelease`**: -- Enables prerelease mode -- Affects version bumping logic -- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#prerelease) - -**`prerelease-type`**: -- Defines the prerelease identifier (alpha, beta, rc, etc.) -- Appended to version designation: `5.0.0-alpha.0`, `5.0.0-alpha.1`, etc. -- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#prerelease-type) - -**`release-as`**: -- Forces the next release version -- Used for major version bumps or initial releases -- Takes precedence over conventional commit version bumps -- [Documentation](https://github.com/googleapis/release-please?tab=readme-ov-file#release-as) +**Purpose**: We're currently in alpha phase for v5.0.0. Once stable, these flags should be removed to enable normal semantic versioning. --- -### `packages` +#### Package Configuration ```json "packages": { - "packages/logger": { - "component": "logger" - }, - "packages/cli": { + "packages/logger": { "component": "logger" }, + "packages/cli": { "component": "cli", "extra-files": ["npm-shrinkwrap.json"] } } ``` -**Purpose**: Defines which packages in the monorepo are managed by Release Please - -**Structure**: -- **Key**: Path to package directory (relative to repo root) -- **`component`**: Name used in changelog and release notes. Avoid scopes (@ui5) as this might tag something wrongly on GitHub -- **`extra-files`**: Additional files to version-bump (beyond `package.json`) +**Why explicit package configuration**: We explicitly list packages rather than using `exclude-paths` to: +1. Make it clear which packages are released +2. Prevent accidental inclusion of internal tooling +3. Keep the configuration maintainable -**Behavior**: -- Each package gets its own changelog -- Only specified packages are included in releases +**Why `"component"` doesn't include `@ui5` scope**: Using scoped names (e.g., `"@ui5/logger"`) in the component field can cause incorrect GitHub tagging behavior. -**Documentation**: [Monorepo Support](https://github.com/googleapis/release-please?tab=readme-ov-file#monorepo-support) - -**Note**: We explicitly configure packages instead of using `exclude-paths` for the following reasons: -1. More maintainable - clear list of released packages -2. Prevents accidental inclusion of internal tooling -3. Better for documentation and understanding +**Why `extra-files` for CLI**: The CLI package's `npm-shrinkwrap.json` must be version-bumped alongside `package.json` to maintain consistency. --- -### Plugins +#### Plugin Configuration ```json "plugins": [ @@ -192,23 +110,15 @@ The configuration is defined in [`release-please-config.json`](../release-please ] ``` -**Purpose**: Extends Release Please functionality with additional behaviors - -#### `node-workspace` Plugin +**`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: +1. The `linked-versions` plugin synchronizing versions across all packages +2. The `node-workspace` plugin updating workspace dependency references -```json -{ - "type": "node-workspace", - "merge": false -} -``` +Without this flag, Release Please may fail to generate the release PR or produce incorrect version updates. -**Purpose**: Automatically updates workspace dependency versions in `package.json` files +**Note**: Release Please always force-pushes to the PR branch, so this flag only affects internal manifest processing, not Git commit structure. -**Behavior**: -- Scans all `package.json` files in the workspace -- Updates `dependencies` and `devDependencies` when workspace packages are bumped -- `merge: false` updates versions, but doesn't merge PRs automatically +**`linked-versions` rationale**: All UI5 CLI packages are tightly coupled and should be released together with synchronized version numbers. **Known limitations**: - Cannot resolve circular peer dependencies (e.g., `@ui5/project` ↔ `@ui5/builder`) @@ -216,71 +126,21 @@ The configuration is defined in [`release-please-config.json`](../release-please **Workaround**: We manually update circular peer dependencies in the workflow after Release Please runs. -**Documentation**: [Node Workspace Plugin](https://github.com/googleapis/release-please/blob/main/docs/plugins.md#node-workspace) - ---- - -#### `linked-versions` Plugin - -```json -{ - "type": "linked-versions", - "groupName": "ui5-cli-packages", - "components": ["logger", "fs", "builder", "server", "project", "cli"] -} -``` - -**Purpose**: Synchronizes version numbers across multiple packages in a monorepo - -**Behavior**: -- All specified components get the same version number -- Single release PR created for all packages -- Single GitHub release created for the group -- Changelogs are still separate per package - -**Benefits**: -- Simplifies versioning for tightly coupled packages -- Easier for consumers to know compatible versions -- Reduces release management overhead - -**Documentation**: [Linked Versions Plugin](https://github.com/googleapis/release-please/blob/main/docs/plugins.md#linked-versions) - --- -### `changelog-sections` +#### Changelog Sections ```json "changelog-sections": [ - { - "type": "feat", - "section": "Features" - }, - { - "type": "fix", - "section": "Bug Fixes" - }, - { - "type": "docs", - "section": "Documentation", - "hidden": true - } + { "type": "feat", "section": "Features" }, + { "type": "fix", "section": "Bug Fixes" }, + { "type": "docs", "section": "Documentation", "hidden": true } ] ``` -**Purpose**: Defines which commit types appear in the changelog and how they're grouped - -**Structure**: -- **`type`**: Conventional commit type (feat, fix, docs, etc.) -- **`section`**: Heading in the changelog -- **`hidden`**: If `true`, commits won't appear in changelog but may still trigger version bumps +**Visible in changelogs**: Features, bug fixes, performance improvements, dependencies, reverts -**Behavior**: -- Only configured types are included -- Types can be reordered by array position -- Hidden types are useful for internal changes (tests, CI, etc.) +**Hidden but tracked**: Documentation, styles, refactoring, tests, build, CI, release -**Documentation**: [Changelog Sections](https://github.com/googleapis/release-please?tab=readme-ov-file#changelog-sections) +**Rationale**: Internal changes don't need to appear in user-facing changelogs, but should still be tracked in commit history. -**Our Configuration**: -- **Visible**: Features, bugfixes, performance improvements, dependencies, reverts -- **Hidden**: Documentation, styles, refactoring, tests, build, CI, release From b7aac436783dbd710aa08067b2facc4e8aa38b94 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Fri, 28 Nov 2025 10:32:06 +0200 Subject: [PATCH 47/49] fix: Remove redundant shrinkwrap in confg --- release-please-config.json | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/release-please-config.json b/release-please-config.json index 45da99a6c95..a7ce47054d1 100644 --- a/release-please-config.json +++ b/release-please-config.json @@ -21,10 +21,7 @@ "component": "project" }, "packages/cli": { - "component": "cli", - "extra-files": [ - "npm-shrinkwrap.json" - ] + "component": "cli" } }, "release-type": "node", From a394c4a101c68512a251027a019ebe83766ef172 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Fri, 28 Nov 2025 11:18:42 +0200 Subject: [PATCH 48/49] refactor: Documentation --- docs/Release-Workflow.md | 37 +++++++++++-------------------------- 1 file changed, 11 insertions(+), 26 deletions(-) diff --git a/docs/Release-Workflow.md b/docs/Release-Workflow.md index d4652dc932d..0c9d8adbf70 100644 --- a/docs/Release-Workflow.md +++ b/docs/Release-Workflow.md @@ -25,21 +25,21 @@ The workflow consists of three main jobs: ### 1. `release-please` Job - **Trigger**: Push to `main` branch -- **Purpose**: Creates/updates release PR with version bumps and changelogs -- **Output**: Information about created releases and PRs +- **Purpose**: Creates/updates version bumps and changelogs for all of the packages in a single PR. ### 2. `publish-packages` Job -- **Trigger**: Merger of release PR into `main` branch +- **Trigger**: Merge of release PR into `main` branch - **Action**: Developer merges the release PR in GitHub - **Result**: - - Release Please creates releases & tags in GitHub for every package - - Packages are published to npm sequentially (logger → fs → builder → server → project) + - Release Please creates separate releases & tags in GitHub for every package + - Packages are published to NPM sequentially (logger → fs → builder → server → project) - **Strategy**: Sequential execution (`max-parallel: 1`) to ensure dependencies exist before dependents ### 3. `publish-cli` Job - **Trigger**: All other packages have been published -- **Purpose**: Generates `npm-shrinkwrap.json` and publishes the CLI package -- **Dependency**: Requires all other packages to be available on npm registry +- **Purpose**: Generates `npm-shrinkwrap.json` using `shrinkwrap-extractor` and publishes the CLI package +- **Why separate**: The shrinkwrap must contain published registry versions of workspace packages, not workspace links. This requires all dependencies to be available on npm registry first. +- **How it works**: The `shrinkwrap-extractor` reads the monorepo's `package-lock.json`, extracts production dependencies for `@ui5/cli`, converts workspace references to registry URLs, and generates a valid `npm-shrinkwrap.json` that will be included in the published CLI package. ## Release Please Configuration @@ -53,7 +53,8 @@ The configuration is defined in [`release-please-config.json`](../release-please "group-pull-request-title-pattern": "release: UI5 CLI packages ${branch}" ``` -**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. +**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 when creating single PR with multiple packages. In such case release please does not have a single source of truth even though packages are released under the same version. +Adding the root package, will resolve this, but it will pollute the release notes with unnecessary information that we need to manually remove. **Documentation**: [group-pull-request-title-pattern](https://github.com/googleapis/release-please?tab=readme-ov-file#group-pull-request-title-pattern) @@ -77,8 +78,7 @@ The configuration is defined in [`release-please-config.json`](../release-please "packages": { "packages/logger": { "component": "logger" }, "packages/cli": { - "component": "cli", - "extra-files": ["npm-shrinkwrap.json"] + "component": "cli" } } ``` @@ -90,26 +90,11 @@ The configuration is defined in [`release-please-config.json`](../release-please **Why `"component"` doesn't include `@ui5` scope**: Using scoped names (e.g., `"@ui5/logger"`) in the component field can cause incorrect GitHub tagging behavior. -**Why `extra-files` for CLI**: The CLI package's `npm-shrinkwrap.json` must be version-bumped alongside `package.json` to maintain consistency. --- #### Plugin Configuration -```json -"plugins": [ - { - "type": "node-workspace", - "merge": false - }, - { - "type": "linked-versions", - "groupName": "ui5-cli-packages", - "components": ["logger", "fs", "builder", "server", "project", "cli"] - } -] -``` - **`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: 1. The `linked-versions` plugin synchronizing versions across all packages 2. The `node-workspace` plugin updating workspace dependency references @@ -118,7 +103,7 @@ Without this flag, Release Please may fail to generate the release PR or produce **Note**: Release Please always force-pushes to the PR branch, so this flag only affects internal manifest processing, not Git commit structure. -**`linked-versions` rationale**: All UI5 CLI packages are tightly coupled and should be released together with synchronized version numbers. +**`linked-versions`**: All UI5 CLI packages will be released together with synchronized version numbers. **Known limitations**: - Cannot resolve circular peer dependencies (e.g., `@ui5/project` ↔ `@ui5/builder`) From 1692e9f6ec738328931c8041c7e68694ba50ef43 Mon Sep 17 00:00:00 2001 From: d3xter666 Date: Fri, 28 Nov 2025 11:26:25 +0200 Subject: [PATCH 49/49] refactor: Update diagram --- docs/release-workflow-diagram.drawio | 12 ++++++------ docs/release-workflow-diagram.svg | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docs/release-workflow-diagram.drawio b/docs/release-workflow-diagram.drawio index b233631bd42..ce9db91568c 100644 --- a/docs/release-workflow-diagram.drawio +++ b/docs/release-workflow-diagram.drawio @@ -1,6 +1,6 @@ - + @@ -16,13 +16,13 @@ - + - + @@ -34,8 +34,8 @@ - - + + @@ -79,7 +79,7 @@ - + diff --git a/docs/release-workflow-diagram.svg b/docs/release-workflow-diagram.svg index 98fbf80e2d9..e029287e422 100644 --- a/docs/release-workflow-diagram.svg +++ b/docs/release-workflow-diagram.svg @@ -1 +1 @@ -
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release PR with version bumps
• Creates/updates release PR with version bumps
• Generates changelogs for each package
• Generates changelogs for each package
• Fixes circular peer dependency & lockfile issues ** (not handled by Release Please)
• Fixes circular peer dependency & lockfile issues ** (not handle...
👤 Developer
merges release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
5. Publish @ui5/project (depends on fs, logger; peer dependency to builder)
5. Publish @ui5/project (depends on fs, logger; peer dep...
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why sequential publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• `max-parallel: 1` ensures proper ordering
Why sequential publishing?...
Why CLI published last?
• Shrinkwrap needs all dependencies
  to exist on npm registry
• Ensures production-only locked deps
Why CLI published last?...
• Synchronizes package.json intra-dependency versions for the packages
• Synchronizes package.json intra-dependency versions for the pac...
Text is not SVG - cannot display
\ No newline at end of file +
Push to main
branch
Push to main...
Job 1: release-please
Job 1: release-please
• Analyzes commits since last release
• Analyzes commits since last release
• Creates/updates release a single PR with version bumps for each package
• Creates/updates release a single PR with version bumps for each...
• Generates changelogs for each package
• Generates changelogs for each package
• Fixes circular peer dependency issues (not handled by Release Please)
• Fixes circular peer dependency issues (not handled by Release P...
👤 Developer
merges release PR
👤 Developer...
✓ Release Please creates GitHub releases & tags for each package separately
✓ Workflow triggers package publishing
✓ Release Please creates GitHub releases & tags for each package se...
Job 2: publish-packages (Matrix Strategy)
Job 2: publish-packages (Matrix Strategy)
max-parallel: 1 (Sequential Execution)
max-parallel: 1 (Sequential Execution)
1. Publish @ui5/logger
1. Publish @ui5/logger
2. Publish @ui5/fs (depends on logger)
2. Publish @ui5/fs (depends on logger)
3. Publish @ui5/builder (depends on fs, logger)
3. Publish @ui5/builder (depends on fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
4. Publish @ui5/server (depends on builder, fs, logger)
5. Publish @ui5/project (depends on fs, logger; peer dependency to builder)
5. Publish @ui5/project (depends on fs, logger; peer dep...
Job 3: publish-cli
Job 3: publish-cli
1. Generate npm-shrinkwrap.json
1. Generate npm-shrinkwrap.json
2. Publish @ui5/cli with shrinkwrap
2. Publish @ui5/cli with shrinkwrap
✓ All packages published to npm
✓ All packages published to npm
Why sequential publishing?
• Packages have dependencies on each other
• NPM must have dependencies available
  before publishing dependents
• `max-parallel: 1` ensures proper ordering
Why sequential publishing?...
Why CLI published last?
• Shrinkwrap needs all dependencies (@ui5/* packages)
  to exist on npm registry
Why CLI published last?...
• Synchronizes package.json intra-dependency versions for the packages
• Synchronizes package.json intra-dependency versions for the pac...
Text is not SVG - cannot display
\ No newline at end of file