greeter
via a remote git ref cannot walk into a workspace sub-sub-directorythrough a constructor-injected Directory field annotated with
defaultPath="/" + ignore patterns.
This mirrors toolchains/java-sdk-dev exactly: the workspace is a
TYPE FIELD (set once at construction) with @defaultPath/@ignorePatterns
— not a per-function argument. Functions then access
m.Workspace.Directory(...) through the stored field, so the
default-path resolution happens at constructor time and its result is
reused across calls. The real failure path is:
dagger -m github.com/.../workspace-default-path/greeter@ call read
=> New(workspace=)
=> m.Workspace.Directory("workspace-default-path/target-subdir/maven")...
Installation
dagger install github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079Entrypoint
Return Type
Greeter !Arguments
| Name | Type | Default Value | Description |
|---|---|---|---|
| workspace | Directory | - | No description provided |
Example
dagger -m github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079 call \
func (m *MyModule) Example() *dagger.Greeter {
return dag.
Greeter()
}@function
def example() -> dagger.Greeter:
return (
dag.greeter()
)@func()
example(): Greeter {
return dag
.greeter()
}Types
Greeter 🔗
workspace() 🔗
Workspace is stored on the receiver so function calls reuse the same resolved Directory instance — matching dang’s
pub workspacefield storage model in java-sdk-dev.
Return Type
Directory ! Example
dagger -m github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079 call \
workspacefunc (m *MyModule) Example() *dagger.Directory {
return dag.
Greeter().
Workspace()
}@function
def example() -> dagger.Directory:
return (
dag.greeter()
.workspace()
)@func()
example(): Directory {
return dag
.greeter()
.workspace()
}read() 🔗
Read walks into a sub-sub-directory of the un-excluded parent. The “maven” child is never named in the ignore pattern list — it must be pulled in transitively by the parent’s trailing-slash un-exclusion.
Return Type
String ! Example
dagger -m github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079 call \
readfunc (m *MyModule) Example(ctx context.Context) string {
return dag.
Greeter().
Read(ctx)
}@function
async def example() -> str:
return await (
dag.greeter()
.read()
)@func()
async example(): Promise<string> {
return dag
.greeter()
.read()
}readCheck() 🔗
ReadCheck exposes the sub-sub-directory access through a check.
The production java-sdk-dev regression surfaces through @check
functions (test, lint), so this path must pass once the bug is
fixed.
Return Type
Void ! Example
dagger -m github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079 call \
read-checkfunc (m *MyModule) Example(ctx context.Context) {
return dag.
Greeter().
ReadCheck(ctx)
}@function
async def example() -> None:
return await (
dag.greeter()
.read_check()
)@func()
async example(): Promise<void> {
return dag
.greeter()
.readCheck()
}workspaceEntries() 🔗
WorkspaceEntries is a sanity check: workspace root must load.
Return Type
[String ! ] ! Example
dagger -m github.com/dagger/dagger-test-modules/workspace-default-path/greeter@af5f39d6f98e3c7d7ec0ad7c24ac8abc2339a079 call \
workspace-entriesfunc (m *MyModule) Example(ctx context.Context) []string {
return dag.
Greeter().
WorkspaceEntries(ctx)
}@function
async def example() -> List[str]:
return await (
dag.greeter()
.workspace_entries()
)@func()
async example(): Promise<string[]> {
return dag
.greeter()
.workspaceEntries()
}