Skip to content

Commit dac5c1a

Browse files
authored
docs: include mirror changelog info in developer docs
1 parent b533eb2 commit dac5c1a

1 file changed

Lines changed: 34 additions & 1 deletion

File tree

DEVELOPER.md

Lines changed: 34 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,40 @@ The primary maintainers for this repository are defined in the
9898
9999
### Releasing
100100
101-
The release process is automated using `release-please`.
101+
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.
102+
103+
#### Automated Changelog Enrichment
104+
105+
Before a Release PR is even created, a special workflow automatically mirrors relevant changelogs from the core `googleapis/genai-toolbox` dependency. This ensures that the release notes for this extension accurately reflect important upstream changes.
106+
107+
The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-changelog.yml) workflow:
108+
109+
1. **Trigger:** The workflow runs automatically on pull requests created by
110+
Renovate for `toolbox` version updates.
111+
2. **Parsing:** It reads the detailed release notes that Renovate includes in
112+
the PR body.
113+
3. **Filtering:** A Node.js script located at
114+
[`.github/scripts/mirror-changelog.js`](.github/scripts/mirror-changelog.js)
115+
filters these release notes to include only changes relevant to this
116+
extension. The relevance is determined by a keyword (e.g., `alloydb`), passed
117+
as an environment variable in the workflow file.
118+
4. **Changelog Injection:** The script formats the filtered entries as
119+
conventional commits and injects them into the PR body within a
120+
`BEGIN_COMMIT_OVERRIDE` block.
121+
5. **Release Please:** When the main Release PR is created, `release-please`
122+
reads this override block instead of the standard `chore(deps): ...` commit
123+
message, effectively mirroring the filtered upstream changelog into this
124+
project's release notes.
125+
126+
> **Note for Maintainers:** The filtering script is an automation aid, but it
127+
> may occasionally produce "false positives" (e.g., an internal logging change
128+
> that happens to contain the keyword). Before merging a `toolbox` dependency
129+
> PR, maintainers must **review the generated `BEGIN_COMMIT_OVERRIDE` block**
130+
> and manually delete any lines that are not relevant to the end-users of this
131+
> extension. The curated override block is the final source of truth for the
132+
> release changelog.
133+
134+
#### Release Process
102135

103136
1. **Release PR:** When commits with conventional commit headers (e.g., `feat:`,
104137
`fix:`) are merged into the `main` branch, `release-please` will

0 commit comments

Comments
 (0)