New
- A new
blockingparameter has been added tobuild_last_update_freshness_checksandbuild_time_partition_freshness_checks. - The default byte size limit for gRPC requests and responses is now 100MB instead of 50MB. This value can be adjusted by setting the
DAGSTER_GRPC_MAX_RX_BYTESandDAGSTER_GRPC_MAX_SEND_BYTESenvironment variables on the gRPC client and server processes. - Added a new
Definitions.map_asset_specsmethod, which allows for the transformation of properties on any AssetSpec or AssetsDefinition objects in theDefinitionsobject which match a given asset selection. Definitions.validate_loadableanddagster definitions validatewill now raise an error on assets with invalid partition mappings, like aTimeWindowPartitionMappingbetween 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.- [dagster-k8s] Reliability improvements to
PipesK8sClientlog streaming when transient networking errors occur. The default behavior of thePipesK8sClientis now to reconnect to the stream of logs every 3600 seconds (this value can be overridden by setting theDAGSTER_PIPES_K8S_CONSUME_POD_LOGS_REQUEST_TIMEOUTenvironment 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 theDAGSTER_PIPES_K8S_CONSUME_POD_LOGS_RETRIESenvironment variable.)
Bugfixes
- Fixed an issue where run monitoring sometimes didn't fail runs that were stuck in a
NOT_STARTEDstatus instead of aSTARTINGstatus. - Fixed an issue where Dagster run metrics produced large amounts of error lines when running in containers without a CPU limit set on the container.
- Fixed an issue where using partial resources in Pydantic >= 2.5.0 could result in an unexpected keyword argument TypeError. (Thanks @HynekBlaha!)
- Fixed an issue with new
AutomationCondition.executed_with_tags()that would cause thetag_keysargument to not be respected. Updated the display name ofAutomationCondition.executed_with_tags()to contain the relevant tag_keys and tag_values. - [ui] Fixed a bug preventing filtering on the asset events page.
- [ui] Fix custom time datepicker filter selection for users with custom Dagster timezone settings.
- [dagster-fivetran] Fixed a bug causing the Fivetran integration to fetch only 100 connectors per destination.
- [dagster-fivetran] Paused connectors no longer raise an exception in
FivetranWorkspace.sync_and_poll(...). Instead, they skip and a warning message is logged. - [dagster-fivetran] Fixed an issue where new runs of code locations using Fivetran assets would sometimes raise a "Failure condition: No metadata found for CacheableAssetsDefinition" error if the run was started immediately after a new version of the code location was deployed.
- [dagster-cloud] Reliability improvements to the
dagster-cloud job launchcommand when launching runs targeting large numbers of assets or asset checks.
Dagster Plus
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.
dg & Components (Preview)
- The
dagster_componentspackage has been merged intodagster. All symbols exported fromdagster_componentsare now exported bydagster. - Projects should now expose custom component types under the
dagster_dg.pluginentry point group instead ofdagster_dg.library.dagster_dg.librarysupport is being kept for now for backcompatibility, but will be dropped in a few weeks. Component.get_schemahas been renamed toComponent.get_model_cls. Override that instead to customize the frontend of your component.Component.get_schemawill continue to work for the time being but will be removed at some point in the future.- Add support for
dg.tomlfiles.dgsettings inpyproject.tomlare set undertool.dg, but indg.tomlthey are set at the top level. Adg.tomlmay be used in place ofpyproject.tomlat either the project or workspace level. dg-scaffolded workspaces now include adg.tomlinstead ofpyproject.tomlfile.- Projects scaffolded using
dg initordg scaffold projectnow follow modern Python packaging conventions, placing the root module in a top-levelsrcdirectory and usehatchlingas build backend rather thansetuptools. - Scaffolding a component type defaults to inheriting from
dagster.components.Modelinstead of getting decorated with@dataclasses.dataclass. - Assets scaffolded using
dg scaffold dagster.assetwill no longer be commented out. - The
dg list component-typecommand has been removed. There is a newdg list pluginswith output that is a superset ofdg list component-type. dg list defsnow includes infomation about asset checks.- Fix formatting of line added to
project/lib/__init__.pywhen scaffolding a component type. - Fixed bug where schedules were displayed in the sensors section of
dg list defs. - Fixed a bug where
dgwould crash when working with Python packages with an src-based layout.