Skip to content

Build with disable_grpc_modules to drop unused gRPC storage client - #1233

Closed
stephanos wants to merge 2 commits into
mainfrom
stephanos/disable-grpc-modules
Closed

stephanos wants to merge 2 commits into
mainfrom
stephanos/disable-grpc-modules

Conversation

@stephanos

@stephanos stephanos commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Related issues

What changed?

The release binaries (.goreleaser.yml) and make build now use the disable_grpc_modules build tag.

The dev server links cloud.google.com/go/storage through the Temporal server's GCS archiver. Without the tag, that package also links its gRPC client (storage.NewGRPCClient), which pulls in gRPC's xDS support and Envoy's go-control-plane. Nothing in the CLI uses the gRPC client, and the Temporal server already builds its releases with this tag (temporalio/temporal#12248). The comment in .goreleaser.yml is the same as the server's. Related upstream issue: googleapis/google-cloud-go#12343.

Stripped release binaries (-ldflags "-s -w"):

Platform before after
darwin/arm64 150.9 MB 138.6 MB (−12.3 MB, −8.1%)
linux/amd64 156.4 MB 144.0 MB (−12.3 MB, −7.9%)

go install github.com/temporalio/cli/cmd/temporal@latest doesn't pass build tags, so binaries built that way keep the gRPC client.

Checklist

Tests

  • Added functional test(s) (SharedServerSuite)
  • Added unit test(s) (func TestXxx) where applicable

No behavior change; existing tests cover the dev server.

Manual tests

Setup

make build
./temporal server start-dev --headless --port 57249

Happy path

$ ./temporal operator cluster health --address 127.0.0.1:57249
SERVING
$ ./temporal workflow start --address 127.0.0.1:57249 --type Hello --task-queue tq --workflow-id dgm-1
$ ./temporal workflow list --address 127.0.0.1:57249
  Status   WorkflowId  Type   StartTime
  Running  dgm-1       Hello  2 seconds ago

goreleaser check validates the config, and the tagged binary contains no envoyproxy or googledirectpath symbols.

🤖 Generated with Claude Code

stephanos and others added 2 commits October 12, 2026 10:33
The dev server links cloud.google.com/go/storage through the Temporal
server's GCS archiver. Without the disable_grpc_modules build tag, that
package also links its gRPC client and the xDS/Envoy stack, which
nothing uses. The Temporal server already builds its releases with this
tag.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@stephanos

Copy link
Copy Markdown
Contributor Author

Closing: the upcoming temporal_minimal build tags in the server (temporalio/temporal#12513) exclude the GCS archiver from the dev server, which removes the gRPC storage client along with it, so this tag becomes unnecessary for the CLI.

@stephanos stephanos closed this Oct 12, 2026
@stephanos
stephanos deleted the stephanos/disable-grpc-modules branch October 12, 2026 17:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant