Skip to content

fix(ci): upgrade Dagger engine to v0.21.9 and Go to 1.26.7 - #352

Merged
patrick-hermann-sva merged 1 commit into
mainfrom
fix/dagger-engine-0219
Sep 5, 2026
Merged

fix(ci): upgrade Dagger engine to v0.21.9 and Go to 1.26.7#352
patrick-hermann-sva merged 1 commit into
mainfrom
fix/dagger-engine-0219

Conversation

@patrick-hermann-sva

Copy link
Copy Markdown
Contributor

Takes ./go from 5 reachable vulnerabilities to 1.

The ceiling was never a config value

The four stdlib findings left after #347 all needed go1.26.6, and the engine refused it:

existing go.mod has unsupported version 1.26.8 (highest supported version is 1.26.5)

In cmd/codegen/generator/go/generate_module.go the limit is:

var goVersion = strings.TrimPrefix(runtime.Version(), "go")

It is simply the Go version the engine's codegen binary was built with. v0.21.8 was built with go1.26.5, v0.21.9 with go1.26.7.

Probed rather than inferred, against an isolated v0.21.9 CLI:

go directive v0.21.9
1.26.6 accepted
1.26.7 accepted
1.26.8 rejected — ceiling reported as 1.26.7

So this goes to 1.26.7, not 1.26.6. The extra patch is free and buys headroom before the next engine bump.

Effect

reachable in ./go
main (after #350) 5
this PR 1

GO-2026-5026, GO-2026-5972, GO-2026-6090, GO-2026-6218 all clear.

The one survivor is GO-2026-4985 (otlplog/otlploghttp v0.16.0 → v0.19.0). v0.21.9 still writes that replace pin as v0.16.0, so it stays blocked for the reason recorded in #350 — the SDK codegen rewrites it, and any fix there would be silently reverted by the next dagger develop.

Session total: 17 → 1.

This is a hard cut

module requires dagger v0.21.9, but you have v0.21.8

Verified by running a v0.21.8 CLI against a module declaring v0.21.9 — it cannot load the module at all. Everyone working on this repo has to upgrade their CLI, not just CI.

DAGGER_VERSION in this-test-modules.yaml moves with it or the job fails on exactly that error. setup-go reads go-version-file: <module>/go.mod, so the toolchain follows on its own and needs no separate pin.

How the tree was produced

Generated clients are not tracked, so editing engineVersion by hand would have left go.mod/go.sum describing the old SDK while CI regenerated against the new one. dagger develop was run with the v0.21.9 CLI in all 28 modules instead, so the committed tree matches what CI will produce.

Verification

  • go build and go vet pass in all 28 modules.
  • All 28 declare engineVersion: v0.21.9 and go 1.26.7.
  • The four otel log replace pins are untouched (112 occurrences, all v0.16.0).
  • A scan of ./go on this branch reports one finding.

🤖 Generated with Claude Code

https://claude.ai/code/session_01A4HsKKvk5TF1vypsJPqV76

Takes ./go from 5 reachable vulnerabilities to 1.

The four remaining stdlib findings after #347 all needed go1.26.6, which the
engine refused:

    existing go.mod has unsupported version 1.26.8
    (highest supported version is 1.26.5)

That ceiling is not a configured value. In
cmd/codegen/generator/go/generate_module.go the limit is

    var goVersion = strings.TrimPrefix(runtime.Version(), "go")

so it is simply the Go version the engine's codegen binary was built with.
v0.21.8 was built with go1.26.5; v0.21.9 with go1.26.7. Probed it rather than
inferred it: against a v0.21.9 CLI, go 1.26.6 and 1.26.7 are accepted and
1.26.8 is rejected with the ceiling reported as 1.26.7.

So the go directive goes to 1.26.7, not 1.26.6 -- the extra patch is free and
buys headroom before the next engine bump.

GO-2026-5026, GO-2026-5972, GO-2026-6090 and GO-2026-6218 all clear. What
remains is GO-2026-4985 (otlplog/otlploghttp v0.16.0 -> v0.19.0), and v0.21.9
still writes that `replace` pin as v0.16.0, so it stays blocked for the reason
recorded in #350.

This is a hard cut for anyone working on the repo:

    module requires dagger v0.21.9, but you have v0.21.8

A v0.21.8 CLI cannot load these modules at all, so everyone has to upgrade.
`DAGGER_VERSION` in this-test-modules.yaml moves with it, or the job fails on
exactly that error. `setup-go` reads `go-version-file: <module>/go.mod`, so the
toolchain follows on its own and needs no separate pin.

Generated clients are not tracked, so `dagger develop` was run with the v0.21.9
CLI in all 28 modules to make go.mod and go.sum match what CI will regenerate,
rather than only editing engineVersion by hand.

Verified: `go build` and `go vet` pass in all 28 modules, all 28 declare
engineVersion v0.21.9 and go 1.26.7, the four otel log replace pins are
untouched, and a scan of ./go on this branch reports one finding.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A4HsKKvk5TF1vypsJPqV76
patrick-hermann-sva added a commit that referenced this pull request Sep 5, 2026
The linting job pinned `dagger-version: v0.19.3` and
`dagger-module-version: v1.17.0`. Those two are coupled:
blueprints/repository-linting@v1.17.0 declares engineVersion v0.19.3, which is
why the CLI was held back there. The upstream workflow's own default for
dagger-version has since moved to 0.21.9, so this repo was the thing keeping
the old engine alive.

blueprints is at v3.2.1 now, and repository-linting there declares
engineVersion v0.21.8, so it runs on the same engine as the rest of the repo
after #352.

Checked the call site rather than assuming the signature held. The workflow
passes six flags to validate-multiple-technologies; all six still exist at
v3.2.1. The version also adds --enable-pre-commit, --enable-secrets and
--fail-on, all defaulting off or to "none", so it is a superset and the default
behaviour is unchanged: yaml and markdown, exactly as v1.17.0 did.

Confirmed by running both versions against this repo with the workflow's own
arguments. Both produce 19548 lines and the output is byte-identical.

`dagger-version` drops the `v` prefix to match the upstream default's format.


Claude-Session: https://claude.ai/code/session_01A4HsKKvk5TF1vypsJPqV76

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
github-actions Bot pushed a commit that referenced this pull request Sep 5, 2026
## [0.129.1](v0.129.0...v0.129.1) (2026-09-05)

### Bug Fixes

* **ci:** move repository linting off its v0.19.3 pin ([#356](#356)) ([c9e4fa1](c9e4fa1)), closes [#352](#352)
@patrick-hermann-sva
patrick-hermann-sva merged commit f4c73f9 into main Sep 5, 2026
32 checks passed
@patrick-hermann-sva
patrick-hermann-sva deleted the fix/dagger-engine-0219 branch September 5, 2026 12:18
github-actions Bot pushed a commit that referenced this pull request Sep 5, 2026
## [0.129.2](v0.129.1...v0.129.2) (2026-09-05)

### Bug Fixes

* **ci:** upgrade Dagger engine to v0.21.9 and Go to 1.26.7 ([#352](#352)) ([f4c73f9](f4c73f9)), closes [#347](#347) [#350](#350)
@github-actions

github-actions Bot commented Sep 5, 2026

Copy link
Copy Markdown

🎉 This PR is included in version 0.129.2 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant