NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2547 most downloaded on PyPI
Last release 2 days ago
16 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 55 of the last 60 stable releases
1 version withdrawn
withdrawn after publishing
1 years old
80 releases · first in 2025
One column per month.
[ui] Allow searching across code locations with * wildcard in selection inputs for jobs and automations.
* wildcard in selection inputs for jobs and automations.AutomationCondition.all_new_executed_with_tags, which allows automation conditions to be filtered to partitions that have been materialized since the last tick from runs with certain tags. This condition can be used to require or prevent certain run tags from triggering downstream declarative automation conditions.dagster==1.11.1, partitioned_config was unintentionally removed from the public exports of the top-level dagster package. This has been fixed.trigger_job_run with no steps_override parameter.anthropic, mcp, and claude-code-sdk dependencies of dagster-dg-cli are now under a separate ai extra, allowing dagster-dg-cli to be installed without
anthropic, mcp, and claude-code-sdk dependencies of dagster-dg-cli are now under a separate ai extra, allowing dagster-dg-cli to be installed without these dependencies.AutomationCondition.all_new_updates_have_run_tags and AutomationCondition.any_new_update_has_run_tags, which allows automation conditions to be filtered to partitions that have been materialized since the last tick from runs with certain tags. This condition can be used to require or prevent certain run tags from triggering downstream declarative automation conditions. These conditions are similar to AutomationCondition.executed_with_tags, but look at all new runs since the most recent tick instead of just looking at the latest run.skippable=True and a blocking asset check to execute as long as the asset check output was produced, even if the asset output was skipped.{{ env.FOO }}) when listing the env vars used by a component. (Thanks, @edgarrmondragon!)DbIOManagers.DbtCloudWorkspaceClient that would cause errors when calling trigger_job_run with no steps_override parameter.Added inline-component command to the publicly available scaffold commands in the Dagster CLI.
inline-component command to the publicly available scaffold commands in the Dagster CLI.require_upstream_step_success config param to all executors. If {"step_dependency_config": {"require_upstream_step_success": False}} is set, this will allow downstream steps to execute immediately after all required upstream outputs have finished, even if the upstream step has not completed in its entirety yet. This can be useful particularly in cases where there are large multi-assets with downstream assets that depend on only a subset of the assets in the upstream step.logsForRun resolvers and eventConnection resolvers in the Dagster GraphQL API will now apply a default limit of 1000 to the number of logs returned from a single graphql query. The cursor field in the response can be used to continue iterating through the logs for a given run.@airbyte_assets and AirbyteWorkspaceComponent (previously AirbyteCloudWorkspaceComponent) now support Airbyte OSS and Enterprise.dagster_dg_cli package failed to import when using Python 3.9.AutomationCondition.eager() that could cause runs for materializable assets to be launched at the same time as an upstream observable source asset that had an automation condition, even if the upstream observation would not result in a new data version.attributes configuration to Component subclasses that did not inherit from Resolvable.run_keys that had already been submitted to show up in the preview result.dbt-core dependency back to dagster-dbt as it is still required for the dbt Cloud integration. If both dbt-core and dbt Fusion are installed, dagster-dbt will still prefer using dbt Fusion by default.Subclasses of Resolved now support fields of type dict[str, T].
Resolved now support fields of type dict[str, T].assetKeys argument of the assetsOrError field in the GraphQL API would return every asset instead of an empty list of assets.A param exclusions was added to time window partition definitions to support custom calendars.
exclusions was added to time window partition definitions to support custom calendars.dagster library now supports protobuf==6.xdg scaffold defs --help now shows descriptions for subcommands.dg check toml command has been added to validate your TOML configuration files.DatabricksAssetBundleComponent has been added in preview. Databricks tasks can now be represented as assets and submitted via Dagster.cli_args configuration to allow customizing the command that is run when your assets are executed.DbtCloudWorkspace resource can now be customized with the DAGSTER_DBT_CLOUD_POLL_INTERVAL and DAGSTER_DBT_CLOUD_POLL_TIMEOUT environment variables.[components] Removed deprecated and non-functional asset_post_processors fields from SlingReplicationCollectionComponent and AirflowInstanceComponent.
dg will now report multiple detected errors in a configuration file instead of failing on the first detected error.tzdata as a dependency to dagster, to ensure that declaring timezones like US/Central work in all environments.requirements.env is now opt-in for dg check yaml.DAGSTER_DBT_CLOUD_POLL_INTERVAL and DAGSTER_DBT_CLOUD_POLL_TIMEOUT environment variables can now be used to configure the polling interval and timeout for fetching data from dbt Cloud.asset_post_processors fields from SlingReplicationCollectionComponent and AirflowInstanceComponent.Allow explicit git platform selection in link_code_references_to_git, thanks @chazmo03!
platform selection in link_code_references_to_git, thanks @chazmo03!AutomationCondition.replace to not update built-in sub-conditions that did not have an explicit label, thanks @dschafer!enable_code_references was set to True on the DagsterDbtTranslatorSettings.dagster.yaml to include the nux option, thanks @dwisdom0!Static functions on classes decorated with @template_var can now optionally accept a ComponentLoadContext argument.
@template_var can now optionally accept a ComponentLoadContext argument.dg CLI capabilities to MCP clients. See the dg mcp CLI group for details.dagster-dbt package no longer has a dependency on dbt-core.dagster-dbt package to run dbt commands with no changes to their existing dagster code. This support is still in preview as the format of the log messages produced by the dbt Fusion CLI is still subject to change. Let us know if you notice any incompatibilities.PipesDatabricksServerlessClient to support Databricks Serverless jobs with Dagster pipes.ObjectMetadataValue class.Schedules now support specifying a subset of asset checks to execute in a RunRequest.
RunRequest.docs integrations cli is available for viewing an index of available integrations.refresh_and_poll inside the @tableau_assets asset decorator.defs folder.--assets, other definitions types will no longer be displayed.Introduced AssetExecutionContext.load_asset_value, which enables loading asset values from the IO manager dynamically rather than requiring asset valu
Introduced AssetExecutionContext.load_asset_value, which enables loading asset values from the IO manager dynamically rather than requiring asset values be loaded as parameters to the asset function. For example:
@dg.asset(deps=[the_asset])
def the_downstream_asset(context: dg.AssetExecutionContext):
return context.load_asset_value(dg.AssetKey("the_asset"))
Expose asset_selection parameter for submit_job_execution function in DagsterGraphQLClient, thanks @brunobbaraujo!
Large error stack traces from Dagster events will be automatically truncated if the message or stack trace exceeds 500kb. The exact value of the truncation can be overridden by setting the DAGSTER_EVENT_ERROR_FIELD_SIZE_LIMIT environment variable.
Added databento, ax, and botorch kind tags, thanks @aleewen and @CompRhys!
[dagster-k8s] Added the option to include ownerReferencess to k8s executor step jobs, ensuring that the step job and step pod are properly garbage collected if the run pod is deleted. These can be enabled by setting the enable_owner_references flag on the executor config.
[components] Added dg list component-tree command which can be used to visualize the component tree of a project.
[components] Added the ability to reference, load, and build defs for other components in the same project. In YAML, you may use the load_component_at_path and build_defs_at_path functions:
type: dagster.PythonScriptComponent
attributes:
execution:
path: my_script.py
assets:
- key: customers_export
deps:
- "{{ load_component_at_path('dbt_ingest').asset_key_for_model('customers') }}"
@graph_assets to not properly apply the AllPartitionMapping or LastPartitionMapping to dependencies, thanks @BoLiuV5!AutomationCondition.any_deps_match() or AutomationCondition.all_deps_match().create-dagster standalone executable now works on all Linux versions using glibc 2.17 or later.@dbt_assets decorator and associated APIs no longer error when parsing dbt projects that contain an owner with multiple emails.AutomationCondition.replace type signature to provide callers more information about the returned AutomationCondition, thanks @dschafer!Code location: location -> code_location: location.The dagster package now supports Python 3.13.
dagster package now supports Python 3.13.dagster-snowflake-polars package adds a SnowflakePolarsIOManager that can be used to read and write Snowflake tables using Polars.dbt_profiles.yml in the dagster-dbt tutorial (thanks @EFox2413!).dagster definitions validate will now raise an exception if there are invalid partition mappings between any assets in your asset graph (for example,
dagster definitions validate will now raise an exception if there are invalid partition mappings between any assets in your asset graph (for example, an upstream and downstream asset with time-based partitions definitions using different timezones).blocking.@graph now correctly allows omitting inputs when the destinations of an input mapping have a default value.@record classes no longer create problematic namespace conflicts with the symbol "check."dg scaffold github-actions would invoke the dg CLI with outdated parameters for serverless orgs.FreshnessPolicy — A new `FreshnessPolicy` API is introduced, replacing the deprecated FreshnessPolicy API (which has been renamed to LegacyFreshnessPo…
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.
defs.yaml, or a lightweight Component 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.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.@template_var so pipeline authors edit parameters directly in YAML without touching Python. Optional inline components keep small bits of Python co-located.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.
dg scaffold defs dagster.asset assets.py, dg scaffold component … to quickly generate definitions without boilerplate.dg dev spins up local instance with UI; dg launch runs jobs and assets from the CLI.dg list enumerates definitions; dg check validates YAML and Python code.dg utils provides support for Cursor/VSCode schema setup, JSON-schema export, and deep component inspection.create-dagster — one-shot project scaffoldcreate-dagster scaffolds a ready-to-run Dagster project or workspace in one command (pipx, uvx, brew, curl friendly).
create-dagster project supersedes the dagster project scaffold flow with the modern src/ + defs/ layout and a pre-wired local dg CLI, with no active Python environment required.AssetCheckEvaluation objects can now be yielded from within ops.@asset now accepts a hooks argument for success/failure callbacks.BackfillPolicy is now GAFreshnessPolicy API is introduced, replacing the deprecated FreshnessPolicy API (which has been renamed to LegacyFreshnessPolicy). 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/freshnessFivetranWorkspace resource is now GA [docs].MaterializeResult now optionally supports a value 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.FreshnessPolicy from dagster.deprecated.FreshnessPolicy from the dagster module.freshness_policy parameter now used to pass the new freshness policies (InternalFreshnessPolicy) to asset specs, asset decorator, etc.@preview from @definitions.build_defs_for_component, which can be used to build defs from a component instance outside of a defs folder.@preview from DefsFolderComponent.@preview decorator from load_from_defs_folder and enhanced its documentation with detailed usage instructions and examples.asset_post_processors field on SlingReplicationCollectionComponent and AirflowInstanceComponent is no longer supported, and has been replaced with the top-level post_processors field.dagster-dbt now supports dbt-core 1.10.SigmaOrganization resource will now use an exponential backoff strategy in response to getting rate limited instead of immediately failing.asset_post_processors on SlingReplicationCollectionComponent and uses generic post_processing key at top-level instead.pandera library to dagster-pandera, dropping support for pandera 0.23.1 and below.blocking.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 the dagster code-server start entrypoint was used.SlingResource that could cause values specified with EnvVars to provide the env var name instead of the env var value to the sling replication configuration.Definitions and AssetsDefinition will now error if they get different AssetSpecs with the same key.FreshnessPolicy to LegacyFreshnessPolicy.SlingReplicationCollectionComponent is now configured by passing connections directly. This means that the sling yaml field and the resource python argument are both deprecated, and will be removed in a future release. The connections field in yaml now shares a format with Sling's env.yaml.load_defs entrypoint has been deprecated in favor of load_from_defs_folder, which takes a single path for a folder to load definitions from rather than a module object.inline-component subcommand of dg scaffold defs is now hidden from --help.load_defs is no longer public.[dagster-tableau] The deprecated get_*_asset_key methods on the DagsterTableauTranslator class have been removed.
tableau_assets decorator is now available to create the asset definitions of all materializable assets in a given Tableau workspace. These assets can be subsetted and materialized using the TableauCloudWorkspace.refresh_and_poll method.get_*_asset_key methods on the DagsterTableauTranslator class have been removed.staleStatusByPartition, staleCausesByPartition, and dataVersionByPartition fields on the graphql AssetNode would fail when called on an asset with dynamic partitions.__init__ method would raise an Exception during execution.sling dependency.SlingResource that could cause values specified with EnvVars to provide the env var name instead of the env var value to the sling replication configuration.dagster-fivetran snapshot command, allowing Fivetran workspaces to be captured to a file for faster subsequent loading.dg scaffold defs ....partitions_def key.dg cache is no longer operative, since dg now operates in the same python environment as the projects it manipulates. Config options for the cache have been removed.load_defs entrypoint has been deprecated in favor of load_from_defs_folder, which takes a single path for a folder to load definitions from rather than a module object.asset_post_processors field on SlingReplicationCollectionComponent and AirflowInstanceComponent is no longer supported, and has been replaced with the top-level post_processors field.autoload_defs=true could not be deployed to Dagster+.The @asset decorator now supports a hooks argument to allow for functions to be executed on asset success / failure (thanks @brunobbaraujo)!
@asset decorator now supports a hooks argument to allow for functions to be executed on asset success / failure (thanks @brunobbaraujo)!@multi_asset_check decorator now supports the pool argument.DagsterDbtTranslator class now has a get_asset_check_spec method which can be overridden to customize the AssetCheckSpecs that are produced for each individual dbt test.blocking attribute on an AssetCheckSpec would halt execution of the step as soon as any asset check failure was emitted, even if the step still had asset materializations or check evaluations to emit that were not downstream of the failed asset check. Now that this issue has been fixed, the blocking attribute on AssetCheckSpec has been made a public attribute. If you were making use of the blocking attribute on AssetCheckSpec before it was public and relying on the previous behavior, you should exit from your asset evaluation function after emitting an AssetCheckFailure from within your multi-asset in order to halt further execution of the step.GraphDefinition.to_job() would not work if an op had a custom IO manager key..allow() and .ignore() applications to not propagate through .since() automation conditions.dagster dev was sometimes failing to load code locations with a "Deadline Exceeded" error unless the --use-legacy-code-server-behavior flag was set.google-cloud-bigquery>=1.28.3 pin to correctly reflect the lowest compatible version.dg check yaml where valid component type names were rejected if they were not registered (i.e. visible from dg check components).dg create-dagster now warns when scaffolding a project or workspace if it is not the latest version.project.registry_modules configuration can now accept wildcards (e.g. foo_bar.components.*). This will register any module matching the pattern with dg.env YAML function now errors if the specified env var is unset. Default values can be provided as an additional argument: {{ env('MY_ENV_VAR', 'default') }}dg registry.PipesSubprocessScriptCollectionComponent has been removed.dg check defs and dg dev in a project folder that is part of the workspace will now only apply to that project, instead of every project in the workspace.dagster_dg_cli.plugin entry point.dg has been renamed from dagster_dg_cli.plugin to dagster_dg_cli.registry_modules (projects no longer need to define an entry point group at all).dg list plugin-modules has been renamed to dg list registry-modules.dg list defs now supports configuring output columns with the --columns/-c option.AirbyteCloudWorkspaceComponent which can be used to pull in Airbyte Cloud connections into DagsterThe database table used by the DbIOManager is now configurable via "table" output (asset) metadata key #30310
DbIOManager is now configurable via "table" output (asset) metadata key #30310use_threads=True, num_workers=4. Thanks @HynekBlaha!build_asset_check_context can be used to build asset check contexts for direct invocation.Definitions.get_all_asset_specs to only return assets directly passed in as AssetSpecs or AssetsDefinitions.selection argument from Definitions.map_asset_specs. If selection is needed use the new Definitions.map_resolved_asset_specs.Definitions.get_job_def now warns when it finds an unresolved job or no job.Definitions.get_assets_def to return an AssetsDefinition without resolving if it was passed in directly.build_schedule_from_dbt_selection now supports a selector argument, allowing you to use yaml-based selectors.dagster/deployment-name label.dg check defs and dg dev in a project folder that is part of the workspace will now only apply to that project, instead of every project in the workspace.dg list defs now supports the --assets/-a option, to show only assets matching the provided selection.dg list defs now supports a --path argument to subset the defs files shown.create-dagster workspace command now accepts the same required path argument as the create-dagster project command, instead of defaulting to a dagster-workspace subfolder of the current working directory.dagster_dg_cli.plugin to dagster_dg_cli.registry_modules (projects no longer need to define an entry point group at all).dg list plugin-modules has been renamed to dg list registry-modules.dagster_dg_cli.plugin entry point.Resolvable subclasses can now use bare dict and list as field types.Resolvable subclass will no longer change empty strings to None.@definitions-decorated functions in a single module in the defs hierarchy and they are automatically merged and incorporated into the project.@component_instance to replace @component. This allows multiple component instances in a python file.dg commands would sometimes output extra dagster_telemetry_logger lines to stdout at the end of commands.@template_var as an alternative approach for defining variables in a templating context."component.yaml" will remain supported for several weeks, but is deprecated.
BackfillPolicy is now marked as generally available (GA).@asset decorator overloads to make custom wrappers around the asset decorator easier. Thanks @jonathanunderwood!get_client() to SlackResource.Definitions and AssetDefinition will now warn if they get different AssetSpecs with the same key. This will become an exception in 1.11.load_definitions_from_modules now handle duplicate AssetSpecs.load_assets_from_fivetran_instance where assets whose asset keys have been customized using a Fivetran translator would lead to an exception.required_resource_keys in @sensor. Thanks @seyf97!Definitions and AssetDefinition will now warn if they get different AssetSpecs with the same key. This will become an exception in 1.11.--wait to the dagster-cloud job launch command that makes it wait until the launched run copmletes. Thanks @stevenayers!dagster-cloud cli failed to deploy PEX projects on python 3.12 in certain environments without setuptools already installed.dg CLI is now installed in each project's Python environment instead of as a global tool. If you previously had dg installed globally and are upgrading, first uninstall the global dg tool (uv tool uninstall dagster-dg or pip uninstall dagster-dg) and add dagster-dg-cli as a dependency to each of your projects. Newly scaffolded projects will automatically include the dg CLI going forward.create-dagster CLI has been added for scaffolding projects instead of workspaces. uvx create-dagster project has replaced dg scaffold project, and uvx create-dagster workspace has replaced dg scaffold workspace. The commands take identical arguments.dg scaffold defs <scaffolder> instead of dg scaffold <scaffolder>.component.yaml file to specify a component instance is now called "defs.yaml". "component.yaml" will remain supported for several weeks, but is deprecated.lib folder in newly scaffolded projects has been renamed to "components".dg scaffold component-type has been renamed to dg scaffold component.dg list plugins has been renamed to dg list plugin-modules and now outputs only plugin module names, not plugin objects.dg list component now lists component types instead of instances.dagster.components are now available in the top-level dagster module.@component_instance to replace @component, which allows multiple component instances in a python file.dg scaffold defs <component>, you will now be prompted with possible matches.dg scaffold defs <component>.dg launch now supports passing config files through --config/-c.Component.from_attributes_dict and Component.from_yaml_path to help with testing.dagster.components.testing.component_defs utility to help with testing components.dg are now loadable by default.dg scaffold defs inline-component can now be used to create inline components and corresponding instances.dg list defs now outputs resources.dagster-dbt cli flag --components flag now correctly finds DbtProjectComponent again.FivetranAccountComponent which can be used to pull in Fivetran connections into Dagster.load_assets_from_airbyte_instance or other APIs that return a CacheableAssetsDefinition.Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →