scratch/issue-11467-plan.md
Commit the generated Go module files for the exact repo scope already defined by the top-level dagger.json Go toolchain customization, so those modules build and lint from a clean checkout without relying on on-the-fly regeneration.
Use the root dagger.json entry:
toolchains[name=go].customizations[0].argument == "source"toolchains[name=go].customizations[0].ignoreThat ignore list is the source of truth for which local Go modules are in scope.
This means:
sdk.source is goIn particular, the ignore list already excludes categories like:
docs/****/sdk/runtime/**dagql/idtui/viztest/broken/****/broken*/**core/integration/testdata/...toolchains/release/testdata/module/The current in-scope set is 73 Go-sdk modules:
.core/integration/llmtest/go-programmercore/integration/llmtest/go-programmer/toy-workspacecore/integration/testdata/generators/hello-with-generators/toolchaincore/integration/testdata/modules/go/defaultscore/integration/testdata/modules/go/defaults/foobarcore/integration/testdata/modules/go/defaults/super-dash-dashcore/integration/testdata/modules/go/defaults/superconstructorcore/integration/testdata/modules/go/ifacescore/integration/testdata/modules/go/ifaces/implcore/integration/testdata/modules/go/ifaces/testcore/integration/testdata/modules/go/ifaces/test/depcore/integration/testdata/modules/go/namespacingcore/integration/testdata/modules/go/namespacing/sub1core/integration/testdata/modules/go/namespacing/sub2core/integration/testdata/modules/typescript/ifacescore/integration/testdata/sdks/only-codegencore/integration/testdata/sdks/only-runtimecore/integration/testdata/test-blueprint/hellocore/integration/testdata/test-blueprint/hello-with-constructorcore/integration/testdata/test-blueprint/hello-with-containercore/integration/testdata/test-blueprint/hello-with-objectscore/integration/testdata/test-blueprint/myblueprint-with-depdagql/idtui/viztestdagql/idtui/viztest/depdagql/idtui/viztest/dep/nested-depmodules/alpinemodules/claudemodules/daggerversemodules/devmodules/dougmodules/doug/evalsmodules/evalsmodules/evals/facts-workspacemodules/evals/testdata/nested-context-middlemodules/evals/testdata/nested-context-middle/nested-context-leafmodules/evaluatormodules/evaluator/eval-workspacemodules/evaluator/examples/gomodules/ghamodules/gha/examples/gomodules/git-releasermodules/metricsmodules/ruffmodules/wolfisdk/elixirsdk/javasdk/phpsdk/python/runtimesdk/typescript/runtimetoolchains/all-sdkstoolchains/cli-devtoolchains/docs-devtoolchains/docs-dev/docusaurustoolchains/docs-dev/docusaurus/teststoolchains/engine-devtoolchains/engine-dev/notifytoolchains/gotoolchains/helm-devtoolchains/helm-dev/k3stoolchains/helm-dev/k3s/examples/gotoolchains/php-sdk-devtoolchains/python-sdk-devtoolchains/python-sdk-dev/dockerdtoolchains/releasetoolchains/release/apkotoolchains/release/apko/teststoolchains/release/ghtoolchains/release/gh/teststoolchains/release/registry-configtoolchains/release/registry-config/teststoolchains/rust-sdk-devversionUse the target module list above as the concrete expansion of the root Go toolchain scope.
For each in-scope Go module:
dagger.json to set:{
"codegen": {
"automaticGitignore": false
}
}
.gitignore and remove the Go codegen ignore entries:
/dagger.gen.go/internal/dagger/internal/querybuilder/internal/telemetry.gitattributes entries that mark generated files as linguist-generated.Regenerate with existing codegen entrypoints only:
dagger develop -m <module-root> for each target moduleCommit the resulting changes:
dagger.json updates.gitignore cleanupRe-run the same regeneration and confirm it is a no-op.
Run dagger check generated and confirm it passes.
In a fresh checkout or worktree, spot-check representative in-scope modules with native Go build/lint commands without first running dagger develop.
Do not use the current toolchains/go auto-regeneration fallback as proof of correctness; the committed tree itself must be sufficient.