Prototype manifest v2 Go SDK - #36
Draft
shykes wants to merge 2 commits into
Draft
Conversation
eunomie
added a commit
to eunomie/java-sdk
that referenced
this pull request
Sep 3, 2026
An inspiration prototype for Dagger manifest v2, the Java counterpart to dagger/go-sdk#36. Records the problem, why Java isolates the protocol change better than Go does, the proposed one-analyzer/two-backends approach, the four known gaps in the v2 interface (chief among them the missing error channel), what cannot be validated yet, and the implementation plan. Signed-off-by: Yves Brissaud <yves@dagger.io>
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.
Purpose
This draft is an inspiration prototype for manifest v2. It tests how much of the hardened Go SDK can move to user space before the engine loader is complete.
@vasek @eunomie: Please review this for inspiration as the manifest v2 design develops. The main review points are the shared codegen boundary, the two-pass generation flow, and the generated entrypoint.
Design
helpers/module-codegenas orchestration only.internal/daggerwithout a nestedgo.mod.currentFunctionCallwith an immutableDaggerDispatchfunction.cmd/<module>-dispatch, a DangModuleEntrypoint, and the exact v2dagger-module.tomlfields.go.modabove the module directory. Mount only that Go root for the dispatch build.v1.0.0-beta.11. Do not write that legacy version into the generated v2 manifest.The design note is in
design/manifest-v2-prototype.md.Current limits
currentNode, recursive module drivers, and legacy-loader selection.generate-v-2uses the bundled beta.11 core schema for an engine-independent development path.package mainis rejected with a migration message.Validation
dagger check e-2-e: 24 checks passed.go test ./...passed in all four helper modules.ModuleEntrypointinterface.