Skip to content

dagger

v0.21.0 Breaking

This release includes 1 breaking change for platform teams planning a safe upgrade.

Published 8d Pipelines
✓ No known CVEs patched
Read the diff → Tool health → What is this tool? →

✓ No known CVEs patched in this version

Topics

agents cache ci-cd containers dag dagger
+4 more
devops docker graphql workflows

Affected surfaces

auth rbac

ReleasePort's take

Moderate signal
editorial:auto 8d

Migrate your caching infrastructure to DagQL and remove the BuildKit solver backend as required by this release.

Why it matters: Affects caching infrastructure; migration is mandatory with no deadline provided.

Summary

AI summary

Updates v0.21.0 - 2026-05-22, What to do next?, and https://docs.dagger.io across a mixed release.

Changes in this release

Breaking High

Migrate caching to DagQL and remove the BuildKit solver backend.

Migrate caching to DagQL and remove the BuildKit solver backend.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Automatically expose a `check` for each `generate` function.

Automatically expose a `check` for each `generate` function.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Add workspace lockfiles for selected lookups such as `container.from` and Git refs.

Add workspace lockfiles for selected lookups such as `container.from` and Git refs.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Add an interactive tests view to the TUI and compact test summaries for multiple output modes.

Add an interactive tests view to the TUI and compact test summaries for multiple output modes.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Add experimental `--x-release=<ref>` and `DAGGER_X_RELEASE` support for running unreleased Dagger builds.

Add experimental `--x-release=<ref>` and `DAGGER_X_RELEASE` support for running unreleased Dagger builds.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Add a configurable Kubernetes `Service` to the Helm chart.

Add a configurable Kubernetes `Service` to the Helm chart.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Add `EngineCacheEntry.dagqlCall` and `EngineCacheEntry.recordTypes` for cache entry inspection.

Add `EngineCacheEntry.dagqlCall` and `EngineCacheEntry.recordTypes` for cache entry inspection.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Medium

Show the Dagger Cloud trace URL when using the logs frontend.

Show the Dagger Cloud trace URL when using the logs frontend.

Source: llm_adapter@2026-05-26

Confidence: high

Feature Low

Dang SDK: add support for local shadowing types, early return, self‑calls, order‑independent declarations, and stricter nullability/type checking.

Dang SDK: add support for local shadowing types, early return, self‑calls, order‑independent declarations, and stricter nullability/type checking.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Performance Medium

Improve engine performance and memory use via metadata reduction, lazy leases, pooled CNI namespaces, and batched directory chains.

Improve engine performance and memory use via metadata reduction, lazy leases, pooled CNI namespaces, and batched directory chains.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Medium

Fix module loading and type generation failures caused by stale handle‑form IDs and session races.

Fix module loading and type generation failures caused by stale handle‑form IDs and session races.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Medium

Fix `dagger generate --scale-out` returning unusable remote Changeset objects by running generation locally.

Fix `dagger generate --scale-out` returning unusable remote Changeset objects by running generation locally.

Source: llm_adapter@2026-05-26

Confidence: high

Bugfix Low

Fix enum argument defaults to appear correctly in schema output and CLI help.

Fix enum argument defaults to appear correctly in schema output and CLI help.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix bound service failures so dependent execs see the service exit as cause while interactive terminals stay open.

Fix bound service failures so dependent execs see the service exit as cause while interactive terminals stay open.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix remote Git checkout behavior to reuse cached trees after cache pruning.

Fix remote Git checkout behavior to reuse cached trees after cache pruning.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix Changeset merge cleanup flakiness by disabling Git auto‑maintenance in temporary merge repos.

Fix Changeset merge cleanup flakiness by disabling Git auto‑maintenance in temporary merge repos.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix `WithSecretVariable` so later calls override earlier values.

Fix `WithSecretVariable` so later calls override earlier values.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix user‑default secret and env handling for empty plaintext secrets, double‑expansion prevention, and console scrubbing.

Fix user‑default secret and env handling for empty plaintext secrets, double‑expansion prevention, and console scrubbing.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Fix telemetry and replay output so `dagger check` log telemetry is not dropped, Python logs are not duplicated, and `dagger trace` honors frontend flags.

Fix telemetry and replay output so `dagger check` log telemetry is not dropped, Python logs are not duplicated, and `dagger trace` honors frontend flags.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Dang SDK: fix panics, initialization‑race typechecking failures, and ID argument handling.

