Shared contract checks for official SDK helper modules.
Start a new Dang SDK helper module:
dagger module init sdk-sdk my-sdkThe module name is the Dagger module name. The generated Dang root type is
derived from it, for example my-sdk becomes MySdk.
Run the checks from an SDK helper module workspace:
cd ./my/sdk/repo
dagger -m github.com/dagger/sdk-sdk checkThe checks receive the current Workspace, serve the SDK helper module from the
workspace, and exercise its user-facing behavior without applying the returned
changesets.
Under CLI 1.0 the engine owns module bookkeeping — dagger-module.toml,
workspace config, and dependency and engine-version edits. An SDK helper module
implements only what is genuinely language-specific:
initModule(ws, name, path): Changeset!— seed the SDK's own files for a new module. Because the engine owns module config,initModulemust not writedagger.json/dagger-module.toml.- a
@generatehook — regenerate the modules the SDK manages. Managed modules are discovered viacurrentModule.asSDK.modules.
initClient (typed client generation) is an optional part of the contract and
is not required or exercised here.
Changeset paths are workspace-root-relative. For example, initModule for a
module named my-sdk is expected to seed files under .dagger/modules/my-sdk/.