Releases: dagster-io/dagster
Releases · dagster-io/dagster
1.8.10 (core) / 0.24.10 (libraries)
New
JobDefinition
,@job
, anddefine_asset_job
now take arun_tags
parameter. Ifrun_tags
are defined, they will be attached to all runs of the job, andtags
will not be. Ifrun_tags
is not set, thentags
are attached to all runs of the job (status quo behavior). This change enables the separation of definition-level and run-level tags on jobs.- Then env var
DAGSTER_COMPUTE_LOG_TAIL_WAIT_AFTER_FINISH
can now be used to pause before capturing logs (thanks @HynekBlaha!) - The
kinds
parameter is now available onAssetSpec
. OutputContext
now exposes theAssetSpec
of the asset that is being stored as an output (thanks, @marijncv!)- [experimental] Backfills are incorporated into the Runs page to improve observability and provide a more simplified UI. See the GitHub discussion for more details.
- [ui] The updated navigation is now enabled for all users. You can revert to the legacy navigation via a feature flag. See GitHub discussion for more.
- [ui] Improved performance for loading partition statuses of an asset job.
- [dagster-docker] Run containers launched by the DockerRunLauncher now include dagster/job_name and dagster/run_id labels.
- [dagster-aws] The ECS launcher now automatically retries transient ECS RunTask failures (like capacity placement failures).
Bugfixes
- Changed the log volume for global concurrency blocked runs in the run coordinator to be less spammy.
- [ui] Asset checks are now visible in the run page header when launched from a schedule.
- [ui] Fixed asset group outlines not rendering properly in Safari.
- [ui] Reporting a materialization event now removes the asset from the asset health "Execution failures" list and returns the asset to a green / success state.
- [ui] When setting an
AutomationCondition
on an asset, the label of this condition will now be shown in the sidebar on the Asset Details page. - [ui] Previously, filtering runs by Created date would include runs that had been updated after the lower bound of the requested time range. This has been updated so that only runs created after the lower bound will be included.
- [ui] When using the new experimental navigation flag, added a fix for the automations page for code locations that have schedules but no sensors.
- [ui] Fixed tag wrapping on asset column schema table.
- [ui] Restored object counts on the code location list view.
- [ui] Padding when displaying warnings on unsupported run coordinators has been corrected (thanks @hainenber!)
- [dagster-k8s] Fixed an issue where run termination sometimes did not terminate all step processes when using the k8s_job_executor, if the termination was initiated while it was in the middle of launching a step pod.
Documentation
- Corrections on the Dagster instance concept page (thanks @mheguy!)
- Corrections on the code locations concept page (thanks @tiberiuana!)
- Repeated words removed (thanks @tianzedavid!)
- [dagster-deltalake] Corrections and improvements (thanks @avriiil!)
- [dagster-aws] Added docs for PipesEMRServerlessClient.
- [dagster-cli] A guide on how to validate Dagster definitions using
dagster definitions validate
have been added. - [dagster-databricks] Added docs for using Databricks Pipes with existing clusters.
- [dagster-dbt] Corrected sample sql code (thanks @b-per!)
1.8.9 (core) / 0.24.9 (libraries)
New
AssetSpec
now has awith_io_manager_key
method that returns anAssetSpec
with the appropriate metadata entry to dictate the key for the IO manager used to load it. The deprecation warning forSourceAsset
now references this method.- Added a
max_runtime_seconds
configuration option to run monitoring, allowing you to specify that any run in your Dagster deployment should terminate if it exceeds a certain runtime. Prevoiusly, jobs had to be individually tagged with adagster/max_runtime
tag in order to take advantage of this feature. Jobs and runs can still be tagged in order to override this value for an individual run. - It is now possible to set both
tags
and a customexecution_fn
on aScheduleDefinition
. Scheduletags
are intended to annotate the definition and can be used to search and filter in the UI. They will not be attached to run requests emitted from the schedule if a customexecution_fn
is provided. If no customexecution_fn
is provided, then for back-compatibility the tags will also be automatically attached to run requests emitted from the schedule. SensorDefinition
and all of its variants/decorators now accept atags
parameter. The tags annotate the definition and can be used to search and filter in the UI.- Added the
dagster definitions validate
command to Dagster CLI. This command validates if Dagster definitions are loadable. - [dagster-databricks] Databricks Pipes now allow running tasks in existing clusters.
Bugfixes
- Fixed an issue where calling
build_op_context
in a unit test would sometimes raise aTypeError: signal handler must be signal.SIG_IGN, signal.SIG_DFL, or a callable object
Exception on process shutdown. - [dagster-webserver] Fix an issue where the incorrect sensor/schedule state would appear when using
DefaultScheduleStatus.STOPPED
/DefaultSensorStatus.STOPPED
after performing a reset.
Documentation
- [dagster-pipes] Fixed inconsistencies in the k8s pipes example.
- [dagster-pandas-pyspark] Fixed example in the Spark/Pandas SDA guide.
Dagster Plus
- Fixed an issue where users with Launcher permissions for a particular code location were not able to cancel backfills targeting only assets in that code location.
- Fixed an issue preventing long-running alerts from being sent when there was a quick subsequent run.
1.8.8 (core) / 0.24.8 (libraries)
New
- Added
--partition-range
option todagster asset materialize
CLI. This option only works for assets with single-run Backfill Policies. - Added a new
.without()
method toAutomationCondition.eager()
,AutomationCondition.on_cron()
, andAutomationCondition.on_missing()
which allows sub-conditions to be removed, e.g.AutomationCondition.eager().without(AutomationCondition.in_latest_time_window())
. - Added
AutomationCondition.on_missing()
, which materializes an asset partition as soon as all of its parent partitions are filled in. pyproject.toml
can now load multiple Python modules as individual Code Locations. Thanks, @bdart!- [ui] If a code location has errors, a button will be shown to view the error on any page in the UI.
- [dagster-adls2] The
ADLS2PickleIOManager
now acceptslease_duration
configuration. Thanks, @0xfabioo! - [dagster-embedded-elt] Added an option to fetch row count metadata after running a Sling sync by calling
sling.replicate(...).fetch_row_count()
. - [dagster-fivetran] The dagster-fivetran integration will now automatically pull and attach column schema metadata after each sync.
Bugfixes
- Fixed an issue which could cause errors when using
AutomationCondition.any_downstream_condition()
with downstreamAutoMaterializePolicy
objects. - Fixed an issue where
process_config_and_initialize
did not properly handle processing nested resource config. - [ui] Fixed an issue that would cause some AutomationCondition evaluations to be labeled
DepConditionWrapperCondition
instead of the key that they were evaluated against. - [ui] Fix an issue where the incorrect sensor/schedule state would appear when using DefaultScheduleStatus.STOPPED / DefaultSensorStatus.STOPPED after performing a reset.
- [dagster-webserver] Fixed an issue with code locations appearing in fluctuating incorrect state in deployments with multiple webserver processes.
- [dagster-embedded-elt] Fixed an issue where Sling column lineage did not correctly resolve int the Dagster UI.
- [dagster-k8s] The
wait_for_pod
check now waits until all pods are available, rather than erroneously returning after the first pod becomes available. Thanks @easontm!
Dagster Plus
- Backfill daemon logs are now available in the "Coordinator Logs" tab in a backfill details page.
- Users without proper code location permissions can no longer edit sensor cursors.
1.8.7 (core) / 0.24.7 (libraries)
New
- The
AssetSpec
constructor now raises an error if an invalid group name is provided, instead of an error being raised when constructing theDefinitions
object. dagster/relation_identifier
metadata is now automatically attached to assets which are stored using a DbIOManager.- [ui] Streamlined the code location list view.
- [ui] The “group by” selection on the Timeline Overview page is now part of the query parameters, meaning it will be retained when linked to directly or when navigating between pages.
- [dagster-dbt] When instantiating
DbtCliResource
, theproject_dir
argument will now override theDBT_PROJECT_DIR
environment variable if it exists in the local environment (thanks, @marijncv!). - [dagster-embedded-elt] dlt assets now generate
rows_loaded
metadata (thanks, @kristianandre!). - Added support for pydantic version 1.9.0.
Bugfixes
- Fixed a bug where setting
asset_selection=[]
onRunRequest
objects yielded from sensors usingasset_selection
would select all assets instead of none. - Fixed bug where the tick status filter for batch-fetched graphql sensors was not being respected.
- [examples] Fixed missing assets in
assets_dbt_python
example. - [dagster-airbyte] Updated the op names generated for Airbyte assets to include the full connection ID, avoiding name collisions.
- [dagster-dbt] Fixed issue causing dagster-dbt to be unable to load dbt projects where the adapter did not have a
database
field set (thanks, @dargmuesli!) - [dagster-dbt] Removed a warning about not being able to load the
dbt.adapters.duckdb
module when loading dbt assets without that package installed.
Documentation
- Fixed typo on the automation concepts page (thanks, @oedokumaci!)
Dagster Plus
- You may now wipe specific asset partitions directly from the execution context in user code by calling
DagsterInstance.wipe_asset_partitions
. - Dagster+ users with a "Viewer" role can now create private catalog views.
- Fixed an issue where the default IOManager used by Dagster+ Serverless did not respect setting
allow_missing_partitions
as metadata on a downstream asset.
1.8.6 (core) / 0.24.6 (libraries)
Bugfixes
- Fixed an issue where runs in Dagster+ Serverless that materialized partitioned assets would sometimes fail with an
object has no attribute '_base_path'
error. - [dagster-graphql] Fixed an issue where the
statuses
filter argument to thesensorsOrError
GraphQL field was sometimes ignored when querying GraphQL for multiple sensors at the same time.
1.8.5 (core) / 0.24.5 (libraries)
New
- Updated multi-asset sensor definition to be less likely to timeout queries against the asset history storage.
- Consolidated the
CapturedLogManager
andComputeLogManager
APIs into a single base class. - [ui] Added an option under user settings to clear client side indexeddb caches as an escape hatch for caching related bugs.
- [dagster-aws, dagster-pipes] Added a new
PipesECSClient
to allow Dagster to interface with ECS tasks. - [dagster-dbt] Increased the default timeout when terminating a run that is running a
dbt
subprocess to wait 25 seconds for the subprocess to cleanly terminate. Previously, it would only wait 2 seconds. - [dagster-sdf] Increased the default timeout when terminating a run that is running an
sdf
subprocess to wait 25 seconds for the subprocess to cleanly terminate. Previously, it would only wait 2 seconds. - [dagster-sdf] Added support for caching and asset selection (Thanks, akbog!)
- [dagster-dlt] Added support for
AutomationCondition
usingDagsterDltTranslator.get_automation_condition()
(Thanks, aksestok!) - [dagster-k8s] Added support for setting
dagsterDaemon.runRetries.retryOnAssetOrOpFailure
to False in the Dagster Helm chart to prevent op retries and run retries from simultaneously firing on the same failure. - [dagster-wandb] Removed usage of deprecated
recursive
parameter (Thanks, chrishiste!)
Bugfixes
- [ui] Fixed a bug where in-progress runs from a backfill could not be terminated from the backfill UI.
- [ui] Fixed a bug that caused an "Asset must be part of at least one job" error when clicking on an external asset in the asset graph UI
- Fixed an issue where viewing run logs with the latest 5.0 release of the watchdog package raised an exception.
- [ui] Fixed issue causing the “filter to group” action in the lineage graph to have no effect.
- [ui] Fixed case sensitivity when searching for partitions in the launchpad.
- [ui] Fixed a bug which would redirect to the events tab for an asset if you loaded the partitions tab directly.
- [ui] Fixed issue causing runs to get skipped when paging through the runs list (Thanks, @HynekBlaha!)
- [ui] Fixed a bug where the asset catalog list view for a particular group would show all assets.
- [dagster-dbt] fix bug where empty newlines in raw dbt logs were not being handled correctly.
- [dagster-k8s, dagster-celery-k8s] Correctly set
dagster/image
label when image is provided fromuser_defined_k8s_config
. (Thanks, @HynekBlaha!) - [dagster-duckdb] Fixed an issue for DuckDB versions older than 1.0.0 where an unsupported configuration option,
custom_user_agent
, was provided by default - [dagster-k8s] Fixed an issue where Kubernetes Pipes failed to create a pod if the op name contained capital or non-alphanumeric containers.
- [dagster-embedded-elt] Fixed an issue where dbt assets downstream of Sling were skipped
Deprecations
- [dagser-aws]: Direct AWS API arguments in
PipesGlueClient.run
have been deprecated and will be removed in1.9.0
. The newparams
argument should be used instead.
Dagster Plus
- Fixed a bug that caused an error when loading the launchpad for a partition, when using Dagster+ with an agent with version below 1.8.2.
- Fixed an issue where terminating a Dagster+ Serverless run wouldn’t forward the termination signal to the job to allow it to cleanly terminate.
1.8.4 (core) / 0.24.4 (libraries)
Bugfixes
- Fixed an issue where viewing run logs with the latest 5.0 release of the watchdog package raised an exception.
- Fixed a bug that caused an "Asset must be part of at least one job" error when clicking on an external asset in the asset graph UI
Dagster Plus
- The default io_manager on Serverless now supports the
allow_missing_partitions
configuration option. - Fixed a bug that caused an error when loading the launchpad for a partition, when using in Dagster+ with an agent with version below 1.8.2
1.8.3 (core) / 0.24.3 (libraries)
New
- When different assets within a code location have different
PartitionsDefinition
s, there will no longer be an implicit asset job__ASSET_JOB_...
for eachPartitionsDefinition
; there will just be one with all the assets. This reduces the time it takes to load code locations with assets with many differentPartitionsDefinition
s.
1.8.2 (core) / 0.24.2 (libraries)
New
- [ui] Improved performance of the Automation history view for partitioned assets
- [ui] You can now delete dynamic partitions for an asset from the ui
- [dagster-sdf] Added support for quoted table identifiers (Thanks, @akbog!)
- [dagster-openai] Add additional configuration options for the
OpenAIResource
(Thanks, @chasleslr!) - [dagster-fivetran] Fivetran assets now have relation identifier metadata.
Bugfixes
- [ui] Fixed a collection of broken links pointing to renamed Declarative Automation pages.
- [dagster-dbt] Fixed issue preventing usage of
MultiPartitionMapping
with@dbt_assets
(Thanks, @arookieds!) - [dagster-azure] Fixed issue that would cause an error when configuring an
AzureBlobComputeLogManager
without asecret_key
(Thanks, @ion-elgreco and @HynekBlaha!)
Documentation
- Added API docs for
AutomationCondition
and associated static constructors. - [dagster-deltalake] Corrected some typos in the integration reference (Thanks, @dargmuesli!)
- [dagster-aws] Added API docs for the new
PipesCloudWatchMessageReader
1.8.1 (core) / 0.24.1 (libraries)
New
- If the sensor daemon fails while submitting runs, it will now checkpoint its progress and attempt to submit the remaining runs on the next evaluation.
build_op_context
andbuild_asset_context
now accepts arun_tags
argument.- Nested partially configured resources can now be used outside of
Definitions
. - [ui] Replaced GraphQL Explorer with GraphiQL.
- [ui] The run timeline can now be grouped by job or by automation.
- [ui] For users in the experimental navigation flag, schedules and sensors are now in a single merged automations table.
- [ui] Logs can now be filtered by metadata keys and values.
- [ui] Logs for
RUN_CANCELED
events now display relevant error messages. - [dagster-aws] The new
PipesCloudWatchMessageReader
can consume logs from CloudWatch as pipes messages. - [dagster-aws] Glue jobs launched via pipes can be automatically canceled if Dagster receives a termination signal.
- [dagster-azure]
AzureBlobComputeLogManager
now supports service principals, thanks @ion-elgreco! - [dagster-databricks]
dagster-databricks
now supportsdatabricks-sdk<=0.17.0
. - [dagster-datahub]
dagster-datahub
now allows pydantic versions below 3.0.0, thanks @kevin-longe-unmind! - [dagster-dbt] The
DagsterDbtTranslator
class now supports a modfiying theAutomationCondition
for dbt models by overridingget_automation_condition
. - [dagster-pandera]
dagster-pandera
now supportspolars
. - [dagster-sdf] Table and columns tests can now be used as asset checks.
- [dagster-embedded-elt] Column metadata and lineage can be fetched on Sling assets by chaining the new
replicate(...).fetch_column_metadata()
method. - [dagster-embedded-elt] dlt resource docstrings will now be used to populate asset descriptions, by default.
- [dagster-embedded-elt] dlt assets now generate column metadata.
- [dagster-embedded-elt] dlt transformers now refer to the base resource as upstream asset.
- [dagster-openai]
OpenAIResource
now supportsorganization
,project
andbase_url
for configurting the OpenAI client, thanks @chasleslr! - [dagster-pandas][dagster-pandera][dagster-wandb] These libraries no longer pin
numpy<2
, thanks @judahrand!
Bugfixes
- Fixed a bug for job backfills using backfill policies that materialized multiple partitions in a single run would be launched multiple times.
- Fixed an issue where runs would sometimes move into a FAILURE state rather than a CANCELED state if an error occurred after a run termination request was started.
- [ui] Fixed a bug where an incorrect dialog was shown when canceling a backfill.
- [ui] Fixed the asset page header breadcrumbs for assets with very long key path elements.
- [ui] Fixed the run timeline time markers for users in timezones that have off-hour offsets.
- [ui] Fixed bar chart tooltips to use correct timezone for timestamp display.
- [ui] Fixed an issue introduced in the 1.8.0 release where some jobs created from graph-backed assets were missing the “View as Asset Graph” toggle in the Dagster UI.
Breaking Changes
- [dagster-airbyte]
AirbyteCloudResource
now supportsclient_id
andclient_secret
for authentication - theapi_key
approach is no longer supported. This is motivated by the deprecation of portal.airbyte.com on August 15, 2024.
Deprecations
- [dagster-databricks] Removed deprecated authentication clients provided by
databricks-cli
anddatabricks_api
- [dagster-embedded-elt] Removed deprecated Sling resources
SlingSourceConnection
,SlingTargetConnection
- [dagster-embedded-elt] Removed deprecated Sling resources
SlingSourceConnection
,SlingTargetConnection
- [dagster-embedded-elt] Removed deprecated Sling methods
build_sling_assets
, andsync
Documentation
- The Integrating Snowflake & dbt with Dagster+ Insights guide no longer erroneously references BigQuery, thanks @dnxie12!