Dang SDK: fix panics, initialization‑race typechecking failures, and ID argument handling.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Java SDK: prevent unnecessary dependency/plugin resolution during `mvn versions:set` to avoid Maven Central 429 errors.

Java SDK: prevent unnecessary dependency/plugin resolution during `mvn versions:set` to avoid Maven Central 429 errors.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Python SDK: fix static module analysis regressions including inherited functions, aliased decorators, `@staticmethod`, type aliases, constants/defaults, `Annotated`, `Optional`, `Union`, and relative imports.

Python SDK: fix static module analysis regressions including inherited functions, aliased decorators, `@staticmethod`, type aliases, constants/defaults, `Annotated`, `Optional`, `Union`, and relative imports.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Python SDK: fix additional AST cases for `TypeAlias` inside `X | None`, quoted/aliased annotations, and absolute self‑package imports.

Python SDK: fix additional AST cases for `TypeAlias` inside `X | None`, quoted/aliased annotations, and absolute self‑package imports.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Python SDK: exclude broken `yarl` 1.24.1 release from dependency range.

Python SDK: exclude broken `yarl` 1.24.1 release from dependency range.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Bugfix Low

Rust SDK: fix list‑of‑object fields to load each object by ID instead of returning an incorrect single wrapped selection.

Rust SDK: fix list‑of‑object fields to load each object by ID instead of returning an incorrect single wrapped selection.

Source: granite4.1:30b@2026-05-26-audit

Confidence: low

Full changelog

v0.21.0 - 2026-05-22

Added

  • Automatically expose a check for each generate function by @eunomie in https://github.com/dagger/dagger/pull/12923
    Each generated check has the same name as its generate function, so dagger check can report whether generated files are out of date.
    Use dagger check --no-generate to list or run only functions explicitly marked as checks, without the generated ones.
    Toolchains can set ignoreChecks to skip creating checks for specific generate functions.
  • Add workspace lockfiles for selected lookups such as container.from and Git refs by @shykes + @alexcb + @grouville + @tiborvass + @eunomie in https://github.com/dagger/dagger/pull/12046 https://github.com/dagger/dagger/pull/13094
    Locking is opt-in with --lock live, --lock pinned, or --lock frozen: live mode resolves and records live values, pinned mode prefers recorded pins while resolving the rest live, and frozen mode only resolves from .dagger/lock.
    Use dagger lock update to refresh entries already recorded in .dagger/lock; it now creates the file when missing.
    This also fixes remote Git tree cache keys so cache reuse follows the actual checkout inputs.
  • Add an interactive tests view to the TUI, plus compact test summaries for pretty, plain, logs, dots, and report progress modes by @vito in https://github.com/dagger/dagger/pull/13073
  • Add experimental --x-release=<ref> and DAGGER_X_RELEASE=<ref> support for running a command against an unreleased Dagger build from a GitHub ref, fixing https://github.com/dagger/dagger/issues/12996 by @tiborvass in https://github.com/dagger/dagger/pull/13156
  • Add a configurable Kubernetes Service to the Helm chart by @pierreyves-lebrun + @grouville in https://github.com/dagger/dagger/pull/11993
  • Add EngineCacheEntry.dagqlCall and EngineCacheEntry.recordTypes so cache entries expose the producing DagQL call and all represented storage record types for inspection and GC filtering by @sipsma in https://github.com/dagger/dagger/pull/13207
  • Show the Dagger Cloud trace URL when using the logs frontend by @marcosnils in https://github.com/dagger/dagger/pull/13105
  • Dang SDK: add support for local types that shadow Dagger core types, early return, self-calls, order-independent declarations, and stricter nullability/type checking by @vito in https://github.com/dagger/dagger/pull/13184

Changed

  • Migrate caching to DagQL and remove the BuildKit solver backend, making DagQL responsible for cache lookups, persistence, and pruning by @sipsma in https://github.com/dagger/dagger/pull/11856
  • Improve engine performance and memory use by reducing bbolt/containerd metadata overhead, lazily creating containerd operation leases, reusing pooled CNI namespaces for default execs, and batching long withDirectory chains instead of materializing them quadratically by @sipsma in https://github.com/dagger/dagger/pull/13117 https://github.com/dagger/dagger/pull/13123 https://github.com/dagger/dagger/pull/13144 https://github.com/dagger/dagger/pull/13124
  • Deduplicate equivalent in-flight DagQL calls across clients in the same session and fall back to same-session secret/socket attachables when the original client binding is gone by @sipsma in https://github.com/dagger/dagger/pull/13118

