update-client-library-version

Updates Google Cloud Go client libraries across Config Connector modules and validates fuzz tests.

1.1k|377|Updated Apr 8, 2019
One-click install
npx skills add https://github.com/GoogleCloudPlatform/k8s-config-connector --skill update-client-library-version
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: update-client-library-version
Source: https://github.com/GoogleCloudPlatform/k8s-config-connector/tree/main/.gemini/skills/update-client-library-version
Command: npx skills add https://github.com/GoogleCloudPlatform/k8s-config-connector --skill update-client-library-version

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Upgrading a Google Cloud Go client library in Config Connector touches multiple Go modules and can silently break KRM mapping fuzz tests when new proto fields appear. This Skill provides a repeatable, step-by-step workflow to perform the upgrade safely and catch regressions early.

Core Features & Use Cases

  • Multi-Module Upgrade: Updates the dependency in both the root go.mod and the mockgcp/go.mod module with go get and go mod tidy.
  • Fuzz Test Verification: Runs KRM mapping fuzz tests to detect serialization or validation regressions introduced by the new library version.
  • New Field Triage: Guides marking newly introduced proto fields as untriaged via f.Unimplemented_NotYetTriaged in the service fuzzer files.
  • Use Case: When cloud.google.com/go/spanner releases a new version, follow this workflow to bump it in both modules, run the fuzz tests, mark any new fields, and verify the build with go vet and make fmt.

Quick Start

Update the cloud.google.com/go/alloydb client library to its latest version in this repository and make sure all fuzz tests pass.

Frequently Asked Questions about update-client-library-version

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I update a Google Cloud Go client library in Config Connector?

Run go get cloud.google.com/go/<service>@<version> followed by go mod tidy in the root module, then repeat the same steps inside the mockgcp directory. Finish by running the fuzz tests to verify the upgrade.

How to find the latest version of a Go client library?

Run go list -m -versions cloud.google.com/go/<service> to list all published versions of the library. Pick the latest version from the output and pass it to go get.

Why do fuzz tests fail after upgrading a Go client library?

Fuzz tests fail when the updated library introduces new proto fields that the roundtrip verification does not recognize. The failure message recommends adding f.Unimplemented_NotYetTriaged(".new_field") to the service fuzzer to mark the field as not yet triaged.

Where are the fuzzer files for Config Connector services located?

Fuzzer files live under pkg/controller/direct/<service>/<kind>_fuzzer.go for each direct controller service. Add the recommended field ignore in the fuzzer initialization, then rerun go test -v ./pkg/fuzztesting/fuzztests/ to confirm.

Does the mockgcp module need a separate dependency update?

Yes, mockgcp is its own Go module with a separate go.mod file. You must cd into mockgcp and run go get and go mod tidy there as well so both modules align on the same client library version.