1.11.0 (core) / 0.27.0 (libraries)
·
350 commits
to master
since this release
Major changes since 1.10.0 (core) / 0.26.0 (libraries)
Components — Configurable, reusable building blocks for data pipelines (now stable)
Components, first released as Preview in 1.10.6, have reached Release Candidate status. APIs are stable, fully documented, and are the recommended, production-ready defaults for new Dagster projects.
- Simplified interface: A short YAML block in
defs.yaml
, or a lightweightComponent
subclass in Python, lets you spin up arbitrary Dagster definitions (such as assets, resources, schedules, checks, and more), removing boilerplate while keeping every definition type-checked. - Custom components: Subclassing
Component
lets you wrap any internal script or third-party tool behind a strongly-typed interface; get the same autocompletion and docs as first-party integrations. - Pythonic templating: Register variables or helpers with
@template_var
so pipeline authors edit parameters directly in YAML without touching Python. Optional inline components keep small bits of Python co-located. - Powerful tooling: High quality errors, strongly-typed schemas, rich CLI support, and auto-generated docs directly in the UI.
- Read the docs: https://docs.dagster.io/guides/build/components/
dg
— the everything-CLI for developer experience (now stable)
The dg
CLI provides a single surface for scaffolding, local iteration, execution, and static analysis; introduced as Preview in 1.10.6, it has also reached Release Candidate status.
- Scaffolding: Namespaced scaffold commands such as
dg scaffold defs dagster.asset assets.py
,dg scaffold component …
to quickly generate definitions without boilerplate. - Local development & ad-hoc execution:
dg dev
spins up local instance with UI;dg launch
runs jobs and assets from the CLI. - Introspection & checks:
dg list
enumerates definitions;dg check
validates YAML and Python code. - Utility bundle:
dg utils
provides support for Cursor/VSCode schema setup, JSON-schema export, and deep component inspection. - CLI reference: https://docs.dagster.io/api/dg/dg-cli
create-dagster
— one-shot project scaffold
create-dagster
scaffolds a ready-to-run Dagster project or workspace in one command (pipx, uvx, brew, curl friendly).
create-dagster project
supersedes thedagster project scaffold
flow with the modernsrc/
+defs/
layout and a pre-wired localdg
CLI, with no active Python environment required.- Docs: https://docs.dagster.io/guides/build/projects/creating-a-new-project
Core Orchestration
- Retry from asset failure with multi‑assets – a new re‑execution option allows rerunning only failed assets in multi-asset steps, rather than all assets within a failed step.
- Checks emitted from ops –
AssetCheckEvaluation
objects can now be yielded from within ops. - Per‑asset hooks –
@asset
now accepts ahooks
argument for success/failure callbacks. - Backfill improvements
BackfillPolicy
is now GA- Backfills can now use a threadpool for more efficient run submission. By default, the daemon will now use 4 workers.
- Concurrency enhancements – run blocking is now on by default for concurrency pools, preventing oversubscription when scheduling runs.
- FreshnessPolicy — A new
FreshnessPolicy
API is introduced, replacing the deprecatedFreshnessPolicy
API (which has been renamed toLegacyFreshnessPolicy
). The API is under active development, and will eventually also supersede freshness checks as the primary way of specifying and evaluating asset freshness. For more details, check out the docs: https://docs.dagster.io/guides/labs/freshness
UI
- Unified asset selection syntax lets you combine lineage traversal, attribute filters, and boolean logic in a single expression; the same grammar powers Alerts, Insights, Saved Selections, the Asset Catalog, and Components YAML. An analogous op-selection grammar is available in the Gantt view of a single run. [docs]
- Redesigned, customizable asset-graph nodes with health overlays and deeper zoom.
- Runs › Backfills consolidates all backfill activity under the Runs page for faster navigation.
Integrations
- Fivetran integration GA: the
FivetranWorkspace
resource is now GA [docs]. - Airflow (Beta): Airflow Component lets you surface Airflow DAGs inside Dagster for mixed-orchestrator observability [docs].
- dbt Cloud (Beta): first-class job launches and lineage capture [docs].
- Apache Iceberg (Preview): Iceberg IOManager writes/reads lake-house tables [docs].
- Integrations Marketplace (Preview): “Integrations” tab to browse first- and third-party integrations natively in Dagster UI (enable via User Settings → “Display integrations marketplace”).
Changes since 1.10.21 (core) / 0.25.21 (libraries)
New
MaterializeResult
now optionally supports avalue
parameter. If set, the asset's IOManager will be invoked. You may also optionally annotate your return types with-> MaterializeResult[T]
to indicate the specific value type you expect.- Allow importing
FreshnessPolicy
fromdagster.deprecated
. - Adds a custom error message when importing
FreshnessPolicy
from thedagster
module. freshness_policy
parameter now used to pass the new freshness policies (InternalFreshnessPolicy
) to asset specs, asset decorator, etc.- Removed
@preview
from@definitions
. - [components] Introduce
build_defs_for_component
, which can be used to build defs from a component instance outside of adefs
folder. - [components] Removed
@preview
fromDefsFolderComponent
. - [components] Removed
@preview
decorator fromload_from_defs_folder
and enhanced its documentation with detailed usage instructions and examples. - [components] The
asset_post_processors
field onSlingReplicationCollectionComponent
andAirflowInstanceComponent
is no longer supported, and has been replaced with the top-levelpost_processors
field. - [dagster-tableau] Tableau workbooks fetched in Dagster can now be filtered and selected using the WorkbookSelectorFn.
- [dagster-dbt]
dagster-dbt
now supports dbt-core 1.10. - [dagster-dbt] dbt tests with error severity are now modeled as blocking asset checks, ensuring that if a run fails due to a dbt test failure, the connected model is included in a retried run if it is retried using the experimental "Enable retries from asset failure" feature. This change should not result in any behavior changes during execution since the dbt cli already fails the step and any downstream models if dbt tests fail with error severity, but could change the behavior that depends on blocking tests.
- [dagster-sigma] When fetching data from the sigma API, the
SigmaOrganization
resource will now use an exponential backoff strategy in response to getting rate limited instead of immediately failing. - [dagster-sling] Removed
asset_post_processors
onSlingReplicationCollectionComponent
and uses genericpost_processing
key at top-level instead. - [dagster-pandera] Adds support for version 0.24.0 of the
pandera
library todagster-pandera
, dropping support for pandera 0.23.1 and below. - [ui] Show whether an asset check is
blocking
.
Bugfixes
- [dagster-dlt] Fixed an issue where the default scaffolded dlt load led to an invalid asset key.
- Fixed a bug with
DAGSTER_GRPC_SENSOR_TIMEOUT_SECONDS
not being propagated through from daemon to code servers, resulting in the sensor still timing out at 60 seconds if thedagster code-server start
entrypoint was used. - [dagster-sling] Fixed an issue with the
SlingResource
that could cause values specified withEnvVar
s to provide the env var name instead of the env var value to the sling replication configuration. - [ui] Fix timestamps on the "Recent events" view on some assets.
- [ui] Fix "View" link color on code location status toasts.
Breaking Changes
Definitions
andAssetsDefinition
will now error if they get differentAssetSpec
s with the same key.- Renamed
FreshnessPolicy
toLegacyFreshnessPolicy
.
Deprecations
- [dagster-sling] The
SlingReplicationCollectionComponent
is now configured by passingconnections
directly. This means that thesling
yaml field and theresource
python argument are both deprecated, and will be removed in a future release. Theconnections
field in yaml now shares a format with Sling'senv.yaml
. - [components] The
load_defs
entrypoint has been deprecated in favor ofload_from_defs_folder
, which takes a single path for a folder to load definitions from rather than a module object. - [components] The no longer recommended
inline-component
subcommand ofdg scaffold defs
is now hidden from --help. - [components]
load_defs
is no longer public.
Dagster Plus
- The billing page has been updated to show available plans front-and-center and recommend a plan based on trial usage.
- The trial "days remaining" banner and "choose a plan" CTAs have been re-designed.