A Dagger module for managing Dagger modules that use the built-in Dang SDK.
It powers dagger module init dang and exposes the remaining
module-management operations (generate, dependencies, engine version) through
dagger call.
Backed by github.com/dagger/sdk-sdk/polyfill.
From your workspace root:
dagger install github.com/dagger/dang-sdkAfter install, the module is available in dagger call as dang-sdk.
Calls that return a Changeset will print the diff and prompt you to confirm
before writing anything to your workspace.
Install this module as the dang SDK, then create a module with the CLI:
dagger sdk install dang
dagger module init dang my-moduleBy default the module is created under .dagger/modules/<name>/. Pick a
different location with --path:
dagger module init dang my-module --path some/dir/my-modulemodule init seeds template files. Run mod ... generate to refresh generated
SDK files when generation produces any.
For a single module:
dagger call dang-sdk mod --path my-module generateFor every Dang SDK module visible from your current directory — the module
you're in and the projects beneath it — skipping any with a
.dagger-dang-sdk-skip-generate marker at or above the module root:
dagger call dang-sdk generate-allList:
dagger call dang-sdk mod --path my-module deps listAdd:
dagger call dang-sdk mod --path my-module \
deps add --source github.com/some/moduleAdd with a custom local name:
dagger call dang-sdk mod --path my-module \
deps add --source github.com/some/module --name aliasRemove by name or source:
dagger call dang-sdk mod --path my-module deps remove --name aliasUpdate one remote dependency, or all of them:
dagger call dang-sdk mod --path my-module deps update
dagger call dang-sdk mod --path my-module deps update --name some-dep# Read the version pinned in dagger.json
dagger call dang-sdk mod --path my-module engine required
# Pin to a specific version
dagger call dang-sdk mod --path my-module engine require --version 0.20.8
# Pin to the engine version you're currently running
dagger call dang-sdk mod --path my-module engine require-current
# Pin to "latest"
dagger call dang-sdk mod --path my-module engine require-latestDiscovery is anchored at your current directory, not the workspace root: the
nearest enclosing module plus every Dang module beneath you. Modules configured
by the legacy dagger.json and the CLI 1.0 dagger-module.toml are both found.
Paths print relative to where you invoked the command.
dagger call dang-sdk modules pathSee dang-sdk.dang for the full type surface.
To exclude a directory tree from generate-all, drop an empty
.dagger-dang-sdk-skip-generate file at or above the module root. Useful for
fixtures, vendored modules, or anything you do not want regenerated in bulk.
touch some/fixture/.dagger-dang-sdk-skip-generateRun shared SDK helper contract checks from this repository with:
dagger -m github.com/dagger/sdk-sdk checkRun this repo's e2e module with:
dagger -m .dagger/modules/e2e check