Fixed

  • Fix enum argument defaults so they appear correctly in schema output and CLI help by @kpenfound in https://github.com/dagger/dagger/pull/13068
  • Fix module loading and type generation failures caused by stale handle-form module IDs and nested client session races, replacing session ... not found failures with the intended behavior or original error by @sipsma in https://github.com/dagger/dagger/pull/13108 https://github.com/dagger/dagger/pull/13119
  • Fix bound service failures so dependent execs and container-backed services see the service exit as the cause while interactive terminals stay open by @vito in https://github.com/dagger/dagger/pull/13099
  • Fix remote Git checkout behavior so cached trees can be reused after cache pruning by @sipsma in https://github.com/dagger/dagger/pull/13141
  • Fix Changeset merge cleanup flakiness by disabling Git auto-maintenance in Dagger's temporary merge repositories by @sipsma in https://github.com/dagger/dagger/pull/13121
  • Fix WithSecretVariable so later calls override earlier values, fixing https://github.com/dagger/dagger/issues/13147 by @matipan in https://github.com/dagger/dagger/pull/13159
  • Fix user-default secret and env handling so empty plaintext secrets resolve correctly, .env values are not double-expanded through namespaces, and plaintext Secret defaults are scrubbed in console output; fixes https://github.com/dagger/dagger/issues/12855 and closes https://github.com/dagger/dagger/pull/12014 by @sipsma + @marcosnils + @tiborvass in https://github.com/dagger/dagger/pull/13163 https://github.com/dagger/dagger/pull/13160 https://github.com/dagger/dagger/pull/13177
  • Fix telemetry and replay output so dagger check log telemetry is not dropped, Python module logs are not duplicated, and dagger trace honors frontend flags by @vito + @sipsma in https://github.com/dagger/dagger/pull/13114 https://github.com/dagger/dagger/pull/13153
  • Fix dagger generate --scale-out returning unusable remote Changeset objects by always running generation locally; dagger check --scale-out remains supported by @eunomie in https://github.com/dagger/dagger/pull/13190
  • Fix toolchain customizations so they propagate when toolchain functions are called through another module function by @suprjinx in https://github.com/dagger/dagger/pull/13176
  • Dang SDK: fix panics, initialization-race typechecking failures, and ID argument handling by @tiborvass + @vito in https://github.com/dagger/dagger/pull/13098 https://github.com/dagger/dagger/pull/13103 https://github.com/dagger/dagger/pull/13150
  • Java SDK: fix version updates so mvn versions:set no longer performs unnecessary dependency/plugin resolution, preventing Maven Central 429 failures; fixes https://github.com/dagger/dagger/issues/13174 by @dagger-codex[bot] + @tiborvass in https://github.com/dagger/dagger/pull/13198
  • Python SDK: fix static module analysis regressions from the AST analyzer cutover, including inherited functions, aliased decorators and fields, @staticmethod, type aliases, constants/defaults, Annotated, Optional, Union, and relative imports; fixes https://github.com/dagger/dagger/issues/13097 and https://github.com/dagger/dagger/issues/13089 by @eunomie in https://github.com/dagger/dagger/pull/13095
  • Python SDK: fix more AST analyzer cases for TypeAlias inside X | None, quoted and aliased annotations, and absolute self-package imports by @marcosnils + @grouville + @eunomie in https://github.com/dagger/dagger/pull/13149 https://github.com/dagger/dagger/pull/13162 https://github.com/dagger/dagger/pull/13171
  • Python SDK: exclude the broken yarl 1.24.1 release from the dependency range by @tiborvass in https://github.com/dagger/dagger/pull/13189
  • Rust SDK: fix list-of-object fields so generated clients load each object by ID instead of returning an incorrect single wrapped selection by @wingyplus in https://github.com/dagger/dagger/pull/13000

What to do next?

Breaking Changes

  • Migrate caching to DagQL and remove the BuildKit solver backend, making DagQL responsible for cache lookups, persistence, and pruning.

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track dagger

Get notified when new releases ship.

Sign up free

About dagger

Automation engine to build, test and ship any codebase. Runs locally, in CI, or directly in the cloud

All releases →

Related context

Beta — feedback welcome: [email protected]