Skip to content

chore(deps): bump grpc to 1.83.2 and protobuf to 1.36.12 across both Go modules - #211

Merged
pdettori merged 1 commit into
rossoctl:mainfrom
pdettori:build/bundle-grpc-protobuf-1.83.2
Sep 2, 2026
Merged

chore(deps): bump grpc to 1.83.2 and protobuf to 1.36.12 across both Go modules#211
pdettori merged 1 commit into
rossoctl:mainfrom
pdettori:build/bundle-grpc-protobuf-1.83.2

Conversation

@pdettori

@pdettori pdettori commented Sep 2, 2026

Copy link
Copy Markdown
Member

Summary

Bundles Dependabot PRs #209 and #210 into a single, coherent update of the
grpc-protobuf group across both Go modules.

Dependency From To
google.golang.org/grpc 1.83.1 1.83.2 security patch
google.golang.org/protobuf 1.36.11 1.36.12
golang.org/x/net 0.57.0 0.58.0 indirect
golang.org/x/text 0.40.0 0.41.0 indirect

grpc 1.83.2 rejects requests missing both :authority and Host headers with
HTTP 400 (grpc/grpc-go#9365).

Why bundle instead of merging #209 and #210

Dependabot tracks /gen/go and /remote-worker as independent directories, so
it opens one PR per module. That cannot work for this repo:

  • remote-worker/go.mod consumes gen/go via
    replace github.com/kagenti/serverless-harness/gen/go => ../gen/go
  • the proto CI job builds both modules in the same job

So #210 (which bumps gen/go to protobuf 1.36.12) left
remote-worker/go.mod pinning the stale indirect versions, and the
"Build and test remote-worker" step failed:

go: updates to go.mod needed; to update it:
	go mod tidy

Merging #209 first does not help — it bumps remote-worker's grpc/x-net/x-text
but leaves protobuf v1.36.11 // indirect, which #210 then invalidates. #210
fails after a rebase too, and Dependabot branches cannot be pushed to.

This PR bumps both modules together and tidies remote-worker, so the indirect
protobuf/x-net/x-text versions match gen/go.

Validation

The full proto job was reproduced locally with buf 1.71.0 (same version as CI):

Step Result
buf lint pass
buf generate + codegen drift check pass, no drift
gen/go: go build ./... && go test ./... pass
remote-worker: gofmt -l . clean
remote-worker: go vet ./... pass
remote-worker: go test -race ./... pass (3 packages)
go mod tidy -diff (both modules) clean — the check that failed on #210

Follow-up

The per-directory Dependabot layout will break on every future gen/go
dependency bump. Tracked separately: collapsing the two gomod entries into one
using directories: [/gen/go, /remote-worker] so the grpc-protobuf group spans
both modules.

Supersedes #209 and #210.

Assisted-By: Claude Code

…Go modules

Bundles Dependabot PRs rossoctl#209 and rossoctl#210 into a single update.

Dependabot tracks /gen/go and /remote-worker as independent directories, so it
opens one PR per module. That cannot work here: remote-worker consumes gen/go
via a `replace` directive, and the `proto` CI job builds both modules in the
same job. rossoctl#210 (gen/go -> protobuf 1.36.12) therefore left
remote-worker/go.mod pinning the stale indirect versions, and the job failed
with "updates to go.mod needed; to update it: go mod tidy".

This commit bumps both modules together and tidies remote-worker so the
indirect protobuf/x-net/x-text versions match gen/go.

- google.golang.org/grpc      1.83.1  -> 1.83.2 (security: reject requests
  missing both :authority and Host headers, grpc/grpc-go#9365)
- google.golang.org/protobuf  1.36.11 -> 1.36.12
- golang.org/x/net            0.57.0  -> 0.58.0 (indirect)
- golang.org/x/text           0.40.0  -> 0.41.0 (indirect)

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
@pdettori
pdettori merged commit 419fea5 into rossoctl:main Sep 2, 2026
12 checks passed
@pdettori
pdettori deleted the build/bundle-grpc-protobuf-1.83.2 branch September 2, 2026 18:25
pdettori added a commit that referenced this pull request Sep 2, 2026
…y green

`remote-worker` consumes `gen/go` through a local `replace`, and the `proto` job
builds both modules. Dependabot opens one PR per `go.mod`, so any bump to a
`gen/go` dependency left `remote-worker/go.mod` pinning stale indirect versions
and CI failed with `go: updates to go.mod needed`. Dependabot cannot fix that
itself -- the tidy has to land in the same commit as the bump, and its branches
are not maintainer-writable -- so #210 had to be bundled by hand into #211.

Add a root `go.work` covering both modules. In workspace mode the go command
resolves one MVS across them, so a stale consumer `go.mod` no longer breaks the
build and the two modules can be bumped independently.

Verified against the tree that failed in #210 (`gen/go` bumped, `remote-worker`
left at the pre-#211 state): `go vet` and `go test -race` went from
`updates to go.mod needed` to passing, with `gen/go` build and tests unaffected.

`directories:` (plural) is a shorthand here, not the fix: Dependabot still opens
one PR per directory. Bundling would need `group-by: dependency-name`, which is
version-updates-only and splits one PR per dependency, so it would leave the
security bumps this entry exists for unbundled. It collapses a duplicated
`grpc-protobuf` group block, nothing more.

`go mod tidy -diff` still reports drift in workspace mode, so it runs as an
advisory step. Failing on it would put the coupled bumps back in the red, and
neither module is consumed externally -- `gen/go` is reached only through the
local `replace` -- so per-module tidiness is hygiene, not correctness.

A module left out of the workspace would silently reintroduce the failure, so a
blocking step checks every tracked `go.mod` is listed in `go.work`.

`remote-worker/Dockerfile` builds from the repo root and now copies `go.work`;
without it that build resolves each module alone and would still hit a stale
`go.mod`.

Closes #212

Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com>
Signed-off-by: Paolo Dettori <dettori@us.ibm.com>
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