Skip to content

Commit 9c96781

Browse files
authored
docs: include mirror changelog info in developer docs (#44)
1 parent caa4be3 commit 9c96781

1 file changed

Lines changed: 36 additions & 1 deletion

File tree

DEVELOPER.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,41 @@ The primary maintainers for this repository are defined in the
9696
9797
### Releasing
9898
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
100134

101135
1. **Release PR:** When commits with conventional commit headers (e.g., `feat:`,
102136
`fix:`) are merged into the `main` branch, `release-please` will
@@ -108,3 +142,4 @@ The release process is automated using `release-please`.
108142
`package-and-upload-assets.yml` workflow. This workflow builds the
109143
platform-specific extension archives and uploads them as assets to the
110144
GitHub Release.
145+

0 commit comments

Comments
 (0)