NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1545 most downloaded on PyPI
Shared code between dagster and dagster-dg-core.
Last release today
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
96 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
Fixed an issue where an error was displayed in the UI while viewing run logs
typing_extensions is now pinned to >=4.11.0 instead of >=4.10.0.
typing_extensions is now pinned to >=4.11.0 instead of >=4.10.0.Enable faceted asset nodes).Display integrations marketplace). It provides easy access to the gallery of dagster-supported plugins.ExternalNotebookDataRequest GRPC call that would allow it to access files outside of the current directory.op_tags set on @observable_source_assets to be dropped from the underlying step context object when executed.dagster dev would sometimes raise a gRPC error when loading several code locations at once.BoolSource would evaluate to True.executable_path in a workspace.yaml file to run code locations in a different virtual environment would not correctly inherit the PATH of that virtual environment in the code location.OpExecutionContext was used as the type hint for the context.timeout property data type in ClientConfig to be str instead of int (thanks, @edsoncezar16!)K8sRunLauncher example (thanks, @nishan-soni!)AssetKey and AssetSpec.dg list env now displays whether env vars are configured in each Dagster Plus scope.Resolver.passthrough() to avoid processing fields on a component model.ResolvedAssetKey is now exported from dagster.components.dg init has been removed. dg scaffold project and dg scaffold workspace should be used instead.dg dev failed with a temporarily file permissions error when running on Windows. Thanks @polivbr!…object instead of a dictionary. This is a breaking change for those who have implemented a custom scaffolder.
dagster.yaml to enable submitting backfill runs in a threadpool.Enable retries from asset failure feature flag in your user settings.FivetranWorkspace resource is now marked as generally available (GA).FivetranResource resource is now deprecated. Use the new FivetranWorkspace resource instead.Scaffolder.scaffold to have the params object as an attribute of the ScaffoldRequest object instead of a dictionary. This is a breaking change for those who have implemented a custom scaffolder.dg scaffold dagster.resources path/to/resources.py.@definitions in the defs hierarchy.component.yaml file in your editor.DbtProjectComponent fields now properly evaluate templates.asset_attributes parameter to translation, in order to match our other integration components.dg dev failed with a temporary file permissions error when running on Windows. Thanks @polivbr!dagster.InitResourceContext.dagster_run has been deprecated in favor of InitResourceContext.run.
build_tableau_materializable_assets_definition.MultiPartitionsDefinition.has_partition_key() on invalid keys.AutomationCondition.initial_evaluation which could cause it to return False for an asset that went from having a condition, to having no condition at all, back to having the original condition again.DagsterDbtTranslatorSettings.enable_source_tests_as_checks returning duplicate asset checks.dagster.InitResourceContext.dagster_run has been deprecated in favor of InitResourceContext.run.Path.cwd() or os.getcwd(). Instead, you should use a path relative to the current source file when loading paths in a component, using the context.resolve_source_relative_path method (see resolve_dbt_project in DbtProjectComponent for an example).dagster.job scaffolder.DbtProjectComponent now has a translation_settings argument for adjusting DagsterDbtTranslatorSettings.DbtProjectComponent fields now properly evaluate templates.load_defs entrypoint, thanks @mattgiles!If an unselected asset check is executed during a run, the system will now warn instead of throwing a hard error.
AutomationCondition.any_deps_match or AutomationCondition.all_dep_match with an allow / ignore specified, an error will no longer be produced if the provided asset selection references an asset key that does not exist.dagster dev is allowed to use to open subprocesses when running on Windows, by setting the DAGSTER_PORT_RANGE env var to a string of the form <start>=<end> - for example "20000-30000".get_objects now returns an empty list if no new files can be found since the since_last_modified parameter. Thanks @bartcode!@dbt_assets and build_dbt_manifest_asset_selection now support a selector argument, allowing you to use yaml-based selectors.AutomationCondition.initial_evaluation which could cause it to return False for an asset that went from having a condition, to having no condition at all, back to having the original condition again.AutomationCondition.any_deps_updated() condition to evaluate to False when evaluated on a self-dependency.quickstart_aws example. Thanks @Thenkei!ResolvedAssetSpec. description and examples arguments have been added to Resolver for documenting fields on non-pydantic model based Resolvable classes.The dagster_components package has been merged into dagster and use of the dagster-components package has been deprecated. dagster-components will rem…
By partition grouping view for recent events for assets that do not have a definition in the workspace.can_subset=True to error when using dagster-pipes if not all outputs were emitted.dg will now fail with an error message if it's version is below the minimum supported version for the version of dagster in your environment.dg now checks for new versions and prompts the user to update. The check runs automatically at dg startup once per day.dg will now emit a warning prompting the user to reinstall the package if it detects an entry point in project metadata that does not show up when running in dg list plugins.dg list defs now collapses long system stacktraces #29507dagster.multi_asset scaffolderdagster.asset_check scaffolderdg list defs would crash if anything was written to stdout while loading a project's definitions.dg user config file on Unix has been moved from ~/.dg.toml to ~/.config/dg.toml. ~/.config can be overridden by setting $XDG_CONFIG_HOME.dg contents of the cache were in an outdated format, dg could crash. Now it will just rebuild the cache.pip and uv.dg CLI will now emit a warning if you are using "active" mode for your project python environment, there is a virtual environment at <project_root>/.venv, and the activated venv is not <project_root>/.venvdg setting cli.suppress_warnings is available. This takes a list of warning types to suppress.tool.dg.project.python_environment previously accepted a string, "active" or "persistent_uv". Now it accepts a table with one of two keys:
{active = true}: equivalent of previous "active"{uv_managed = true}: equivalent of previous "persistent_uv"tool.dg.project.python_environment to {active = true}. This means by default, no virtual environment or uv.lock will be created when scaffolding a new project (via dg init or dg scaffold project). You can pass --python-environment uv_managed for the old behavior.--skip-venv flag on dg scaffold project and dg init.dagster_components package has been merged into dagster and use of the dagster-components package has been deprecated. dagster-components will remain as a stub package for the next few weeks, but code should be updated to import from dagster.components instead of dagster_components.dagster-dbt project prepare-and-package cli now supports --components for handling DbtProjectComponentDbtProjectComponent has been reworked, changing both the python api and the yaml schema. dbt has been replaced with project with a slightly different schema, and asset_attributes with translation .[ui] Runs launched from the Dagster UI get a dagster/from_ui = true tag, making it easy to filter for them.
dagster/from_ui = true tag, making it easy to filter for them.AirflowFilter API for use with dagster-airlift, allows you to filter down the set of dags retrieved up front for perf improvements.can_subset=True to error when using dagster-pipes if not all outputs were emitted.state_path argument to DbtCliResource now resolves relative to the project directory as documented.DAGSTER_PIPES_K8S_CONSUME_POD_LOGS_REQUEST_TIMEOUT environment variable) and to retry up to 5 times if an error occurs while streaming logs from the launched Kubernetes pod (this value can be overridden by setting the DAGSTER_PIPES_K8S_CONSUME_POD_LOGS_RETRIES environment variable.)DbtCliInvocation.stream_raw_events. (Thanks @ross-whatnot!)dg CLI will now emit a warning if you are using "active" mode for your project python environment, there is a virtual environment at <project_root>/.venv, and the activated venv is not <project_root>/.venvdg setting cli.suppress_warnings is now available. This takes a list of warning types to suppress.tool.dg.project.python_environment previously accepted a string, "active" or "persistent_uv". Now it accepts a table with one of three keys: - {active = true}: equivalent of previous "active" - {uv_managed = true}: equivalent of previous "persistent_uv"tool.dg.project.python_environment to {active = true}. This means by default, no virtual environment or uv.lock will be created when scaffolding a new project (via dg init or dg scaffold project). You can pass --python-environment uv_managed for the old behavior.--skip-venv flag on dg scaffold project and dg init.dg scaffold project were lacking dagster as a dependency.dg plugin" guide.dg init command have changed. You may pass . as an argument to initialize a project/workspace in the CWD. See dg init --help for more details.dagster-components package (which was converted to a stub package in the last release) is no longer being published. All dagster-components functionality is now part of dagster.dagster_dg.plugin entry point group instead of dagster_dg.library. dagster_dg.library support is being kept for now for backcompatibility, but will be dropped in a few weeks.project/lib/__init__.py when scaffolding a component type.dg env list command is now dg list envdg plus env pull command is now dg plus pull env.dg list component-type command has been removed. There is a new dg list plugins with output that is a superset of dg list component-type.dg user config file on Unix is now looked for at ~/.dg.toml instead of ~/dg.toml.DbtProjectComponent has been reworked, changing both the python api and the yaml schema. dbt has been replaced with project with a slightly different schema, and asset_attributes with translation.Nothing published for this version
Nothing published for this version
A new blocking parameter has been added to build_last_update_freshness_checks and build_time_partition_freshness_checks.
blocking parameter has been added to build_last_update_freshness_checks and build_time_partition_freshness_checks.DAGSTER_GRPC_MAX_RX_BYTES and DAGSTER_GRPC_MAX_SEND_BYTES environment variables on the gRPC client and server processes.Definitions.map_asset_specs method, which allows for the transformation of properties on any AssetSpec or AssetsDefinition objects in the Definitions object which match a given asset selection.Definitions.validate_loadable and dagster definitions validate will now raise an error on assets with invalid partition mappings, like a TimeWindowPartitionMapping between two time-based partitions definitions with different timezones. Previously, these invalid partition mappings would not raise an error until they were used to launch a run.PipesK8sClient log streaming when transient networking errors occur. The default behavior of the PipesK8sClient is now to reconnect to the stream of logs every 3600 seconds (this value can be overridden by setting the DAGSTER_PIPES_K8S_CONSUME_POD_LOGS_REQUEST_TIMEOUT environment variable) and to retry up to 5 times if an error occurs while streaming logs from the launched Kubernetes pod (this value can be overridden by setting the DAGSTER_PIPES_K8S_CONSUME_POD_LOGS_RETRIES environment variable.)NOT_STARTED status instead of a STARTING status.AutomationCondition.executed_with_tags() that would cause the tag_keys argument to not be respected. Updated the display name of AutomationCondition.executed_with_tags() to contain the relevant tag_keys and tag_values.FivetranWorkspace.sync_and_poll(...). Instead, they skip and a warning message is logged.dagster-cloud job launch command when launching runs targeting large numbers of assets or asset checks.Fixed an issue with the identification of the base repository URL the DAGSTER_CLOUD_GIT_URL. The raw URL is now exposed as DAGSTER_CLOUD_RAW_GIT_URL.
dagster_components package has been merged into dagster. All symbols exported from dagster_components are now exported by dagster.dagster_dg.plugin entry point group instead of dagster_dg.library. dagster_dg.library support is being kept for now for backcompatibility, but will be dropped in a few weeks.Component.get_schema has been renamed to Component.get_model_cls. Override that instead to customize the frontend of your component. Component.get_schema will continue to work for the time being but will be removed at some point in the future.dg.toml files. dg settings in pyproject.toml are set under tool.dg, but in dg.toml they are set at the top level. A dg.toml may be used in place of pyproject.toml at either the project or workspace level.dg-scaffolded workspaces now include a dg.toml instead of pyproject.toml file.dg init or dg scaffold project now follow modern Python packaging conventions, placing the root module in a top-level src directory and use hatchling as build backend rather than setuptools.dagster.components.Model instead of getting decorated with @dataclasses.dataclass.dg scaffold dagster.asset will no longer be commented out.dg list component-type command has been removed. There is a new dg list plugins with output that is a superset of dg list component-type.dg list defs now includes infomation about asset checks.project/lib/__init__.py when scaffolding a component type.dg list defs.dg would crash when working with Python packages with an src-based layout.[ui] Fix custom time datepicker filter selection for users with custom Dagster timezone settings.
dg.toml files. dg settings in pyproject.toml are set under tool.dg, but in dg.toml they are set at the top level. A dg.toml may be used in place of pyproject.toml at either the project or workspace level.dg-scaffolded workspaces now include a dg.toml instead of pyproject.toml file.dg-scaffolded projects now place the root package in an src/ directory and use hatchling as the build backend rather than setuptools.dg would crash when working with Python packages with an src-based layout.dg check yaml now properly validates component files in nested subdirectories of the defs/ folder.dagster-components has been merged into dagster and use of the dagster-components package has been deprecated. dagster-components will remain as a stu…
AutomationCondition.initial_evaluation condition has been updated to become true for all partitions of an asset whenever the PartitionsDefinition of that asset changes, rather than whenever the structure of the condition changes.build_fivetran_assets_definitions in a single Definitions object would result in "duplicate node" errors when launching a run.key:"*substring*" instead of name:"*substring*".DefsModuleComponent has been renamed to DefsFolderComponent.dg scaffold my_project.ComponentType instead of dg scaffold component my_project.ComponentType.dagster list defs will now read environment variables from a local .env file if present when constructing the definitions.dagster-components has been merged into dagster and use of the dagster-components package has been deprecated.
dagster-components will remain as a stub package for the next few weeks, but code should be updated to import from dagster.components instead of dagster_components.DbtProjectComponent has been relocated to the dagster-dbt package,
importable as dagster_dbt.DbtProjectComponent.SlingReplicationCollectionComponent has been relocated to the dagster-sling package,
importable as dagster_sling.SlingReplicationCollectionComponent.[dagster-dbt] Replaced @validator with @field_validator in dagster_dbt/core/resource.py to prevent Pydantic deprecation warnings. (Thanks @tintamarre!…
AutomationCondition.initial_evaluation condition to become true for all partitions of an asset whenever the PartitionsDefinition of that asset changes, rather than whenever the structure of the condition changes.dagster-airbyte, dagster-dlift, dagster-dbt, dagster-fivetran, dagster-looker, dagster-powerbi, dagster-sigma, and dagster-tableau.key:"*substring*" instead of name:"*substring*".@validator with @field_validator in dagster_dbt/core/resource.py to prevent Pydantic deprecation warnings. (Thanks @tintamarre!)dagster-gcp version while you migrate config. Please see the full list of changed fields: https://gist.github.com/deepyaman/b4d562e04fe571e40037a344b7a9937ddagster-aws and/or dagster-spark version while you migrate config. Please see the full list of changed fields: https://gist.github.com/deepyaman/f358f5a70fea28d5f164aca8da3dee04use_dg_managed_environment and require_local_venv controlled the environment used when launching project subprocesses. This is now configured at the project level. The tool.dg.project.python_environment setting takes a value of either persistent_uv or active. persistent_uv will be used by default in new scaffolded projects and uses a uv-managed .venv in the project root. active is the default if no tool.dg.project.python_environment is set, and just uses the active python environment and opts out of dg management of the environment.Resolvable, has been added. This can be used to simplify the process of defining a yaml schema for your components. Instead of manually defining a manual ResolvedFrom[...] and ResolvableModel, the framework will automatically derive the model schema for you based off of the annotations of your class.@component) can now contain relative imports.dg init command now accepts optional --workspace-name and --project-name options to allow scaffolding an initial workspace and project via CLI options instead of prompts.dagster_components.dagster.DefsFolderComponent that can be used at any level of your defs/ folder to apply asset attributes to the definitions at or below that level. This was previously named dagster_components.dagster.DefsModuleComponent.Nothing published for this version
Added a new AutomationCondition.executed_with_tags() condition that makes it possible to filter for updates from runs with particular tags.
AutomationCondition.executed_with_tags() condition that makes it possible to filter for updates from runs with particular tags.AssetCheckEvaluation can now be yielded from Dagster ops to log an evaluation of an asset check outside of an asset context.kinds argument to dagster.AssetOut, allowing kinds to be specified in @multi_asset.AssetCheckEvaluations are now yielded from ops leveraging DbtCliResource.cli(...) when asset checks are included in the dbt asset lineage.SlingResource.replicate() method now takes an option stream parameter, which allows events to be streamed as the command executes, instead of waiting until it completes (thanks, @natpatchara-w!).DagsterGraphQLClient now supports an auth keyword argument, which is passed to the underlying RequestsHTTPTransport constructor.AutomationCondition.newly_requested() which could cause it to fail when nested within AutomationCondition.any_deps_match() or AutomationCondition.all_deps_match().AutomationCondition.replace() that would cause it to not effect AutomationCondition.since() conditions.dagster-airbyte, dagster-dlift, dagster-dbt, dagster-fivetran, dagster-looker, dagster-powerbi, dagster-sigma, and dagster-tableau.__pycache__ files are no longer included in the output of dg list component. (Thanks @stevenayers!)deps of an AssetSpec from yaml, multi-part asset keys are now correctly parsed. (Thanks @stevenayers!)dagster.components to dagster_dg.library.dg check yaml is now run by default before dg dev and dg check defs.Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →