New
- Definitions now accepts Executor instances in its executor argument, not just ExecutorDefinitions.
@multi_asset_sensor
now accepts arequest_assets
parameter, which allows it to directly request that assets be materialized, instead of requesting a run of a job.- Improved the performance of instantiating a
Definitions
when using large numbers of assets or many asset jobs. - The job passed to
build_schedule_from_partitioned_job
no longer needs to have apartitions_def
directly assigned to it. Instead, Dagster will infer from the partitions from the assets it targets. OpExecutionContext.asset_partition_keys_for_output
no longer requires an argument to specify the default output.- The “Reload all” button on the Code Locations page in Dagit will now detect changes to a
pyproject.toml
file that were made while Dagit was running. Previously, Dagit needed to be restarted in order for such changes to be shown. get_run_record_by_id
has been added toDagsterInstance
to provide easier access toRunRecord
objects which expose thestart_time
andend_time
of the run.- [dagit] In the “Materialize” modal, you can now choose to pass a range of asset partitions to a single run rather than launching a backfill.
- [dagster-docker] Added a
docker_container_op
op andexecute_docker_container_op
helper function for running ops that launch arbitrary Docker containers. See the docs for more information. - [dagster-snowflake-pyspark] The Snowflake I/O manager now supports PySpark DataFrames.
- [dagster-k8s] The Docker images include in the Dagster Helm chart are now built on the most recently released
python:3.x-slim
base image.
Bugfixes
- Previously, the
build_asset_reconciliation_sensor
could time out when evaluating ticks over large selections of assets, or assets with many partitions. A series of performance improvements should make this much less likely. - Fixed a bug that caused a failure when using
run_request_for_partition
in a sensor that targeted multiple jobs created viadefine_asset_job
. - The cost of importing
dagster
has been reduced. - Issues preventing “re-execute from failure” from working correctly with dynamic graphs have been fixed.
- [dagit] In Firefox, Dagit no longer truncates text unnecessarily in some cases.
- [dagit] Dagit’s asset graph now allows you to click “Materialize” without rendering the graph if you have too many assets to display.
- [dagit] Fixed a bug that stopped the backfill page from loading when assets that had previously been backfilled no longer had a
PartitionsDefinition
. - [dagster-k8s] Fixed an issue where
k8s_job_op
raised an Exception when running pods with multiple containers. - [dagster-airbyte] Loosened credentials masking for Airbyte managed ingestion, fixing the Hubspot source, thanks @joel-olazagasti!
- [dagster-airbyte] When using managed ingestion, Airbyte now pulls all source types available to the instance rather than the workspace, thanks @emilija-omnisend!
- [dagster-airbyte] Fixed an issue which arose when attaching freshness policies to Airbyte assets and using the multiprocessing executor.
- [dagster-fivetran] Added the ability to force assets to be output for all specified Fivetran tables during a sync in the case that a sync’s API outputs are missing one or more tables.
Breaking Changes
- The
asset_keys
andasset_selection
parameters of the experimental@multi_asset_sensor
decorator have been replaced with amonitored_assets
parameter. This helps disambiguate them from the newrequest_assets
parameter.
Community Contributions
- A broken docs link in snowflake_quickstart has been fixed, thanks @clayheaton!
- Troubleshooting help added to helm deployment guide, thanks @adam-bloom!
StaticPartitionMapping
is now serializable, thanks @AlexanderVR!- [dagster-fivetran]
build_fivetran_assets
now supportsgroup_name
, thanks @toddy86! - [dagster-azure]
AzureBlobComputeManager
now supports authentication viaDefaultAzureCredential
, thanks @mpicard!
Experimental
- [dagster-airflow] added a new api
load_assets_from_airflow_dag
that creates graph-backed, partitioned, assets based on the provided Airflow DAG.
All Changes
1.1.14...1.1.15
See All Contributors
Make StaticPartitionMapping serializable. Add autodoc. (#11738)
by @AlexanderVR
Performance improvements for large multi assets (#11782)
by @OwenKephart
monitored_assets param for multi-asset sensor (#11567)
by @sryza
[fix] Fix Snowflake IO manager tests for project_fully_featured (#11781)
by @benpankow
Update docs to include wheel workarounds for m1 macs (#11777)
by @gibsondan
fix run_request_for_partition for sensors that target multiple unreso… (#11780)
by @sryza
New "running dagster locally" deployment guide that walks through
dagster dev usage (#11741)
by @gibsondan
Restore grpcio pin for python 3.10 (#11784)
by @gibsondan
Changelog 1.1.11 (#11789)
by @dpeng817
docs: add clarification for helm migration guide (#10454)
by @adam-bloom
[dagit] Bump react-scripts to remove codegen plugin (#11769)
by @hellendag
feat(dagster-dbt): use cached run id to fetch artifacts (#11744)
by @rexledesma
feat(dbt-cloud): raise exception if cached compile has not completed (#11792)
by @rexledesma
changelog 1.1.11 pt 2 (#11800)
by @alangenfeld
Heartbeat once at the beginning of every interval daemon (#11802)
by @gibsondan
1.1.11 changelog: fix link (#11804)
by @yuhan
[dagit] Add missing changelog entries for 1.1.11 (#11803)
by @bengotow
add request_assets param to multi_asset_sensor (#11786)
by @sryza
Automation: versioned docs for 1.1.11
by @elementl-devtools
Log to daemon output when running the schedule code fails or times out (#11805)
by @gibsondan
1.1.12 changelog (#11807)
by @alangenfeld
[dagit] When viewing an asset that is a root, do not fetch root used data (#11806)
by @bengotow
[dagit] Fix support for long descriptions in the asset catalog table (#11810)
by @bengotow
Convert accesses using '__ASSET_JOB' to instead use the supported implicit job methods (#11348)
by @schrockn
[dagster-azure] Add support for DefaultAzureCredential for AzureBlobComputeLogManager (#11310)
by @mpicard
add dagster.yaml tests for nux key (#11820)
by @gibsondan
Fix 'dagster dev' command with workspace.yaml passed in (#11819)
by @gibsondan
When can't deserialize asset backfill because asset is no longer partitioned, return it as empty (#11812)
by @sryza
1.1.13 changelog (#11818)
by @alangenfeld
add after_cursor to get_materialization_counts_by_partition (#11759)
by @OwenKephart
Adds group_label to build_fivetran_assets (#11718)
by @toddy86
default argument to asset_partition_keys_for_output (#11811)
by @sryza
Specify credentials masking. (#11813)
by @joel-olazagasti
Fix multidimensional partition backfills (#11788)
by @clairelin135
Automation: versioned docs for 1.1.13
by @yuhan
Move pyproject.toml => origin generation to a WorkspaceLoadTarget class so that it can be reloaded in dagit (#11821)
by @gibsondan
fix tz in time_windows_for_partition_keys (#11825)
by @sryza
dynamic re-execution fixes (#11581)
by @alangenfeld
[instance] get_run_record_by_id (#11643)
by @alangenfeld
[asset-graph] keep track of source asset partitions defs (#11840)
by @OwenKephart
[dagster-airbyte] Fix issue using freshness policy w/ Airbyte + multiprocessing executor (#11837)
by @benpankow
[asset-reconciliation] pre-fetch the results of some queries (#11770)
by @OwenKephart
[asset-reconciliation] Fix case where the partitions definition does not have partitions for some subset of the past 24 hours (#11842)
by @OwenKephart
Fix for backoff logic incorrectly storing state (#11848)
by @gibsondan
use an
AssetGraph to resolve asset selections in asset jobs (#11846)
by @sryza
fix(dbt-cloud): remove dbt selector when materializing subset (#11843)
by @rexledesma
pin sqlalchemy below 2.0.0 (#11871)
by @benpankow
[dagit] Allow materializing “All” without requiring large graphs are rendered (#11854)
by @bengotow
chore(dagster-dbt): pin dbt-core<1.4.0 (#11870)
by @rexledesma
stop using python semver parsing for mysql versions (#11868)
by @prha
Fix aws ssm tests (#11886)
by @gibsondan
unbreak backcompat tests after sqlalchemy upgrade (#11885)
by @gibsondan
[dagit] Fix jumpy code location status spinner (#11801)
by @hellendag
Add apache-airflow test pin to <2.5.1 (#11888)
by @gibsondan
Fix databricks tests running in release branch (#11887)
by @gibsondan
Add pin for jupyter-client<8 (#11901)
by @gibsondan
[pyright] [core] storage (#11363)
by @smackesey
[pyright] [core] standardize is_context_provided (#11364)
by @smackesey
[pyright] [core] eliminate
funcsigs (#11365)
by @smackesey
1.1.14 changelog (#11907)
by @gibsondan
[pyright] [core] remove builitins star import (#11366)
by @smackesey
[readme] update twitter badge (#11892)
by @alangenfeld
[pyright] [gql] DagsterPipelineRunMetadataValue -> DagsterRunMetadataValue (#11893)
by @smackesey
[pyright] [core] _core/definitions/asset_reconciliation_sensor (#11717)
by @smackesey
[pyright] [gql] implementation/events (#11894)
by @smackesey
[pyright] [gql] implementation/fetch_partition_sets (#11895)
by @smackesey
Automation: versioned docs for 1.1.14
by @elementl-devtools
[pyright] examples/tutorial-notebook-assets (#11910)
by @smackesey
[pyright] examples/with-airflow (#11911)
by @smackesey
[pyright] [dagit] misc (#11727)
by @smackesey
[pyright] [dagster-dask] misc (#11944)
by @smackesey
[pyright] [dagster-databricks] misc (#11943)
by @smackesey
[pyright] [dagster-test] misc (#11940)
by @smackesey
[pyright] [dagster-mysql] misc (#11939)
by @smackesey
[pyright] [dagster-duckdb-pyspark] misc (#11937)
by @smackesey
[pyright] [dagster-pandas] misc (#11931)
by @smackesey
[pyright] [dagster-postgres] misc (#11929)
by @smackesey
[pyright] [dagster-snowflake] misc (#11926)
by @smackesey
[pyright] [examples/assets-dbt-python] misc (#11922)
by @smackesey
[pyright] [dagster-snowflake] misc (#11928)
by @smackesey
[pyright] [dagster-pandera] misc (#11930)
by @smackesey
[pyright] [dagster-aws] misc (#11730)
by @smackesey
[pyright] [dagster-airflow] misc (#11729)
by @smackesey
[pyright] examples/quickstart-gcp (#11909)
by @smackesey
[pyright] [dagster-dbt] misc (#11941)
by @smackesey
[pyright] [automation] misc (#11726)
by @smackesey
[pyright] [dagster-msteams] misc (#11932)
by @smackesey
[pyright] [dagster-snowflake-pandas] misc (#11927)
by @smackesey
[pyright] [dagstermill] misc (#11925)
by @smackesey
[pyright] [dagster-docker] misc (#11938)
by @smackesey
[pyright] [dagster-gcp] misc (#11936)
by @smackesey
remove need to provide
partitions_defto asset job targeted by
build_schedule_from_partitioned_job (#11844)
by @sryza
fix GQL snapshot tests on py310 (#11945)
by @smackesey
[pyright] [dagster-airbyte] misc (#11728)
by @smackesey
[pyright] [dagster-mlflow] misc (#11948)
by @smackesey
Fix k8s_job_op with multiple containers (#11916)
by @gibsondan
[pyright] [gql] capture_error sig fix (#11722)
by @smackesey
[pyright] [dagster-azure] misc (#11946)
by @smackesey
Add code versions to AssetGraph (#11950)
by @smackesey
[pyright] [gql] schema/solids#resolve_required_resources (#11898)
by @smackesey
refactor GrpcServerProcess (#11960)
by @smackesey
Fix s3_resource docstring example (#11757)
by @dpeng817
[pyright] [core] create RunGroupInfo type (#11368)
by @smackesey
snowflake connector pin (#11970)
by @alangenfeld
[pyright] [gql] schema/roots/mutation (#11897)
by @smackesey
[easy] List dagster_world.mp4 in static files (#11961)
by @salazarm
[pyright] [gql] AssetKey cleanup (#11721)
by @smackesey
CachingProjectedLogicalVersionResolver -> CachingStaleStatusResolver (#11951)
by @smackesey
whitelist EventLogRecord for serdes (#11978)
by @OwenKephart
document tags_for_partition_fn in _partitioned_config API doc (#11977)
by @sryza
[pyright] [gql] misc (#11720)
by @smackesey
[pyright] [gql] misc type errors 2 (#11947)
by @smackesey
[pyright] [gql] implementation/fetch_runs (#11896)
by @smackesey
Allow bare executor in Definitions (#11795)
by @schrockn
Add opt_iterable_param (#11796)
by @schrockn
Use opt_iterable_param in Definitions (#11797)
by @schrockn
[pyright] [gql] compute log manager (#11725)
by @smackesey
[dagster-snowflake-pandas] snowflake-sqlalchemy pin (#11984)
by @smackesey
[pyright] [gql] add ResolveInfo everywhere (#11723)
by @smackesey
add .ruff_cache to gitignore (#11987)
by @Ramshackle-Jamathon
small tweak to airflow integration page (#11985)
by @sryza
Rename
_core.decorator_utils.is_context_provided (#11982)
by @smackesey
Add docker_container_op and execute_docker_container (#11831)
by @gibsondan
[perf] perf improvement for TimeWindowPartitionsSubset (#11850)
by @OwenKephart
[dagit] Add ErrorBoundary to Dagit to reduce severity of React errors (#11824)
by @bengotow
[dagit] Repair markdownToPlaintext test failure (#11995)
by @hellendag
[import perf] defer CachingInstanceQueryer imports to avoid storage imports (#11905)
by @alangenfeld
Update error messaging for DB IO managers (#11815)
by @jamiedemaria
[import perf] moves to prevent grpc import (#11906)
by @alangenfeld
[import perf] test to prevent regressions (#11969)
by @alangenfeld
remove legacy APIs from dagstermill tests (#11999)
by @sryza
remove legacy APIs from dagster_shell_tests (#11998)
by @sryza
[dagit] UI support for launching a single asset run with a range of partition keys (#11866)
by @bengotow
[dagit] Add more truncation test cases for Firefox, change const (#12001)
by @bengotow
Fix black pre-commit hook (#11979)
by @smackesey
[3/3 partition status cache] Update graphQL partition data (#10822)
by @clairelin135
Upgrade base image on Dagster Dockerfiles to latest python version (#11863)
by @gibsondan
[pyright] [examples/docs-snippets] misc (#11921)
by @smackesey
Add
last_materialization_record to AssetEntry. (#11919)
by @OwenKephart
[asset-reconciliation][perf] Improve prefetch accuracy (#11991)
by @OwenKephart
fix dagstermill tests (#12002)
by @sryza
Type annotations for workspace code (#11958)
by @smackesey
Consolidate GrpcServerRegistry/ProcessGrpcServerRegistry (#11990)
by @smackesey
Refactor ProcessRegistryEntry (#11959)
by @smackesey
[pyright] examples/project-fully-featured (#11908)
by @smackesey
[pyright] [dagster-k8s] misc (#11935)
by @smackesey
[pyright] [core] tests (#11369)
by @smackesey
[pyright] Type-ignores for various errors related to managed elements (#12014)
by @smackesey
cleam up get_asset_events (#11913)
by @alangenfeld
PySpark type handler for snowflake io manager (#11542)
by @jamiedemaria
[asset-reconciliation] [perf] do not try to fetch materialization records for sources (#12011)
by @OwenKephart
test(dagster-dbt): add testing for python 3.10 (#11912)
by @rexledesma
fix: use new GitHub graphql resolvers for issue automation (#11877)
by @rexledesma
[dagit] Export GhostDaggy with tooltip for Cloud usage (#11967)
by @hellendag
[dagster-airflow]
load_assets_from_airflow_dag (#11876)
by @Ramshackle-Jamathon
Fix broken doc link for Snowflake credential setup (#12017)
by @clayheaton
[dagster-fivetran] Add option to force-create materializations for tables not in API response (#11972)
by @benpankow
[dagit] Fix use of fragments causing Apollo caching error in partition health (#12030)
by @bengotow
Change endpoints to the ones that are used by airbyte UI (#12012)
by @emilija-omnisend
lint fix (#12044)
by @benpankow
feat(dbt-cloud): compile run only if job has environment variable cache (#12042)
by @rexledesma
fix(dbt-cloud): inherit generate docs settings for compile run (#12043)
by @rexledesma
1.1.15 changelog (#12051)
by @jamiedemaria
1.1.15
by @elementl-devtools