New
- When an exception is wrapped by another exception and raised within an op, Dagit will now display the full chain of exceptions, instead of stopping after a single exception level.
- A
default_logger_defs
argument has been added to the@repository
decorator. Check out the docs on specifying default loggers to learn more. AssetsDefinition.from_graph
andAssetsDefinition.from_op
now both accept apartition_mappings
argument.AssetsDefinition.from_graph
andAssetsDefinition.from_op
now both accept ametadata_by_output_name
argument.define_asset_job
now accepts anexecutor_def
argument.- Removed package pin for
gql
indagster-graphql
. - You can now apply a group name to assets produced with the
@multi_asset
decorator, either by supplying agroup_name
argument (which will apply to all of the output assets), or by setting thegroup_name
argument on individualAssetOut
s. InputContext
andOutputContext
now each have anasset_partitions_def
property, which returns thePartitionsDefinition
of the asset that’s being loaded or stored.build_schedule_from_partitioned_job
now raises a more informative error when provided a non-partitioned asset jobPartitionMapping
,IdentityPartitionMapping
,AllPartitionMapping
, andLastPartitionMapping
are exposed at the top-leveldagster
package. They're currently marked experimental.- When a non-partitioned asset depends on a partitioned asset, you can now control which partitions of the upstream asset are used by the downstream asset, by supplying a
PartitionMapping
. - You can now set
PartitionMappings
onAssetIn
. - [dagit] Made performance improvements to the loading of the partitions and backfill pages.
- [dagit] The Global Asset Graph is back by popular demand, and can be reached via a new “View global asset lineage ”link on asset group and asset catalog pages! The global graph keeps asset in the same group visually clustered together and the query bar allows you to visualize a custom slice of your asset graph.
- [dagit] Simplified the Content Security Policy and removed
frame-ancestors
restriction. - [dagster-dbt]
load_assets_from_dbt_project
andload_assets_from_dbt_manifest
now support anode_info_to_group_name_fn
parameter, allowing you to customize which group Dagster will assign each dbt asset to. - [dagster-dbt] When you supply a
runtime_metadata_fn
when loading dbt assets, this metadata is added to the default metadata that dagster-dbt generates, rather than replacing it entirely. - [dagster-dbt] When you load dbt assets with
use_build_command=True
, seeds and snapshots will now be represented as Dagster assets. Previously, only models would be loaded as assets.
Bugfixes
- Fixed an issue where runs that were launched using the
DockerRunLauncher
would sometimes use Dagit’s Python environment as the entrypoint to launch the run, even if that environment did not exist in the container. - Dagster no longer raises a “Duplicate definition found” error when a schedule definition targets a partitioned asset job.
- Silenced some erroneous warnings that arose when using software-defined assets.
- When returning multiple outputs as a tuple, empty list values no longer cause unexpected exceptions.
- [dagit] Fixed an issue with graph-backed assets causing a GraphQL error when graph inputs were type-annotated.
- [dagit] Fixed an issue where attempting to materialize graph-backed assets caused a graphql error.
- [dagit] Fixed an issue where partitions could not be selected when materializing partitioned assets with associated resources.
- [dagit] Attempting to materialize assets with required resources now only presents the launchpad modal if at least one resource defines a config schema.
Breaking Changes
- An op with a non-optional DynamicOutput will now error if no outputs are returned or yielded for that dynamic output.
- If an
Output
object is used to type annotate the return of an op, an Output object must be returned or an error will result.
Community Contributions
- Dagit now displays the path of the output handled by
PickledObjectS3IOManager
in run logs and Asset view. Thanks @danielgafni
Documentation
- The Hacker News example now uses stable 0.15+ asset APIs, instead of the deprecated 0.14.x asset APIs.
- Fixed the build command in the instructions for contributing docs changes.
- [dagster-dbt] The dagster-dbt integration guide now contains information on using dbt with Software-Defined Assets.
All Changes
0.15.5...0.15.6
See All Contributors
Fold asset_defs submodule into main dagster structure (#8446)
by @smackesey
Op that runs a kubernetes job (#8161)
by @gibsondan
add validation for graph backed asset graphs (#8754)
by @OwenKephart
chore: mark snapshots as generated (#8758)
by @rexledesma
[op] fix empty list output bug (#8763)
by @alangenfeld
[dagster-dbt] Allow SDAs generated with load_assets_from_dbt* to be partitioned (#8725)
by @OwenKephart
docs: update config schema descriptions for default executors (#8757)
by @rexledesma
Restore sensor daemon yielding when evaluating sensors synchronously (#8756)
by @prha
bypass bucketed queries for mysql versions that do not support it (#8753)
by @prha
[dagster-dbt] Fix error that occurs when generating events for tests that depend on sources (#8775)
by @OwenKephart
Specifying executor docs examples (#8530)
by @dpeng817
prevent multiple sensor evaluations from multithreaded race conditions (#8720)
by @prha
Fix config case for default executor (#8777)
by @dpeng817
Ensure graph inputs/outputs are included in all_dagster_types (#8736)
by @smackesey
improve error for build_schedule_from_partitioned_job with non-partitioned asset job (#8776)
by @sryza
[dagit] Bring back the global asset graph as an “all asset groups” view (#8709)
by @bengotow
fix source asset regression (#8784)
by @smackesey
fix issue with repos and partitioned scheduled asset jobs (#8779)
by @sryza
0.15.5 Changelog (#8781)
by @prha
changelog (#8788)
by @prha
Option to hide daemon heartbeat timestamp in Dagit (#8785)
by @johannkm
Fix bug with how resources are applied in materialize (#8790)
by @dpeng817
Add default_logger_defs arg to repository (#8512)
by @dpeng817
update hackernews tests to use asset invocation and materialize_to_memory (#8592)
by @dpeng817
Add MetaDataEntry.path to PickledObjectS3IOManager (#8732)
by @danielgafni
Automation: versioned docs for 0.15.5
by @elementl-devtools
add define_asset_job to __all__ (#8791)
by @sryza
eliminate incorrect SDA warnings (#8769)
by @sryza
update hacker news assets example for post-0.15.0 APIs (#7904)
by @sryza
partition mappings on graph-backed assets (#8768)
by @sryza
Snowflake IO Manager handles pandas timestamps (#8760)
by @jamiedemaria
Add Python 3.10 testing to BK and other image adjustments (#7700)
by @smackesey
Option to skip daemon heartbeats with no errors (#8670)
by @johannkm
Assorted type annotations (#8356)
by @smackesey
Bump urllib3 (#8808)
by @dependabot[bot]
Bump rsa (#8807)
by @dependabot[bot]
Bump pyyaml (#8806)
by @dependabot[bot]
Change default local grpc behavior to send back "dagster" as the entry point to use, rather than dagit's python environment (#8571)
by @gibsondan
move Metadata and Tags concept page under jobs section (#8813)
by @sryza
updates to multi-assets docs page (#8814)
by @sryza
Update asset ID to contain repository location and name (#8762)
by @clairelin135
unpin gql (#8822)
by @prha
remove unused old partitions ui (#8796)
by @prha
fix broken asset deps in hacker news example (#8809)
by @sryza
[dagit] Bump TS version (#8704)
by @hellendag
fix contributing docs (#8789)
by @prha
Better support for nested causes in dagit (#8823)
by @gibsondan
[easy] Fix docs link for RetryPolicy (#8830)
by @gibsondan
Remove the "cronjobs" permission from the helm chart (#8827)
by @gibsondan
fix gql resolver for graph-backed assets resources (#8825)
by @smackesey
refactor run storage to enable backfill status queries (#8695)
by @prha
refactor backfill / partition pages to stop run fetching (#8696)
by @prha
add multi_or_in_process_executor to __all__ (#8831)
by @smackesey
avoid apollo cache collision for partition/backfill status (#8841)
by @prha
distinguish between [] and None for asset queries (#8838)
by @prha
override batch loader to use asset records instead of legacy event materialization method (#8839)
by @prha
[dagit] Add analytics.group (#8832)
by @hellendag
[dagster-io/ui] Fix disabled Button (#8844)
by @hellendag
Fix issue where partitioned assets with resources fail materialization in dagit (#8837)
by @smackesey
[dagit] Tweak analytics function sigs (#8851)
by @hellendag
[asset-defs] allow multi assets to have group names (#8847)
by @OwenKephart
Refactor op return checking code (#8755)
by @dpeng817
[dagit] Remove frame-ancestors restriction (#8850)
by @hellendag
adjust error messages (#8853)
by @dpeng817
[dagit] Update CRA, simplify CSP (#8854)
by @hellendag
key_prefix for AssetsDefinition from_graph and from_op (#8859)
by @jamiedemaria
easy: fix dagster pandas link (#8862)
by @yuhan
executor_definition on define_asset_job (#8856)
by @sryza
include airflow_operator_to_op in apidoc (#8860)
by @sryza
add metdata_by_output_name (#8861)
by @OwenKephart
[dagster-dbt] make group configurable for load_assets_from_dbt (#8863)
by @OwenKephart
asset_partitions_def on InputContext and OutputContext (#8858)
by @sryza
[dagster-dbt] refactor the dbt asset integration (#8793)
by @OwenKephart
[dagster-dbt] seeds and snapshots are assets when using dbt build (#8794)
by @OwenKephart
PartitionMappings when non-partitioned assets depend on partitioned assets (#8866)
by @sryza
[docs] Dagster + dbt guide (#8714)
by @OwenKephart
0.15.6
by @elementl-devtools