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: GEMINI.md
+6Lines changed: 6 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -107,6 +107,7 @@ Shared Go libraries used by the `backend` and `workflows`.
107
107
-**DO** define new database table structs in `lib/gcpspanner`.
108
108
-**DO** create or extend adapters in `lib/gcpspanner/spanneradapters` to expose new database queries.
109
109
-**DON'T** import `github.com/GoogleChrome/webstatus.dev/lib/backendtypes` into `lib/gcpspanner`. Instead, define equivalent structs within `lib/gcpspanner` to maintain architectural layering and prevent circular dependencies.
110
+
-**DO** handle the translation from business keys (e.g., `featureKey`) to internal database IDs within the `gcpspanner` client. Adapters and workflows should not be aware of internal IDs.
110
111
111
112
### 3.2.1 The Go Mapper Pattern for Spanner
112
113
@@ -396,6 +397,11 @@ For other tools defined as features in the devcontainer:
396
397
397
398
This guide outlines the process for implementing or refactoring a Go data ingestion workflow.
398
399
400
+
> **Note on Pull Requests**: For a new workflow, plan to split your work into multiple, sequential pull requests for easier review:
401
+
> 1.**Data Layer PR**: Schema migration, new types, `gcpspanner` mapper, and client methods.
402
+
> 2.**Workflow Logic PR**: The consumer implementation, including its processor, parser, and downloader.
403
+
> 3.**Infrastructure PR**: Terraform changes to deploy the new Cloud Run Job.
404
+
399
405
**1. Analyze the Data and Goal**
400
406
401
407
First, analyze the nature of the incoming data and the goal of the ingestion. Ask these questions:
0 commit comments