New
- [dagit] The new Overview and Workspace pages have been enabled for all users, after being gated with a feature flag for the last several releases. These changes include design updates, virtualized tables, and more performant querying.
- The top navigation has been updated to improve space allocation, with main nav links moved to the left.
- “Overview” is the new Dagit home page and “factory floor” view, were you can find the run timeline, which now offers time-based pagination. The Overview section also contains pages with all of your jobs, schedules, sensors, and backfills. You can filter objects by name, and collapse or expand repository sections.
- “Workspace” has been redesigned to offer a better summary of your repositories, and to use the same performant table views, querying, and filtering as in the Overview pages.
@asset
and@multi_asset
now accept aretry_policy
argument. (Thanks Adam Bloom!)- When loading an input that depends on multiple partitions of an upstream asset, the
fs_io_manager
will now return a dictionary that maps partition keys to the stored values for those partitions. (Thanks andrewgryan!). JobDefinition.execute_in_process
now accepts arun_config
argument even when the job is partitioned. If supplied, the run config will be used instead of any config provided by the job’sPartitionedConfig
.- The
run_request_for_partition
method on jobs now accepts arun_config
argument. If supplied, the run config will be used instead of any config provided by the job’sPartitionedConfig
. - The new
NotebookMetadataValue
can be used to report the location of executed jupyter notebooks, and Dagit will be able to render the notebook. - Resolving asset dependencies within a group now works with multi-assets, as long as all the assets within the multi-asset are in the same group. (Thanks @peay!)
- UPathIOManager, a filesystem-agnostic IOManager base class has been added - (Thanks @danielgafni!)
- A threadpool option has been added for the scheduler daemon. This can be enabled via your
dagster.yaml
file; check out the docs. - The default LocalComputeLogManager will capture compute logs by process instead of by step. This means that for the
in_process
executor, where all steps are executed in the same process, the captured compute logs for all steps in a run will be captured in the same file. - [dagster-airflow]
make_dagster_job_from_airflow_dag
now supports airflow 2, there is also a new mock_xcom parameter that will mock all calls to made by operators to xcom. - [helm] volume and volumeMount sections have been added for the dagit and daemon sections of the helm chart.
Bugfixes
- For partitioned asset jobs whose config is a hardcoded dictionary (rather than a
PartitionedConfig
), previouslyrun_request_for_partition
would produce a run with no config. Now, the run has the hardcoded dictionary as its config. - Previously, asset inputs would be resolved to upstream assets in the same group that had the same name, even if the asset input already had a key prefix. Now, asset inputs are only resolved to upstream assets in the same group if the input path only has a single component.
- Previously, asset inputs could get resolved to outputs of the same
AssetsDefinition
, through group-based asset dependency resolution, which would later error because of a circular dependency. This has been fixed. - Previously, the “Partition Status” and “Backfill Status” fields on the Backfill page in dagit were always incomplete and showed missing partitions. This has been fixed to accurately show the status of the backfill runs.
- [dagit] When viewing the config dialog for a run with a very long config, scrolling was broken and the “copy” button was not visible. This has been fixed.
- Executors now compress step worker arguments to avoid CLI length limits with large DAGs.
- [dagster-msteams] Longer messages can now be used in Teams HeroCard - (Thanks @jayhale!)
Documentation
- API docs for InputContext have been improved - (Thanks @peay!)
- [dagster-snowflake] Improved documentation for the Snowflake IO manager
All Changes
1.0.15...1.0.16
See All Contributors
rm all_types from config_context (#10203)
by @alangenfeld
Also skip docs next (#10178)
by @jmsanders
Make handleLaunchResult agnostic to the query that returned the data (#10179)
by @salazarm
Make PythonPackages.get() more flexible to _/- (#10184)
by @jmsanders
[dagit] Invert stored state for expand/collapse in Overview pages (#10212)
by @hellendag
[config] memoize ConfigType snap creation (#10210)
by @alangenfeld
[config] avoid double init on field cache objects (#10214)
by @alangenfeld
Override default io manager in more places (#10202)
by @johannkm
Fix black (#10216)
by @johannkm
type annotations on backfill-related code paths (#9402)
by @sryza
Fix lint (#10218)
by @johannkm
Add docs for customizing the serverless base image (#9571)
by @petehunt
Skip test-project image builds (#10099)
by @jmsanders
[dagit] Updated asset details event view (#10143)
by @bengotow
[dagit] Fix AssetView.test key warnings (#10226)
by @hellendag
Also trigger builds when tox.ini changes (#10209)
by @jmsanders
1.0.15 changelog (#10227)
by @jamiedemaria
Automation: versioned docs for 1.0.15
by @elementl-devtools
add materialization property on dagster event (#10230)
by @prha
Parse HEAD commit in addition to BUILDKITE_MESSAGE (#10208)
by @jmsanders
Allow default io_manager load_input to support partitions of differing frequencies (#10172)
by @andrewgryan
Install the correct dagster-buildkite CLI (#10211)
by @jmsanders
Type annotations in dagster-graphql (#10005)
by @smackesey
fix black, mypy (#10235)
by @prha
[freshness-policy] [1/n] FreshnessPolicy object (#10024)
by @OwenKephart
Break up sensor_definition.py (#10181)
by @sryza
Highlight config entry when being hovered in yaml editor (#10239)
by @salazarm
Resolve multi-asset deps when they have the same group (#10222)
by @peay
update apidoc for postgres (#10241)
by @prha
fix schedules threading config (#10247)
by @alangenfeld
[dagit] Ship Overview/Workspace (#10245)
by @hellendag
Fix stray references to define_assets_job (#10199)
by @bengotow
captured log manager (#9429)
by @prha
Allow for longer messages in Teams HeroCard (#10234)
by @jayhale
[dagit] Clean up code post-Overview changes (#10249)
by @hellendag
[dagit] Move the refresh indicator on asset details pages to avoid flicker (#10253)
by @bengotow
[dagit] Fix issues with embedding fonts in downloaded DAG SVGs (#10252)
by @bengotow
[dagit] Fix daylight savings issue in humanCronString.test (#10263)
by @hellendag
[dagit] Make 50-level colors opaque (#10186)
by @hellendag
[dagit] Add query countdown/refresh to Timeline (#10250)
by @hellendag
Support overriding run config for partitions with execute_in_process (#10246)
by @sryza
Add calendar icon (#10267)
by @salazarm
UPathIOManager - filesystem-agnostic IOManager base (#10193)
by @danielgafni
rename logKey to fileKey / logFileKey for disambiguation with new API (#9956)
by @prha
fix some cases in group-based asset dep resolution (#10266)
by @sryza
dagster-io/ui release notes (#10269)
by @salazarm
fix UnresolvedAssetJobDefinition.run_request_for_partition when confi… (#10238)
by @sryza
Improve doc for
InputContext.{dagster_type,metadata} (#10242)
by @peay
Fetch asset materialization planned event from index shard in Sqlite (#10248)
by @clairelin135
fix #9193: add retry policy to @asset and @multi_asset (#10150)
by @adam-bloom
adds dagster-aws install to dockerfile in docker deployment guide (#10225)
by @jamiedemaria
keep storage name for serialized event backcompat (#10280)
by @prha
graphql for captured log subscription (#9957)
by @prha
Add NotebookMetadataValue (#10278)
by @jamiedemaria
Add volumes and volumeMounts to dagit and daemon in OSS helm chart (#10285)
by @gibsondan
support new captured log API for process-based execution (#9958)
by @prha
add new capture APIs in frontend queries (#9959)
by @prha
specify schema in pandas to_sql (#10289)
by @jamiedemaria
[dagit] Fix AssetView flakiness (#10293)
by @hellendag
[dagit] Middle-truncate asset key path in virtualized list (#10275)
by @hellendag
Snowflake IO Manager API docs (#10175)
by @jamiedemaria
Compress execute_step args (#10244)
by @johannkm
fix black formatting (#10298)
by @prha
fix backfill table status (#10295)
by @prha
run_config argument on run_request_for_partition (#10279)
by @sryza
[dagit] NotebookMetadataValue support (#10287)
by @jamiedemaria
[dagit] Fix very tall configs in run config dialog (#10301)
by @hellendag
Observable source asset decorator (#9899)
by @smackesey
convert NoOpComputeLogManager to support captured log API (#9960)
by @prha
convert S3 compute log manager to support new captured log API (#9961)
by @prha
Test createdBefore run filter (#10270)
by @benpankow
fix build; isort; black (#10303)
by @prha
Fix example scaffold (#10003)
by @smackesey
Add version to asset decorator (#10167)
by @smackesey
Fix logic to run lints on builds (#10304)
by @jmsanders
Don't repeat skip logs (#10307)
by @jmsanders
[jog] Add a utility method to execute op inside of graph (#10255)
by @dpeng817
[jog] execution_tests,hook_tests (#10254)
by @dpeng817
Revert "convert S3 compute log manager to support new captured log API (#9961) (#10311)
by @prha
[docs] Automatically toggle tab components to display URL hash/anchor (#10231)
by @benpankow
[dagstermill] notebook backed assets (#10277)
by @jamiedemaria
notebook and assets example project (#10315)
by @jamiedemaria
[dagster-airbyte][managed-elements] Explicit handling of reconciling secret values (#10195)
by @benpankow
[dagster-airflow] add airflow 2 support to
make_dagster_job_from_airflow_dag + xcom mock option (#10337)
by @Ramshackle-Jamathon
1.0.16 changelog (#10340)
by @alangenfeld
1.0.16
by @elementl-devtools