Skip to content

Commit eda43bf

Browse files
authored
Update DEVELOPER.md
1 parent 4f05d36 commit eda43bf

1 file changed

Lines changed: 58 additions & 3 deletions

File tree

‎DEVELOPER.md‎

Lines changed: 58 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,18 +14,24 @@ Before you begin, ensure you have the following:
1414

1515
### Running from Local Source
1616

17+
This extension uses **Agent Skills** to interact with Firestore. The development process involves generating these skills locally and linking the extension to the Gemini CLI.
18+
1719
1. **Clone the Repository:**
1820

1921
```bash
2022
git clone https://github.com/gemini-cli-extensions/dataproc.git
2123
cd dataproc
2224
```
2325

24-
2. **Install the Extension Locally:**
26+
2. **Install the Extension Locally:** Use the Gemini CLI to install the
27+
extension from your local directory.
28+
2529

2630
```bash
2731
gemini extensions install .
2832
```
33+
The CLI will prompt you to confirm the installation. Accept it to proceed.
34+
2935

3036
3. **Testing Changes:** After installation, start the Gemini CLI (`gemini`).
3137
You can now interact with the `dataproc` skills to manually test your changes.
@@ -38,6 +44,8 @@ A GitHub Actions workflow (`.github/workflows/presubmit-tests.yml`) is triggered
3844
for every pull request. This workflow primarily verifies that the extension can
3945
be successfully installed by the Gemini CLI.
4046

47+
All tools are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
48+
4149
The skills themselves are validated using the `skills-validate.yml` workflow.
4250

4351
### Other GitHub Checks
@@ -51,7 +59,54 @@ The skills themselves are validated using the `skills-validate.yml` workflow.
5159

5260
## Maintainer Information
5361

62+
### Team
63+
64+
The primary maintainers for this repository are defined in the [`.github/CODEOWNERS`](.github/CODEOWNERS) file:
65+
66+
* `@gemini-cli-extensions/senseai-eco`
67+
* `@gemini-cli-extensions/dataproc-maintainers`
68+
5469
### Releasing
5570

56-
The release process is automated using `release-please`. Merging a Release PR
57-
will create a new GitHub tag and release.
71+
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. When the Release PR is merged, `release-please` creates a new GitHub tag and a corresponding GitHub Release.
72+
73+
#### Automated Changelog Enrichment
74+
75+
Before a Release PR is even created, a special workflow automatically mirrors
76+
relevant changelogs from the core `googleapis/mcp-toolbox` dependency. This
77+
ensures that the release notes for this extension accurately reflect important
78+
upstream changes.
79+
80+
The process is handled by the [`mirror-changelog.yml`](.github/workflows/mirror-changelog.yml) workflow:
81+
82+
1. **Trigger:** The workflow runs automatically on pull requests created by
83+
Renovate for `toolbox` version updates.
84+
2. **Parsing:** It reads the detailed release notes that Renovate includes in
85+
the PR body.
86+
3. **Filtering:** These release notes are filtered to include only changes
87+
relevant to this extension. The relevance is determined by a keyword (e.g.,
88+
`firestore`), passed as an environment variable in the workflow file.
89+
4. **Changelog Injection:** The script formats the filtered entries as
90+
conventional commits and injects them into the PR body within a
91+
`BEGIN_COMMIT_OVERRIDE` block.
92+
5. **Release Please:** When the main Release PR is created, `release-please`
93+
reads this override block instead of the standard `chore(deps): ...` commit
94+
message, effectively mirroring the filtered upstream changelog into this
95+
project's release notes.
96+
97+
> **Note for Maintainers:** The filtering script is an automation aid, but it
98+
> may occasionally produce "false positives" (e.g., an internal logging change
99+
> that happens to contain the keyword). Before merging a `toolbox` dependency
100+
> PR, maintainers must **review the generated `BEGIN_COMMIT_OVERRIDE` block**
101+
> and manually delete any lines that are not relevant to the end-users of this
102+
> extension. The curated override block is the final source of truth for the
103+
> release changelog.
104+
105+
#### Release Process
106+
107+
1. **Release PR:** When commits with conventional commit headers (e.g., `feat:`,
108+
`fix:`) are merged into the `main` branch, `release-please` will
109+
automatically create or update a "Release PR".
110+
2. **Merge Release PR:** A maintainer approves and merges the Release PR. This
111+
action triggers `release-please` to create a new GitHub tag and a
112+
corresponding GitHub Release.

0 commit comments

Comments
 (0)