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: DEVELOPER.md
+36-1Lines changed: 36 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -96,7 +96,41 @@ The primary maintainers for this repository are defined in the
96
96
97
97
### Releasing
98
98
99
-
The release process is automated using `release-please`.
99
+
The release process is automated using `release-please`. It consists of an automated changelog preparation step followed by the manual merging of a Release PR.
100
+
101
+
#### Automated Changelog Enrichment
102
+
103
+
Before a Release PR is even created, a special workflow automatically mirrors
104
+
relevant changelogs from the core `googleapis/genai-toolbox` dependency. This
105
+
ensures that the release notes for this extension accurately reflect important
106
+
upstream changes.
107
+
108
+
The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-changelog.yml) workflow:
109
+
110
+
1. **Trigger:** The workflow runs automatically on pull requests created by
111
+
Renovate for `toolbox` version updates.
112
+
2. **Parsing:** It reads the detailed release notes that Renovate includes in
113
+
the PR body.
114
+
3. **Filtering:** These release notes are filtered to include only changes
115
+
relevant to this extension. The relevance is determined by a keyword (e.g.,
116
+
`mysql`), passed as an environment variable in the workflow file.
117
+
4. **Changelog Injection:** The script formats the filtered entries as
118
+
conventional commits and injects them into the PR body within a
119
+
`BEGIN_COMMIT_OVERRIDE` block.
120
+
5. **Release Please:** When the main Release PR is created, `release-please`
121
+
reads this override block instead of the standard `chore(deps): ...` commit
122
+
message, effectively mirroring the filtered upstream changelog into this
123
+
project's release notes.
124
+
125
+
>**Note for Maintainers:** The filtering script is an automation aid, but it
126
+
> may occasionally produce "false positives" (e.g., an internal logging change
127
+
> that happens to contain the keyword). Before merging a `toolbox` dependency
128
+
> PR, maintainers must **review the generated `BEGIN_COMMIT_OVERRIDE` block**
129
+
> and manually delete any lines that are not relevant to the end-users of this
130
+
> extension. The curated override block is the final source of truth for the
131
+
> release changelog.
132
+
133
+
#### Release Process
100
134
101
135
1. **Release PR:** When commits with conventional commit headers (e.g., `feat:`,
102
136
`fix:`) are merged into the `main` branch, `release-please` will
@@ -108,3 +142,4 @@ The release process is automated using `release-please`.
108
142
`package-and-upload-assets.yml` workflow. This workflow builds the
109
143
platform-specific extension archives and uploads them as assets to the
0 commit comments