ci(renovate): stop dependency updates from bumping the go directive - #2951
Merged
Conversation
Renovate never proposed the `go 1.25.10` -> `go 1.26.4` bump seen in #2943 directly: the `gomodTidy` post-update option produced it. A digest update to the indirect dep github.com/planetscale/vtprotobuf pulled in a revision whose own go.mod declares `go 1.26.4`, and `go mod tidy` raises our directive to match. That in turn breaks every 1.25.x job in the CI matrix, which runs with GOTOOLCHAIN=local. Set constraintsFiltering=strict on the gomod manager so Renovate filters out candidate releases whose go directive exceeds ours, rather than pinning offending packages one at a time.
InvalidValueError.Value is an int but was formatted with %q, which
renders it as a quoted rune literal ('\x02') instead of the number.
Go 1.26's stricter vet now reports it, failing both the lint job and
the experiments package build.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Two independent fixes for the CI failures on #2943.
ci(renovate)— Renovate never proposed thego 1.25.10->go 1.26.4bump in #2943 directly; it is absent from the PR's dependency table, and the existingmatchDepTypes: ["golang"]rule does block that update. The bump comes from thegomodTidypost-update option instead: a digest update to the indirect depgithub.com/planetscale/vtprotobufpulled in a revision whose owngo.moddeclaresgo 1.26.4, sogo mod tidyraises our directive to match. Every 1.25.x job then fails withgo.mod requires go >= 1.26.4 (running go 1.25.12; GOTOOLCHAIN=local).Reproduced locally by resetting the directive on the Renovate branch and re-running
go mod tidy; confirmed the culprit withgo list -m -f '{{.GoVersion}}' all. The package is a sixth-level indirect, reached throughhashicorp/go-getter->cloud.google.com/go/storage->grpc/stats/opentelemetry(a.testpackage) ->envoyproxy/go-control-plane.Rather than pinning offending packages one at a time, this sets
constraintsFiltering: "strict"on the gomod manager, so Renovate filters out candidate releases whosegodirective exceeds ours.fix(experiments)—InvalidValueError.Valueis anintformatted with%q, which renders it as a quoted rune literal ('\x02') rather than the number. Go 1.26's stricter vet reports it, failing both the lint job and theexperimentspackage build. This is preexisting and red onmain, independent of #2943.Test plan
go vet ./...clean under Go 1.26.5 (previously reportedexperiments/errors.go:19:45)go test ./experiments/...passes — the table tests compare the struct, not the formatted message, so no golden files are affectedvtprotobufback keepsgo.modat1.25.10aftergo mod tidywith every other chore(deps): update all non-major dependencies #2943 update appliedOnce merged, #2943 needs a rebase/retry for the filter to take effect.
Notes
constraintsFilteringrelies on the datasource exposing each candidate'sgodirective, and it only governs what Renovate proposes — a transitive bump via MVS could still raise the directive. Some dependencies will also now hold back silently until the project moves to 1.26.Leaving the wider question of dropping 1.25 alone here; #2920 covers that.