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
+58-3Lines changed: 58 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -14,18 +14,24 @@ Before you begin, ensure you have the following:
14
14
15
15
### Running from Local Source
16
16
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.
2. **Install the Extension Locally:** Use the Gemini CLI to install the
27
+
extension from your local directory.
28
+
25
29
26
30
```bash
27
31
gemini extensions install .
28
32
```
33
+
The CLI will prompt you to confirm the installation. Accept it to proceed.
34
+
29
35
30
36
3. **Testing Changes:** After installation, start the Gemini CLI (`gemini`).
31
37
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
38
44
for every pull request. This workflow primarily verifies that the extension can
39
45
be successfully installed by the Gemini CLI.
40
46
47
+
All tools are currently tested in the [MCP Toolbox GitHub](https://github.com/googleapis/mcp-toolbox).
48
+
41
49
The skills themselves are validated using the `skills-validate.yml` workflow.
42
50
43
51
### Other GitHub Checks
@@ -51,7 +59,54 @@ The skills themselves are validated using the `skills-validate.yml` workflow.
51
59
52
60
## Maintainer Information
53
61
62
+
### Team
63
+
64
+
The primary maintainers forthis repository are definedin the [`.github/CODEOWNERS`](.github/CODEOWNERS) file:
65
+
66
+
*`@gemini-cli-extensions/senseai-eco`
67
+
*`@gemini-cli-extensions/dataproc-maintainers`
68
+
54
69
### Releasing
55
70
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
0 commit comments