Dagster Versions Save

An orchestration platform for the development, production, and observation of data assets.

1.1.20

1 year ago

New

  • The new @graph_asset and @graph_multi_asset decorators make it more ergonomic to define graph-backed assets.

  • Dagster will auto-infer dependency relationships between single-dimensionally partitioned assets and multipartitioned assets, when the single-dimensional partitions definition is a dimension of the MultiPartitionsDefinition.

  • A new Test sensor / Test schedule button that allows you to perform a dry-run of your sensor / schedule. Check out the docs on this functionality here for sensors and here for schedules.

  • [dagit] Added (back) tag autocompletion in the runs filter, now with improved query performance.

  • [dagit] The Dagster libraries and their versions that were used when loading definitions can now be viewed in the actions menu for each code location.

  • New bigquery_pandas_io_manager can store and load Pandas dataframes in BigQuery.

  • [dagster-snowflake, dagster-duckdb] SnowflakeIOManagers and DuckDBIOManagers can now default to loading inputs as a specified type if a type annotation does not exist for the input.

  • [dagster-dbt] Added the ability to use the “state:” selector

  • [dagster-k8s] The Helm chart now supports the full kubernetes env var spec for Dagit and the Daemon. E.g.

    dagit:
      env:
      - name: “FOO”
        valueFrom:
          fieldRef:
            fieldPath: metadata.uid
    

Bugfixes

  • Previously, graphs would fail to resolve an input with a custom type and an input manager key. This has been fixed.
  • Fixes a bug where negative partition counts were displayed in the asset graph.
  • Previously, when an asset sensor did not yield run requests, it returned an empty result. This has been updated to yield a meaningful message.
  • Fix an issue with a non-partitioned asset downstream of a partitioned asset with self-dependencies causing a GQL error in dagit.
  • [dagster-snowflake-pyspark] Fixed a bug where the PySparkTypeHandler was incorrectly loading partitioned data.
  • [dagster-k8s] Fixed an issue where run monitoring sometimes failed to detect that the kubernetes job for a run had stopped, leaving the run hanging.

Documentation

  • Updated contributor docs to reference our new toolchain (ruff, pyright).
  • (experimental) Documentation for the dynamic partitions definition is now added.
  • [dagster-snowflake] The Snowflake I/O Manager reference page now includes information on working with partitioned assets.

All Changes

https://github.com/dagster-io/dagster/compare/1.1.19...1.1.20

See All Contributors
  • c488fdb - disable check_same_thread on in-memory sqlite storage (#12229) by @alangenfeld
  • 370093d - [direct invoke] yield implicit Nothing Output (#12309) by @alangenfeld
  • 8a42a96 - Fix multipartitions run length encoding error (#12329) by @clairelin135
  • 268ac07 - [freshness-policies] Allow setting freshness policies when using graph-backed assets (#12357) by @OwenKephart
  • baab234 - Add skip reason to asset sensor (#12343) by @OwenKephart
  • 49fb47f - Fix partitions backfill deserialization error (#12238) by @clairelin135
  • 840fda0 - Move CachingRepositoryData.from_list and from_dict into standalone function (#12321) by @schrockn
  • 9732826 - refactor(databricks): divest from databricks_api in favor of databricks-cli (#12153) by @rexledesma
  • b573daa - nullsafe array index access (#12362) by @salazarm
  • 7962972 - Change schedule button text (#12361) by @dpeng817
  • 17ea06c - [dagit] add full serialized error to graphql errors (#12228) by @alangenfeld
  • 5ebe64a - [dagster-pandas][dagster-pandera] assign a typing_type for generated pandas dataframe DagsterTypes (#12363) by @OwenKephart
  • 5238e6f - [typing/static] Execution API types (#12330) by @smackesey
  • 84aa559 - [refactor] DependencyDefinition renames (#12338) by @smackesey
  • 2779527 - [refactor] execute_step renames (#12354) by @smackesey
  • e81c9b1 - [typing/runtime] Standardize StepInputSource.load_input_object (#12342) by @smackesey
  • 915feb5 - [refactor] Delete NodeInput.solid_name (#12339) by @smackesey
  • 3fe5dcd - [refactor] NodeDefiniton.iterate_solid_defs -> iterate_op_defs (#12336) by @smackesey
  • 85226fd - [refactor] GraphDefinition method renames (#12335) by @smackesey
  • 0d62593 - [2/n][structured config] Enable struct config resources, IO managers to depend on other resources (#11645) by @benpankow
  • c8e4fb2 - [refactor] local var/private arg solid -> node (#12337) by @smackesey
  • ec70f8a - DagsterLibraryRegistry (#12266) by @alangenfeld
  • 47dc694 - [refactor] misc core solid -> node renames (#12368) by @smackesey
  • 15a5c59 - [refactor] dagster._core.definitions.solid_container -> node_container (#12369) by @smackesey
  • ef8da99 - [refactor] Assorted local var solid -> node (#12370) by @smackesey
  • cf847f4 - Fix intermittent dynamic partitions table SQLite concurrency error (#12367) by @clairelin135
  • 7f398b5 - change storage signature for run tags (#12348) by @prha
  • 447f931 - 1.1.19 Changelog (#12378) by @OwenKephart
  • 85c1ac5 - guide to how assets relate to ops and graphs (#12204) by @sryza
  • 39500d8 - [pythonic config] Rename pythonic config classes (#12235) by @benpankow
  • 8783d2f - updates tests to handle new kubernetes resources field (#12395) by @alangenfeld
  • b592861 - [structured config] Migrate resources from project-fully-featured to struct config resources (#11785) by @benpankow
  • fbd6a8f - refactor(databricks): add types to databricks.py (#12364) by @rexledesma
  • cc6ddf9 - refactor(databricks): consolidate types (#12366) by @rexledesma
  • d9f0bda - add dagster_libraries to ListRepositoriesResponse (#12267) by @alangenfeld
  • 18cc0c1 - [graphql] add RepositoryLocation.dagsterLibraryVersions (#12268) by @alangenfeld
  • b31c14f - [dagit] add dagster libraries menu to code location row (#12315) by @alangenfeld
  • 19dac72 - 1.1.19 changelog: reorder code block (#12402) by @yuhan
  • c251806 - refactor(databricks): use databricks_cli's raw api client (#12377) by @rexledesma
  • 532ced5 - [docs] [snowflake] Add partitions to snowflake guide (#12231) by @jamiedemaria
  • cf0779b - Add valid start time check to materialized time partitions subsets (#12403) by @clairelin135
  • 55ec34a - Add api docs for some PartitionsDefinition and PartitionMapping classes (#12365) by @sryza
  • 3fd1174 - Add text to timestamp dropdown (#12379) by @dpeng817
  • 866a100 - [refactor] IExecutionStep.solid_handle -> node_handle (#12371) by @smackesey
  • 82901d3 - [asset-reconciliation] Factor in more run statuses (#12412) by @OwenKephart
  • c132dce - [refactor] *ExecutionContext.solid_config -> op_config (#12372) by @smackesey
  • fa3418e - [refactor] ResolvedRunConfig.solids -> ops (#12373) by @smackesey
  • 5f4cb11 - Automation: versioned docs for 1.1.19 by @elementl-devtools
  • d109e89 - [refactor] assorted Dagstermill renames (#12380) by @smackesey
  • 4ce1f6f - [refactor] Context solid renames (#12374) by @smackesey
  • ded407f - lambda_solid -> solid (#10816) by @smackesey
  • a090efa - [refactor] Assorted pipeline_run -> dagster_run (#12383) by @smackesey
  • a1d5d14 - Make a script to template out new dagster packages (#12389) by @jamiedemaria
  • e660cd8 - [library template] add registry call (#12418) by @alangenfeld
  • 074ae45 - [db io managers] connection refactor (#12258) by @jamiedemaria
  • 4a04e26 - Code location alerting docs (#12411) by @dpeng817
  • be7050e - [refactor] remove @solid decorator (#10952) by @smackesey
  • 9a3a8e2 - [refactor] Delete PipelineRunsFilter (#12384) by @smackesey
  • c39e007 - [db io managers] add default_load_type (#12356) by @jamiedemaria
  • 5eeab19 - [refactor] Delete RunRecord.pipeline_run (#12385) by @smackesey
  • 4ba803c - [refactor] pipeline_run_from_storage -> dagster_run_from_storage (#12386) by @smackesey
  • 1884193 - [Docs RFC] Dynamic Partitions (#12227) by @clairelin135
  • 2e2eca1 - Auto infer multipartition <-> single dimension mapping (#12400) by @clairelin135
  • 79f9ecf - [refactor] execution pipeline_run -> dagster_run (#12388) by @smackesey
  • e1d3579 - [test-api-update] execution_tests/dynamic_tests (#12427) by @smackesey
  • d48a889 - Consider the run worker unhealthy is the job has no active pods but the run is in a non-terminal state (#11510) by @gibsondan
  • 4474da1 - fix: only inspect schema when we may create tables (#12269) by @plaflamme
  • 61ed1c6 - More helpful asset key mismatch errors (#12008) by @benpankow
  • 7536b6f - Add docs for testing schedules/sensors via UI (#12381) by @dpeng817
  • ad6f84f - document missing breaking change in 1.1.19 changelog (#12424) by @sryza
  • 636b58f - BigQuery IO manager (#11425) by @jamiedemaria
  • 8ea58dc - [dagster-gcp-pandas] API docs fix (#12450) by @jamiedemaria
  • 392ee40 - [graphql] launch backfills over assets with different partitionings, if all roots have same partitioning (#11827) by @sryza
  • 1783fad - Fix resolution error with input manager key and custom dagster type (#12449) by @clairelin135
  • bf84d43 - [dagster-dbt] Add ability to use the "state:" selector (#12432) by @OwenKephart
  • 98bc51c - Revert "More helpful asset key mismatch errors (#12008)" (#12459) by @benpankow
  • 2aba792 - [dagit] Add missing React keys to prevent new warning toasts (#12210) by @bengotow
  • 49a07e6 - [CustomConfirmationDialog] Allow overriding the button text (#12444) by @salazarm
  • 8f5f31b - add another todo to create_dagster_package (#12453) by @jamiedemaria
  • 74f70c9 - [dagster-gcp-pandas] register library in init (#12469) by @jamiedemaria
  • 2fc07dc - [bugfix] fix projected logical version resolution for asset downstream of self-dep (#12443) by @smackesey
  • 00a5d89 - fix: resolve correct legacy arguments for emr pyspark step launcher (#12419) by @rexledesma
  • 9116e08 - [dagster-dbt] Add missing files for tests (#12471) by @OwenKephart
  • 27808ac - Add task_role_arn and execution_role_arn to EcsContainerContext (#12358) by @gibsondan
  • 314b968 - dagster-census api docs (#12413) by @yuhan
  • c4f158d - graph_asset and graph_multi_asset decorators (#10152) by @sryza
  • 9fa10cb - [dagster-snowflake-pyspark] fix bug loading partitions (#12472) by @jamiedemaria
  • 736fff5 - Add stale status causes (#11953) by @smackesey
  • 925e596 - Update Contributing doc with instructions for ruff/pyright (#12481) by @smackesey
  • 011e20f - [bigquery] mark bigquery io manager experimental (#12479) by @jamiedemaria
  • 4c74851 - fix (#12477) by @salazarm
  • 2214ad6 - add graphql fields for querying run tags (#12409) by @prha
  • f131a97 - add partial tag autocomplete for run filter input (#12410) by @prha
  • 1e4aa98 - Update GQL to expose StaleStatus and StaleStatusCause (#11952) by @smackesey
  • 6d04e2c - Support env valueFrom in Helm chart (#12425) by @johannkm
  • db78b85 - Fix state status logical version test (#12484) by @smackesey
  • 1f4ccd5 - use opt_nullable_mapping for dagster library versions (#12487) by @alangenfeld
  • c56e843 - fix ruff (#12486) by @alangenfeld
  • f120431 - [pythonic resources] Clean up initialization of env vars, treat resource objects as immutable (#12445) by @benpankow
  • aa3b46e - [structured config] Add support for Selectors w/ pydantic discriminated unions (#11280) by @benpankow
  • 5a0145e - [pythonic resources] Last set of class renames (#12490) by @benpankow
  • fc27360 - Allow setting logical version inside op (#12189) by @smackesey
  • dc0f85a - Add example of customizing task role and execution role arn to the ECS agent docs (#12491) by @gibsondan
  • fc7161b - Remove existing RunConfig class (#12488) by @benpankow
  • 903a297 - [pythonic config] Add structured RunConfig object for specifying runtime, job config (#11965) by @benpankow
  • e46226f - [draft][pythonic config][docs] Introduce intro to Resources doc utilizing Pythonic resources (#12260) by @benpankow
  • c910a6d - [draft][pythonic config][docs] Introduce intro to Config doc utilizing Pythonic config (#12349) by @benpankow
  • f7fa87b - 1.1.20 changelog (#12506) by @benpankow
  • 7eb5a8f - [fix] fix sphinx airflow version parsing (#12507) by @benpankow
  • 8c9f54a - 1.1.20 by @elementl-devtools

1.1.19

1 year ago

New

  • The FreshnessPolicy object now supports a cron_schedule_timezone argument.
  • AssetsDefinition.from_graph now supports a freshness_policies_by_output_name parameter.
  • The @asset_sensor will now display an informative SkipReason when no new materializations have been created since the last sensor tick.
  • AssetsDefinition now has a to_source_asset method, which returns a representation of this asset as a SourceAsset.
  • You can now designate assets as inputs to ops within a graph or graph-based job. E.g.
from dagster import asset, job, op

@asset
def emails_to_send():
    ...

@op
def send_emails(emails) -> None:
    ...

@job
def send_emails_job():
    send_emails(emails_to_send.to_source_asset())
  • Added a --dagit-host/-h argument to the dagster dev command to allow customization of the host where Dagit runs.
  • [dagster-snowflake, dagster-duckdb] Database I/O managers (Snowflake, DuckDB) now support static partitions, multi-partitions, and dynamic partitions.

Bugfixes

  • Previously, if a description was provided for an op that backed a multi-asset, the op’s description would override the descriptions in Dagit for the individual assets. This has been fixed.
  • Sometimes, when applying an input_manager_key to an asset’s input, incorrect resource config could be used when loading that input. This has been fixed.
  • Previously, the backfill page errored when partitions definitions changed for assets that had been backfilled. This has been fixed.
  • When displaying materialized partitions for multipartitioned assets, Dagit would error if a dimension had zero partitions. This has been fixed.
  • [dagster-k8s] Fixed an issue where setting runK8sConfig in the Dagster Helm chart would not pass configuration through to pods launched using the k8s_job_executor.
  • [dagster-k8s] Previously, using the execute_k8s_job op downstream of a dynamic output would result in k8s jobs with duplicate names being created. This has been fixed.
  • [dagster-snowflake] Previously, if the schema for storing outputs didn’t exist, the Snowflake I/O manager would fail. Now it creates the schema.

Breaking Changes

  • Removed the experimental, undocumented asset_key, asset_partitions, and asset_partitions_defs arguments on Out.
  • @multi_asset no longer accepts Out values in the dictionary passed to its outs argument. This was experimental and deprecated. Instead, use AssetOut.
  • The experimental, undocumented top_level_resources argument to the repository decorator has been renamed to _top_level_resources to emphasize that it should not be set manually.

Community Contributions

  • load_asset_values now accepts resource configuration (thanks @Nintorac!)
  • Previously, when using the UPathIOManager, paths with the "." character in them would be incorrectly truncated, which could result in multiple distinct objects being written to the same path. This has been fixed. (Thanks @spenczar!)

Experimental

  • [dagster-dbt] Added documentation to our dbt Cloud integration to cache the loading of software-defined assets from a dbt Cloud job.

Documentation

  • Revamped the introduction to the Partitions concepts page to make it clear that non-time-window partitions are equally encouraged.
  • In Navigation, moved the Partitions and Backfill concept pages to their own section underneath Concepts.
  • Moved the Running Dagster locally guide from Deployment to Guides to reflect that OSS and Cloud users can follow it.
  • Added a new guide covering asset versioning and caching.

All Changes

https://github.com/dagster-io/dagster/compare/1.1.18...1.1.19

See All Contributors
  • f5eeb35 - feat(dagster-dbt): support dbt-core 1.4.x (#11902) by @rexledesma
  • 573be92 - Fixes/improvements for pyright script (#12175) by @smackesey
  • d949c6e - nux examples in oss 1/: add dagster_cloud.yaml to prep cloud nux onboarding (#12172) by @yuhan
  • 6b7050f - [dagster-dbt] [1/2] Add streaming entrypoint for dbt cli execution (#12086) by @OwenKephart
  • 3a3d1fc - Fix import (#12185) by @OwenKephart
  • 3979da0 - (tick-testing 3/6) type annotations to schedules gql (#12057) by @dpeng817
  • 5974f1c - (tick-testing 4/6) mutation to dry-run sensor (#11616) by @dpeng817
  • 7dbebdc - [db io managers] support static partitions (#12129) by @jamiedemaria
  • 5265a0b - Pass correct config to io manager when using input_manager_key (#12053) by @jamiedemaria
  • 26e219c - [dagster-dbt] [2/2] Add ability to stream events while executing dbt assets (#12100) by @OwenKephart
  • 1d250c3 - Agent downtime alert docs (#12186) by @johannkm
  • 2abe250 - (tick-testing 5/6) Add SensorType (#12021) by @dpeng817
  • 415c875 - (tick-testing 6/6) Add dry run mutations for schedules (#11869) by @dpeng817
  • c1b1dc4 - [dagit] Add some icons for Cloud (#12187) by @hellendag
  • e0ed9c1 - [1/n][structured config] Add ability to runtime-configure struct-config resources (#11773) by @benpankow
  • 8b69bcd - fix pyright (#12193) by @jamiedemaria
  • 1667301 - [dagit] Storybooks for asset partition and event details + dayJS fix (#12178) by @bengotow
  • 7aecf4a - [dagster-wandb] Integration with Weights & Biases (#10470) by @chrishiste
  • 6ad4a55 - Store the instance ref on the grpc server class if it's present, so that grpc api calls can use it if it's there (#12194) by @gibsondan
  • 1435228 - W&B integration follow up 2/ update example to defs (#12059) by @yuhan
  • ad2c225 - nux examples in oss 2/: add required env vars in README's front matter (#12154) by @yuhan
  • be4677c - Sensor testing UI (#12148) by @salazarm
  • a2cba5f - validate time partition keys when adding to a TimeWindowPartitionsSubset (#12195) by @OwenKephart
  • ad650ea - Make Partition GRPC calls with instance_ref args optional (#12196) by @clairelin135
  • 7150223 - Add public api doc for create_repository_using_definitions_args, update typehints, and cleanup Definitions docstring (#12176) by @schrockn
  • 33709f6 - [dagster-airflow] [docs] migration guide updates/considerations (#12198) by @Ramshackle-Jamathon
  • 3ba9203 - [dagster-airflow] refactor airflow_db resources (#12202) by @Ramshackle-Jamathon
  • b247568 - Fix alert docs (#12208) by @johannkm
  • edfe983 - Temporarily disable pyright in BK (#12212) by @smackesey
  • 2c05ba4 - Rename "Loading multiple repositories" section in workspace files docs (#12201) by @gibsondan
  • 796d49b - Make top_level_resources argument _top_level_resources (#12211) by @schrockn
  • 687ff73 - Revert "nux examples in oss 2/: add required env vars in README's front matter" (#12199) by @yuhan
  • 53de50a - Pyright config/script fixes and improvements (#12206) by @smackesey
  • e61dbe8 - Add guide for observable source assets and versioning (#12118) by @schrockn
  • ac068c1 - 1.1.18 Changelog (#12217) by @smackesey
  • 92048a7 - Fix dagster-wandb placeholder (#12222) by @smackesey
  • 88a15ee - Add "--dagit-host" arg to dagster dev (#12220) by @gibsondan
  • b604a4b - diff against origin/master in quick_pyright (#12200) by @sryza
  • 53683f0 - Re-enable pyright in BK (#12214) by @smackesey
  • 6b1a802 - Remove restart-on-failure from local docker agent guide (#12224) by @gibsondan
  • ce76307 - [dagit] Storybooks for MetadataEntry rendering (#12177) by @bengotow
  • 6087efe - Add airbyte guide to experimental guide index (#12207) by @smackesey
  • 601bd2e - Automation: versioned docs for 1.1.18 by @elementl-devtools
  • 5b80529 - Schedules Testing UI (#12160) by @salazarm
  • 3e6d8b8 - Keep dots in paths in UPathIOManager (#12174) by @spenczar
  • b4e58cb - remove Out.asset_key (#12221) by @sryza
  • 0db1186 - [structured config] Fix env vars not working with direct Resource instantiation (#11468) by @benpankow
  • 5d1d126 - allow using SourceAssets to satisfy node inputs in non-asset jobs (#12091) by @sryza
  • 3111417 - Add observe function (source asset analogue to materialize) (#11996) by @smackesey
  • 538660f - treat pyright warnings as errors for buildkite purposes (#12239) by @gibsondan
  • 983cc4f - Update serverless docs with new run isolation default (#12225) by @johannkm
  • d30a792 - docs(dbt-cloud): add instructions to cache dbt Cloud compilation (#11793) by @rexledesma
  • 6337e12 - Allow dagster api grpc --max-workers (#12246) by @smackesey
  • 60bc7e4 - Allow Ursula to test dynamic partition writes (#12215) by @clairelin135
  • 6c3e30b - [docs] fix dbt tutorial error (#12255) by @jamiedemaria
  • 56d4ae3 - [docs] - Correct name of freshness sensor context object (#12250) by @erinkcochran87
  • ec52a24 - document system tags on metadata/tags page (#12256) by @sryza
  • 4e66e83 - [dagster-airflow] remove ref to cli (#12262) by @Ramshackle-Jamathon
  • e480522 - Revamp intro of partitions concepts page (#12257) by @sryza
  • 06c872d - Remove @experimental from build_assets_job and build_source_asset_observation_job (#12252) by @smackesey
  • 161d7fc - [fix] Surface the correct description for multi-assets when a description is provided for the op (#12271) by @OwenKephart
  • 7f4310d - remove legacy APIs from dagster-k8s tests (#12020) by @sryza
  • d798ff5 - Use Definitions in the body of materialize functions (and other public-facing execution functions) (#12038) by @schrockn
  • 0f2d72f - [typing/static] assets (#12003) by @smackesey
  • 9b58d82 - [typing/runtime] Make GraphDefinition.create_adjacency_lists internally public (#12291) by @smackesey
  • bc9f2fb - [typing/runtime] add AssetsDefinition.partition_mappings (#12290) by @smackesey
  • d2a7fde - in docs navigation, make partitions independent from schedules (#12264) by @sryza
  • 085a274 - [typing/static] storage (#12283) by @smackesey
  • 24b6c16 - [api docs] Show PartitionsDefinition doc strings on docs site (#12265) by @jamiedemaria
  • ac1510f - [db io manager] Support MultiPartitions (#12165) by @jamiedemaria
  • 4648e41 - load asset value config (#10991) by @Nintorac
  • 60fde53 - remove some handling for solid in composition.py (#12278) by @sryza
  • 5e36223 - Add shortcuts for '--dagit-host' and '--dagit-port' to dagster dev (#12301) by @gibsondan
  • 9bb417a - [typing/runtime] [gql] eliminate resolver **kwargs (2) (#12241) by @smackesey
  • 8a8ad96 - [typing/runtime] [gql] eliminate resolver **kwargs (4) (#12243) by @smackesey
  • 7938dd6 - [typing/runtime] [gql] eliminate resolver **kwargs (5) (#12244) by @smackesey
  • a830240 - [Runs Table] Open link in new tab (#12307) by @salazarm
  • af4f84d - [typing/runtime] [gql] eliminate resolver **kwargs (3) (#12242) by @smackesey
  • 5dc1bd2 - add types and break up big functions in dagstermill impl (#12274) by @sryza
  • 8af0a43 - [typing/runtime] [gql] eliminate resolver **kwargs (1) (#11724) by @smackesey
  • 977da88 - add cloud to scaffold (#12306) by @slopp
  • 0750ac1 - [typing/runtime] Remove unnecessary isinstance checks (#12287) by @smackesey
  • 232a7ec - [typing/runtime] Make AssetKey.to_string always return AssetKey (#12285) by @smackesey
  • f50333a - [typing/runtime] Refactor cached_method (#12004) by @smackesey
  • b7a4647 - Remove mypy from tox files (#12112) by @smackesey
  • d425ba1 - [typing/runtime] Asset graph comparisons (#12286) by @smackesey
  • 5d763af - refactor(databricks): remove legacy Dagster definitions (#12150) by @rexledesma
  • 9661a54 - docs: update scaffold to use dagster dev (#12297) by @rexledesma
  • 244d949 - [db io managers] create schema if not exist (#11764) by @jamiedemaria
  • f2e2220 - AssetsDefinition.to_source_asset (#12203) by @sryza
  • 6d6c8c6 - in tags doc, fix schedule tag and add sensor tag (#12313) by @sryza
  • 97b108d - Simplify buildkite-build-test-project-image (#12029) by @gibsondan
  • da0af86 - Move repository_definition into subpackage (#12318) by @schrockn
  • 2da80d6 - Break up repository_definition subpackage into multiple files (#12319) by @schrockn
  • 9de4608 - [docs] - Build on local Dagster guide (#12168) by @erinkcochran87
  • a5df78d - [freshness-policies] add a cron_schedule_timezone argument to the FreshnessPolicy class (#12263) by @OwenKephart
  • 4929d2f - [typing/runtime] Refactor subset selection tree (#12289) by @smackesey
  • f0917e4 - Fix unimported symbol BK (#12327) by @smackesey
  • b7049ce - nux examples in oss 3/: sync dagster-io/quickstart-*/setup.py to example/* (#12234) by @yuhan
  • 92a3647 - [dagster-k8s] In the execute_k8s_job op, use step key to generate the k8s job name (#12344) by @OwenKephart
  • e318f3d - Include instance-level / code-location-level runK8sConfig in step pods (#12308) by @gibsondan
  • d703502 - remove unused lazy-repository docs snippet (#12277) by @sryza
  • 00a692a - [asset-reconciliation][perf] Perf regression tests (#12230) by @OwenKephart
  • 4075281 - s/_CacheingDefinitionIndex/CacheingDefinitionIndex/g (#12320) by @schrockn
  • 39f7c10 - [typing/runtime] Massage set flattening (#12288) by @smackesey
  • c350247 - [asset-reconciliation][perf] Better caching of most recent materializations (#12237) by @OwenKephart
  • 1fa7a97 - [db io managers] Dynamic Partition tests (#12216) by @jamiedemaria
  • 94d89b2 - bump limit (#12355) by @OwenKephart
  • 8b60154 - Fix multipartitions run length encoding error (#12329) by @clairelin135
  • 3a81d7f - [freshness-policies] Allow setting freshness policies when using graph-backed assets (#12357) by @OwenKephart
  • eb907dd - nullsafe array index access (#12362) by @salazarm
  • 2fc5a74 - Change schedule button text (#12361) by @dpeng817
  • 43baeee - [dagster-pandas][dagster-pandera] assign a typing_type for generated pandas dataframe DagsterTypes (#12363) by @OwenKephart
  • 31fa364 - Fix partitions backfill deserialization error (#12238) by @clairelin135
  • c1ab9a3 - 1.1.19 Changelog (#12378) by @OwenKephart
  • 3af8cf3 - guide to how assets relate to ops and graphs (#12204) by @sryza
  • a5dfd5e - updates tests to handle new kubernetes resources field (#12395) by @alangenfeld
  • e1d4cbd - 1.1.19 changelog: reorder code block (#12402) by @yuhan
  • 8bf470b - 1.1.19 by @elementl-devtools

1.1.18

1 year ago

New

  • Assets with time-window PartitionsDefinitions (e.g. HourlyPartitionsDefinition, DailyPartitionsDefinition) may now have a FreshnessPolicy.
  • [dagster-dbt] When using load_assets_from_dbt_project or load_assets_from_dbt_manifest with dbt-core>=1.4, AssetMaterialization events will be emitted as the dbt command executes, rather than waiting for dbt to complete before emitting events.
  • [dagster-aws] When run monitoring detects that a run unexpectedly crashed or failed to start, an error message in the run’s event log will include log messages from the ECS task for that run to help diagnose the cause of the failure.
  • [dagster-airflow] added make_ephemeral_airflow_db_resource which returns a ResourceDefinition for a local only airflow database for use in migrated airflow DAGs
  • Made some performance improvements for job run queries which can be applied by running dagster instance migrate.
  • [dagit] System tags (code + logical versions) are now shown in the asset sidebar and on the asset details page.
  • [dagit] Source assets that have never been observed are presented more clearly on the asset graph.
  • [dagit] The number of materialized and missing partitions are shown on the asset graph and in the asset catalog for partitioned assets.
  • [dagit] Databricks-backed assets are now shown on the asset graph with a small “Databricks” logo.

Bugfixes

  • Fixed a bug where materializations of part of the asset graph did not construct required resource keys correctly.
  • Fixed an issue where observable_source_asset incorrectly required its function to have a context argument.
  • Fixed an issue with serialization of freshness policies, which affected cacheable assets that included these policies such as those from dagster-airbyte
  • [dagster-dbt] Previously, the dagster-dbt integration was incompatible with dbt-core>=1.4. This has been fixed.
  • [dagster-dbt] load_assets_from_dbt_cloud_job will now avoid unnecessarily generating docs when compiling a manifest for the job. Compile runs will no longer be kicked off for jobs not managed by this integration.
  • Previously for multipartitioned assets, context.asset_partition_key returned a string instead of a MultiPartitionKey. This has been fixed.
  • [dagster-k8s] Fixed an issue where pods launched by the k8s_job_executor would sometimes unexpectedly fail due to transient 401 errors in certain kubernetes clusters.
  • Fix a bug with nth-weekday-of-the-month handling in cron schedules.

Breaking Changes

  • [dagster-airflow] load_assets_from_airflow_dag no longer creates airflow db resource definitions, as a user you will need to provide them on Definitions directly

Deprecations

  • The partitions_fn argument of the DynamicPartitionsDefinition class is now deprecated and will be removed in 2.0.0.

Community Contributions

  • [dagster-wandb] A new integration with Weights & Biases allows you to orchestrate your MLOps pipelines and maintain ML assets with Dagster.
  • Postgres has been updated to 14.6 for Dagster’s helm chart. Thanks @DustyShap!
  • Typo fixed in docs. Thanks @C0DK!
  • You can now pass a callable directly to asset (rather than using @asset in decorator form) to create an asset. Thanks @ns-finkelstein!

Documentation

  • New “Asset versioning and caching” guide
  • [dagster-snowflake] The Snowflake guide has been updated to include PySpark dataframes
  • [dagster-snowflake] The Snowflake guide has been updated to include private key authentication
  • [dagster-airflow] The Airflow migration guide has been update to include more detailed instructions and considerations for making a migration

All Changes

https://github.com/dagster-io/dagster/compare/1.1.17...1.1.18

See All Contributors
  • d6c9255 - Add google analytics tracking query param to slack link from OSS (#12024) by @salazarm
  • 08771c5 - Add --working-directory argument to dagster dev (#12026) by @gibsondan
  • 257fe9b - [dagster-fivetran] Add option to force-create materializations for tables not in API response (#11972) by @benpankow
  • badf42e - docs: removed typo from install.mdx (#12022) by @clayheaton
  • 79dba3f - [dagit] Fix use of fragments causing Apollo caching error in partition health (#12030) by @bengotow
  • 58d3ed6 - [dagster-airflow] use full timestamp for partition name (#12034) by @Ramshackle-Jamathon
  • a8dce03 - [dagster-airflow] airflow retry support (#11954) by @Ramshackle-Jamathon
  • dea08a3 - Change endpoints to the ones that are used by airbyte UI (#12012) by @emilija-omnisend
  • a7dda11 - lint fix (#12044) by @benpankow
  • 32e3776 - feat(dbt-cloud): compile run only if job has environment variable cache (#12042) by @rexledesma
  • fe59ca7 - fix(dbt-cloud): inherit generate docs settings for compile run (#12043) by @rexledesma
  • 303ff04 - skip import test on windows (#12048) by @alangenfeld
  • 7523cbb - 1.1.15 changelog (#12051) by @jamiedemaria
  • 4529f46 - [pyright] [scripts] misc (#11923) by @smackesey
  • 35321cd - accept UndefinedAssetJob in run status sensors (#12054) by @jamiedemaria
  • fd18525 - Enable use of arguments when using the asset function directly instead of as a decorator (#11903) by @nsfinkelstein
  • a920b29 - Automation: versioned docs for 1.1.15 by @elementl-devtools
  • 74eac38 - Bump Postgres to 14.6 (#12015) by @DustyShap
  • 389b47b - make black (#12078) by @alangenfeld
  • 71db85d - Construct required resources correctly when materializing partial asset graphs (#12052) by @jamiedemaria
  • 3799c1a - Fix context.asset_partition_key for multidimensional partitions (#12035) by @clairelin135
  • 2e9e165 - Install dagster-managed-elements when appropriate (#12046) by @jmsanders
  • 08b2a0b - Bump http-cache-semantics from 4.1.0 to 4.1.1 in /js_modules/dagit (#12080) by @dependabot[bot]
  • 8d591c8 - [docs] [dagster-snowflake] update docs with private key auth info (#11746) by @jamiedemaria
  • 4b6c9f5 - in comment, clarify that scraping asset info off of In/Out is legacy (#12089) by @sryza
  • 416bfca - Lazy load ExternalAssetGraph for CachingStaleStatusResolver (#12090) by @smackesey
  • 5533d0f - [telemetry] fix setting __TELEMETRY_ENABLED__ flag on Dagit (#12092) by @benpankow
  • 8d95149 - [pyright] misc (#12102) by @smackesey
  • 7741d8e - Allow observable source assets to have no context argument (#11981) by @schrockn
  • 0a316c0 - [dagster-airflow] remove api's for 1.x.x release (#12023) by @Ramshackle-Jamathon
  • 2c96953 - [dagster-airflow] extract utils into seperate file (#12065) by @Ramshackle-Jamathon
  • a78b479 - [dagster-airflow] move schedule and asset functions into their own files (#12066) by @Ramshackle-Jamathon
  • cae5899 - [dagster-airflow] remove vended airflow code (#12121) by @Ramshackle-Jamathon
  • 2ee7227 - Fix pre-release core => library translation (#12109) by @gibsondan
  • 8d142c4 - add run job index (#12033) by @prha
  • 317ed39 - Add Databricks compute kind tag (#12117) by @braunjj
  • 8d637c9 - [schedules] fix nth weekday of month cron handling (#12130) by @alangenfeld
  • ccea121 - [dagit] Add tests for unpartitioned case, fix for console.error in partition health (#12085) by @bengotow
  • 30dccea - [js] fix lint (#12131) by @alangenfeld
  • 00b4a8e - [pythonic config] Add disabled tests for various more complex config schemas (#12105) by @benpankow
  • fdf5da4 - [docs] Clairfy dagster-pagerduty docs (#12128) by @benpankow
  • 8f374c2 - Test with a 64 bit after_cursor (#12093) by @jmsanders
  • 6cdcb26 - [dagit] Memoize some Intl behavior (#12125) by @hellendag
  • da50274 - [dagit] Add storybook coverage of Asset Table states (#12103) by @bengotow
  • 951fb17 - [dagit] Add Storybook coverage of PartitionHealthSummary rendering (#12116) by @bengotow
  • ec94a93 - [dagit] In development, render toasts for unhandled promise exceptions (#12082) by @bengotow
  • a0a7385 - Include logs in failure message for ECS monitoring failures (#12113) by @gibsondan
  • 15845e8 - [dagster-airflow] 1.x.x api changes (#12067) by @Ramshackle-Jamathon
  • aa22376 - [dagster-airflow] migration limitations (#12124) by @Ramshackle-Jamathon
  • 88ed4f4 - [dagit] Mocks, storybooks and a test for BackfillTable (#12095) by @bengotow
  • a528a10 - [pythonic config] Correctly handle pydantic List types in config (#12106) by @benpankow
  • 22fab35 - comment to explain what define_solid_dictionary_cls does (#12088) by @sryza
  • 2595449 - remove protobuf pin in dagster[test] (#11974) by @yuhan
  • 2335fe8 - [dagster-airflow] drop unique_id param (#12127) by @Ramshackle-Jamathon
  • e0d1588 - Test with a 64 bit after_cursor (#12137) by @jmsanders
  • fd4a9ea - [dagit] Show partition status on the asset graph, catalog pages, add tests (#11914) by @bengotow
  • e26c3d7 - [pythonic config] Correctly handle pydantic Dict/Mapping types in config (#12107) by @benpankow
  • 5e15e0b - release 1.1.17 changelog (#12140) by @Ramshackle-Jamathon
  • 691aaf8 - [docs] Add PySpark to Snowflake reference guide (#11814) by @jamiedemaria
  • a7e764c - Add bugfixes to 1.1.17 changelog (#12141) by @gibsondan
  • 74462a9 - Automation: versioned docs for 1.1.17 by @elementl-devtools
  • 16a2b7a - Ruff 0.0.212 -> 0.0.241 (#12138) by @smackesey
  • fb8e118 - Adopt pyright for typechecking (#10983) by @smackesey
  • dd86dc7 - [1/n] Serialize top-level resources into repository data (#11529) by @benpankow
  • bda3473 - [2/n] Expose top-level resources via GraphQL (#11553) by @benpankow
  • dc2e313 - Fix serdes on FreshnessPolicy object (#12143) by @benpankow
  • f325f61 - Better error output for Pyright script (#12145) by @smackesey
  • 0dfaf13 - [3/n] Display top-level resources in Dagit sidebar (#11554) by @benpankow
  • b7bb255 - Fix misc type errors (#12147) by @smackesey
  • 47a0ec2 - Delete no-longer-needed type-ignores (#12156) by @smackesey
  • 03bcb4e - [dagit] Fix build failure caused by mocks out of sync with query (#12152) by @bengotow
  • 13e6ea2 - Support json output from pyright script and ignore build (#12155) by @smackesey
  • c358b3d - Add pyright_rebuild Makefile target (#12159) by @smackesey
  • 392c71d - [pyright] --find-links for gprcio wheels (#12158) by @alangenfeld
  • 076afe6 - [docs] - Remove Pagination component from layout (#12135) by @erinkcochran87
  • 5f0e3dc - Fix instructions for using serverless from the CLI without GitHub (#12161) by @shalabhc
  • ab04843 - making erin the owner of all docs 👑 (#12139) by @tacastillo
  • f83c3c4 - [dagit] Better Asset DAG states for source assets (#12142) by @bengotow
  • eabebf8 - [gql] Add tags to AssetEventMixin (#11973) by @smackesey
  • 1528921 - type annotations for input_bindings in composition.py (#12087) by @sryza
  • d4d4fd0 - [Dynamic Partitions 1] Storage changes (#11994) by @clairelin135
  • 357006f - [dagit] System tags (code + logical versions) on asset graph + details (#12151) by @bengotow
  • 2a49a54 - [Dynamic Partitions 2] Update DynamicPartitionsDefinition to have name param (#12000) by @clairelin135
  • 1ca1a97 - hide download links until logs are available (#12164) by @prha
  • f5d7597 - (tick-testing 1/6) Rename GrapheneFutureInstigationTick to GrapheneDryRunInstigationTick (#12055) by @dpeng817
  • bb1f954 - [Dynamic Partitions 3] Display dynamic partitions in Dagit (#11900) by @clairelin135
  • 0864f7b - Avoid creating repo on each partitionStats gql call (#12166) by @clairelin135
  • b21b4e6 - [Docs] Removed sneaky citation mark in title on docs (#12120) by @C0DK
  • 667487f - Add 401 to the list of API codes that our k8s client retries on (#12074) by @gibsondan
  • 8468acd - [freshness-policies] Add the ability to calculate the used_data_time of a TimeWindowPartitioned asset (#11607) by @OwenKephart
  • 6c92dde - (tick-testing 2/6) Revamp dry run tick behavior (#12056) by @dpeng817
  • f634aa3 - feat(dagster-dbt): support dbt-core 1.4.x (#11902) by @rexledesma
  • d83f944 - [dagster-dbt] [1/2] Add streaming entrypoint for dbt cli execution (#12086) by @OwenKephart
  • 5288311 - [dagster-dbt] [2/2] Add ability to stream events while executing dbt assets (#12100) by @OwenKephart
  • c312147 - Fix import (#12185) by @OwenKephart
  • 4ee7a2c - Store the instance ref on the grpc server class if it's present, so that grpc api calls can use it if it's there (#12194) by @gibsondan
  • 1390392 - [dagster-wandb] Integration with Weights & Biases (#10470) by @chrishiste
  • f0a7a2e - W&B integration follow up 2/ update example to defs (#12059) by @yuhan
  • 7af4298 - validate time partition keys when adding to a TimeWindowPartitionsSubset (#12195) by @OwenKephart
  • dad164d - Make Partition GRPC calls with instance_ref args optional (#12196) by @clairelin135
  • d78c354 - [dagster-airflow] [docs] migration guide updates/considerations (#12198) by @Ramshackle-Jamathon
  • 83e946c - [dagster-airflow] refactor airflow_db resources (#12202) by @Ramshackle-Jamathon
  • da0b63b - Make top_level_resources argument _top_level_resources (#12211) by @schrockn
  • a90e5ab - Add guide for observable source assets and versioning (#12118) by @schrockn
  • 765ebf7 - 1.1.18 Changelog (#12217) by @smackesey
  • 52af6d8 - Fix dagster-wandb placeholder (#12222) by @smackesey
  • efae55e - 1.1.18 by @elementl-devtools

1.1.17

1 year ago

New

  • The dagster-airflow library as been moved to 1.x.x to denote the stability of its api's going forward.
  • [dagster-airflow] make_schedules_and_jobs_from_airflow_dag_bag has been added to allow for more fine grained composition of your transformed airflow DAGs into Dagster.
  • [dagster-airflow] Airflow dag task retries and retry_delay configuration are now converted to op RetryPolicies with all make_dagster_* apis.

Bugfixes

  • Fixed an issue where cron schedules using a form like 0 5 * * mon#1 to execute on a certain day of the week each month executed every week instead.
  • [dagit] Fixed an issue where the asset lineage page sometimes timed out while loading large asset graphs.
  • Fixed an issue where the partitions page sometimes failed to load for partitioned asset jobs.

Breaking Changes

  • [dagster-airflow] The use_airflow_template_context, mock_xcom and use_ephemeral_airflow_db params have been dropped, by default all make_dagster_* apis now use a run-scoped airflow db, similiar to how use_ephemeral_airflow_db worked.
  • [dagster-airflow] make_airflow_dag has been removed.
  • [dagster-airflow] make_airflow_dag_for_operator has been removed.
  • [dagster-airflow] make_airflow_dag_containerized has been removed.
  • [dagster-airflow] airflow_operator_to_op has been removed.
  • [dagster-airflow] make_dagster_repo_from_airflow_dags_path has been removed.
  • [dagster-airflow] make_dagster_repo_from_airflow_dag_bag has been removed.
  • [dagster-airflow] make_dagster_repo_from_airflow_example_dags has been removed.
  • [dagster-airflow] The naming convention for ops generated from airflow tasks has been changed to ${dag_id}__${task_id} from airflow_${task_id}_${unique_int}.
  • [dagster-airflow] The naming convention for jobs generated from airflow dags has been changed to ${dag_id} from airflow_${dag_id}.

1.1.15

1 year ago

New

  • Definitions now accepts Executor instances in its executor argument, not just ExecutorDefinitions.
  • @multi_asset_sensor now accepts a request_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 a partitions_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 to DagsterInstance to provide easier access to RunRecord objects which expose the start_time and end_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 and execute_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 via define_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 and asset_selection parameters of the experimental @multi_asset_sensor decorator have been replaced with a monitored_assets parameter. This helps disambiguate them from the new request_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 supports group_name , thanks @toddy86!
  • [dagster-azure] AzureBlobComputeManager now supports authentication via DefaultAzureCredential, 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

https://github.com/dagster-io/dagster/compare/1.1.14...1.1.15

See All Contributors
  • 943cbf0 - Make StaticPartitionMapping serializable. Add autodoc. (#11738) by @AlexanderVR
  • 57ebe59 - Performance improvements for large multi assets (#11782) by @OwenKephart
  • d446e7e - monitored_assets param for multi-asset sensor (#11567) by @sryza
  • 15baf61 - [fix] Fix Snowflake IO manager tests for project_fully_featured (#11781) by @benpankow
  • 41dd55d - Update docs to include wheel workarounds for m1 macs (#11777) by @gibsondan
  • 6b9f3bb - fix run_request_for_partition for sensors that target multiple unreso… (#11780) by @sryza
  • 91f8087 - New "running dagster locally" deployment guide that walks through dagster dev usage (#11741) by @gibsondan
  • 98c0bb6 - Restore grpcio pin for python 3.10 (#11784) by @gibsondan
  • 47cacd0 - Changelog 1.1.11 (#11789) by @dpeng817
  • 6190d23 - docs: add clarification for helm migration guide (#10454) by @adam-bloom
  • b0dcaa3 - [dagit] Bump react-scripts to remove codegen plugin (#11769) by @hellendag
  • 986310a - feat(dagster-dbt): use cached run id to fetch artifacts (#11744) by @rexledesma
  • 0bca404 - feat(dbt-cloud): raise exception if cached compile has not completed (#11792) by @rexledesma
  • a56cae8 - changelog 1.1.11 pt 2 (#11800) by @alangenfeld
  • 47062d0 - Heartbeat once at the beginning of every interval daemon (#11802) by @gibsondan
  • ffb0eda - 1.1.11 changelog: fix link (#11804) by @yuhan
  • d88bbb2 - [dagit] Add missing changelog entries for 1.1.11 (#11803) by @bengotow
  • b0b34f3 - add request_assets param to multi_asset_sensor (#11786) by @sryza
  • 84e343c - Automation: versioned docs for 1.1.11 by @elementl-devtools
  • 8d2ad8f - Log to daemon output when running the schedule code fails or times out (#11805) by @gibsondan
  • 6a9ad23 - 1.1.12 changelog (#11807) by @alangenfeld
  • bded418 - [dagit] When viewing an asset that is a root, do not fetch root used data (#11806) by @bengotow
  • be88042 - [dagit] Fix support for long descriptions in the asset catalog table (#11810) by @bengotow
  • 4b436e0 - Convert accesses using '__ASSET_JOB' to instead use the supported implicit job methods (#11348) by @schrockn
  • 754e4aa - [dagster-azure] Add support for DefaultAzureCredential for AzureBlobComputeLogManager (#11310) by @mpicard
  • b1f6921 - add dagster.yaml tests for nux key (#11820) by @gibsondan
  • 91aff13 - Fix 'dagster dev' command with workspace.yaml passed in (#11819) by @gibsondan
  • 86ffe2c - When can't deserialize asset backfill because asset is no longer partitioned, return it as empty (#11812) by @sryza
  • 2a5c55d - 1.1.13 changelog (#11818) by @alangenfeld
  • b6b0649 - add after_cursor to get_materialization_counts_by_partition (#11759) by @OwenKephart
  • daa8269 - Adds group_label to build_fivetran_assets (#11718) by @toddy86
  • 3400feb - default argument to asset_partition_keys_for_output (#11811) by @sryza
  • 0b08b9e - Specify credentials masking. (#11813) by @joel-olazagasti
  • 1c5ddd1 - Fix multidimensional partition backfills (#11788) by @clairelin135
  • fc96541 - Automation: versioned docs for 1.1.13 by @yuhan
  • da9a774 - Move pyproject.toml => origin generation to a WorkspaceLoadTarget class so that it can be reloaded in dagit (#11821) by @gibsondan
  • 932a5ba - fix tz in time_windows_for_partition_keys (#11825) by @sryza
  • bd66da3 - dynamic re-execution fixes (#11581) by @alangenfeld
  • 3d43e2c - [instance] get_run_record_by_id (#11643) by @alangenfeld
  • bcc8694 - [asset-graph] keep track of source asset partitions defs (#11840) by @OwenKephart
  • a0ec4a8 - [dagster-airbyte] Fix issue using freshness policy w/ Airbyte + multiprocessing executor (#11837) by @benpankow
  • cf7bdf9 - [asset-reconciliation] pre-fetch the results of some queries (#11770) by @OwenKephart
  • 273368d - [asset-reconciliation] Fix case where the partitions definition does not have partitions for some subset of the past 24 hours (#11842) by @OwenKephart
  • b1b88ea - Fix for backoff logic incorrectly storing state (#11848) by @gibsondan
  • 4781d8a - use an AssetGraph to resolve asset selections in asset jobs (#11846) by @sryza
  • 3e4befb - fix(dbt-cloud): remove dbt selector when materializing subset (#11843) by @rexledesma
  • 7a0b7cc - pin sqlalchemy below 2.0.0 (#11871) by @benpankow
  • db68ccf - [dagit] Allow materializing “All” without requiring large graphs are rendered (#11854) by @bengotow
  • 4e59844 - chore(dagster-dbt): pin dbt-core<1.4.0 (#11870) by @rexledesma
  • 26ca189 - stop using python semver parsing for mysql versions (#11868) by @prha
  • 69f5464 - Fix aws ssm tests (#11886) by @gibsondan
  • 28918f8 - unbreak backcompat tests after sqlalchemy upgrade (#11885) by @gibsondan
  • b49679c - [dagit] Fix jumpy code location status spinner (#11801) by @hellendag
  • 144f415 - Add apache-airflow test pin to <2.5.1 (#11888) by @gibsondan
  • 0f4d495 - Fix databricks tests running in release branch (#11887) by @gibsondan
  • 645d12a - Add pin for jupyter-client<8 (#11901) by @gibsondan
  • 7dcc367 - [pyright] [core] storage (#11363) by @smackesey
  • 16ba05b - [pyright] [core] standardize is_context_provided (#11364) by @smackesey
  • e972b08 - [pyright] [core] eliminate funcsigs (#11365) by @smackesey
  • e6471fa - 1.1.14 changelog (#11907) by @gibsondan
  • 16ce5d9 - [pyright] [core] remove builitins star import (#11366) by @smackesey
  • 3953b07 - [readme] update twitter badge (#11892) by @alangenfeld
  • 0eb0b4a - [pyright] [gql] DagsterPipelineRunMetadataValue -> DagsterRunMetadataValue (#11893) by @smackesey
  • 54f573f - [pyright] [core] _core/definitions/asset_reconciliation_sensor (#11717) by @smackesey
  • 751a068 - [pyright] [gql] implementation/events (#11894) by @smackesey
  • 4bb58b6 - [pyright] [gql] implementation/fetch_partition_sets (#11895) by @smackesey
  • 9245694 - Automation: versioned docs for 1.1.14 by @elementl-devtools
  • b31c4c3 - [pyright] examples/tutorial-notebook-assets (#11910) by @smackesey
  • a3db3e0 - [pyright] examples/with-airflow (#11911) by @smackesey
  • d6e8832 - [pyright] [dagit] misc (#11727) by @smackesey
  • 8df7a59 - [pyright] [dagster-dask] misc (#11944) by @smackesey
  • 9a90c52 - [pyright] [dagster-databricks] misc (#11943) by @smackesey
  • f9ea6ce - [pyright] [dagster-test] misc (#11940) by @smackesey
  • e548ea9 - [pyright] [dagster-mysql] misc (#11939) by @smackesey
  • 8b463e8 - [pyright] [dagster-duckdb-pyspark] misc (#11937) by @smackesey
  • 173bd27 - [pyright] [dagster-pandas] misc (#11931) by @smackesey
  • 8eafe06 - [pyright] [dagster-postgres] misc (#11929) by @smackesey
  • 54f4778 - [pyright] [dagster-snowflake] misc (#11926) by @smackesey
  • 77ff219 - [pyright] [examples/assets-dbt-python] misc (#11922) by @smackesey
  • 153a360 - [pyright] [dagster-snowflake] misc (#11928) by @smackesey
  • ae6e9df - [pyright] [dagster-pandera] misc (#11930) by @smackesey
  • 4a1705d - [pyright] [dagster-aws] misc (#11730) by @smackesey
  • 403b525 - [pyright] [dagster-airflow] misc (#11729) by @smackesey
  • e8b4297 - [pyright] examples/quickstart-gcp (#11909) by @smackesey
  • 9c133f6 - [pyright] [dagster-dbt] misc (#11941) by @smackesey
  • cb0bccc - [pyright] [automation] misc (#11726) by @smackesey
  • ddc628a - [pyright] [dagster-msteams] misc (#11932) by @smackesey
  • fcf0fb3 - [pyright] [dagster-snowflake-pandas] misc (#11927) by @smackesey
  • 06dae07 - [pyright] [dagstermill] misc (#11925) by @smackesey
  • bce900c - [pyright] [dagster-docker] misc (#11938) by @smackesey
  • 8f8bdcd - [pyright] [dagster-gcp] misc (#11936) by @smackesey
  • 36472a4 - remove need to provide partitions_defto asset job targeted bybuild_schedule_from_partitioned_job (#11844) by @sryza
  • 14ebb3d - fix GQL snapshot tests on py310 (#11945) by @smackesey
  • e625673 - [pyright] [dagster-airbyte] misc (#11728) by @smackesey
  • 4220144 - [pyright] [dagster-mlflow] misc (#11948) by @smackesey
  • 72a67af - Fix k8s_job_op with multiple containers (#11916) by @gibsondan
  • be28a55 - [pyright] [gql] capture_error sig fix (#11722) by @smackesey
  • a6023fa - [pyright] [dagster-azure] misc (#11946) by @smackesey
  • 9db20ca - Add code versions to AssetGraph (#11950) by @smackesey
  • 17cd83c - [pyright] [gql] schema/solids#resolve_required_resources (#11898) by @smackesey
  • d1aa827 - refactor GrpcServerProcess (#11960) by @smackesey
  • 6795b17 - Fix s3_resource docstring example (#11757) by @dpeng817
  • 1ae4d02 - [pyright] [core] create RunGroupInfo type (#11368) by @smackesey
  • 0732cc4 - snowflake connector pin (#11970) by @alangenfeld
  • b4ba5a3 - [pyright] [gql] schema/roots/mutation (#11897) by @smackesey
  • 99cf75d - [easy] List dagster_world.mp4 in static files (#11961) by @salazarm
  • 6e9d06e - [pyright] [gql] AssetKey cleanup (#11721) by @smackesey
  • 7d4154f - CachingProjectedLogicalVersionResolver -> CachingStaleStatusResolver (#11951) by @smackesey
  • 77711ce - whitelist EventLogRecord for serdes (#11978) by @OwenKephart
  • 0360777 - document tags_for_partition_fn in _partitioned_config API doc (#11977) by @sryza
  • b92d236 - [pyright] [gql] misc (#11720) by @smackesey
  • d175cc1 - [pyright] [gql] misc type errors 2 (#11947) by @smackesey
  • ac2c60f - [pyright] [gql] implementation/fetch_runs (#11896) by @smackesey
  • 8be6743 - Allow bare executor in Definitions (#11795) by @schrockn
  • 7908c41 - Add opt_iterable_param (#11796) by @schrockn
  • 234f9d2 - Use opt_iterable_param in Definitions (#11797) by @schrockn
  • 6d882f7 - [pyright] [gql] compute log manager (#11725) by @smackesey
  • e6000d7 - [dagster-snowflake-pandas] snowflake-sqlalchemy pin (#11984) by @smackesey
  • d2bc29e - [pyright] [gql] add ResolveInfo everywhere (#11723) by @smackesey
  • 6bb955f - add .ruff_cache to gitignore (#11987) by @Ramshackle-Jamathon
  • aa0c090 - small tweak to airflow integration page (#11985) by @sryza
  • 520f5c9 - Rename _core.decorator_utils.is_context_provided (#11982) by @smackesey
  • 7eafa58 - Add docker_container_op and execute_docker_container (#11831) by @gibsondan
  • ff40c1e - [perf] perf improvement for TimeWindowPartitionsSubset (#11850) by @OwenKephart
  • 84c7e77 - [dagit] Add ErrorBoundary to Dagit to reduce severity of React errors (#11824) by @bengotow
  • fc096a4 - [dagit] Repair markdownToPlaintext test failure (#11995) by @hellendag
  • f508bc4 - [import perf] defer CachingInstanceQueryer imports to avoid storage imports (#11905) by @alangenfeld
  • c647626 - Update error messaging for DB IO managers (#11815) by @jamiedemaria
  • 6fd547a - [import perf] moves to prevent grpc import (#11906) by @alangenfeld
  • 039702c - [import perf] test to prevent regressions (#11969) by @alangenfeld
  • 72e4f4c - remove legacy APIs from dagstermill tests (#11999) by @sryza
  • 75e394c - remove legacy APIs from dagster_shell_tests (#11998) by @sryza
  • 9230481 - [dagit] UI support for launching a single asset run with a range of partition keys (#11866) by @bengotow
  • 4836e9d - [dagit] Add more truncation test cases for Firefox, change const (#12001) by @bengotow
  • 4bb1f56 - Fix black pre-commit hook (#11979) by @smackesey
  • fbb6320 - [3/3 partition status cache] Update graphQL partition data (#10822) by @clairelin135
  • 33e31b0 - Upgrade base image on Dagster Dockerfiles to latest python version (#11863) by @gibsondan
  • 7c7b7ed - [pyright] [examples/docs-snippets] misc (#11921) by @smackesey
  • 743d3a5 - Add last_materialization_record to AssetEntry. (#11919) by @OwenKephart
  • f355bd8 - [asset-reconciliation][perf] Improve prefetch accuracy (#11991) by @OwenKephart
  • 2e18c4d - fix dagstermill tests (#12002) by @sryza
  • 5847229 - Type annotations for workspace code (#11958) by @smackesey
  • 8d8c104 - Consolidate GrpcServerRegistry/ProcessGrpcServerRegistry (#11990) by @smackesey
  • acc99cd - Refactor ProcessRegistryEntry (#11959) by @smackesey
  • 8c9b59f - [pyright] examples/project-fully-featured (#11908) by @smackesey
  • ffdd94a - [pyright] [dagster-k8s] misc (#11935) by @smackesey
  • 6c2fedf - [pyright] [core] tests (#11369) by @smackesey
  • c5c91a1 - [pyright] Type-ignores for various errors related to managed elements (#12014) by @smackesey
  • 66c473c - cleam up get_asset_events (#11913) by @alangenfeld
  • 4280d58 - PySpark type handler for snowflake io manager (#11542) by @jamiedemaria
  • 75e8fa6 - [asset-reconciliation] [perf] do not try to fetch materialization records for sources (#12011) by @OwenKephart
  • f781d93 - test(dagster-dbt): add testing for python 3.10 (#11912) by @rexledesma
  • f1be5a2 - fix: use new GitHub graphql resolvers for issue automation (#11877) by @rexledesma
  • a4df637 - [dagit] Export GhostDaggy with tooltip for Cloud usage (#11967) by @hellendag
  • 4596372 - [dagster-airflow] load_assets_from_airflow_dag (#11876) by @Ramshackle-Jamathon
  • d984b71 - Fix broken doc link for Snowflake credential setup (#12017) by @clayheaton
  • 0d9f907 - [dagster-fivetran] Add option to force-create materializations for tables not in API response (#11972) by @benpankow
  • f2125d5 - [dagit] Fix use of fragments causing Apollo caching error in partition health (#12030) by @bengotow
  • 7bf3b64 - Change endpoints to the ones that are used by airbyte UI (#12012) by @emilija-omnisend
  • aac1eb5 - lint fix (#12044) by @benpankow
  • 6da3aff - feat(dbt-cloud): compile run only if job has environment variable cache (#12042) by @rexledesma
  • e025d31 - fix(dbt-cloud): inherit generate docs settings for compile run (#12043) by @rexledesma
  • 0ca6358 - 1.1.15 changelog (#12051) by @jamiedemaria
  • 5d45afa - 1.1.15 by @elementl-devtools

1.1.14

1 year ago

New

  • Large asset graphs can now be materialized in Dagit without needing to first enter an asset subset. Previously, if you wanted to materialize every asset in such a graph, you needed to first enter * as the asset selection before materializing the assets.
  • Added a pin of the sqlalchemy package to <2.0.0 due to a breaking change in that version.
  • Added a pin of the dbt-core package to <1.4.0 due to breaking changes in that release that affected the Dagster dbt integration. We plan to remove this pin in the next release.
  • Added a pin of the jupyter-client package to <8.0 due to an issue with the most recent release causing hangs while running dagstermill ops.

Bugfixes

  • Fixed an issue where the Backfills page in Dagit didn't show partition status for some backfills.
  • [dagster-aws] Fixed an issue where the EcsRunLauncher sometimes waited much longer than intended before retrying after a failure launching a run.
  • [dagster-mysql] Fixed an issue where some implementations of MySQL storage were raising invalid version errors.

1.1.13

1 year ago

Bugfixes

  • The nux section of dagster.yaml config has been fixed.
  • Changes when heartbeats occur in the daemon to avoid crashes in certain conditions.
  • Fixed an issue where passing a workspace file as an argument into the dagster dev command raised an error
  • [dagit] Fixes an issue with asset names being truncated by long asset descriptions in the asset catalog, making them impossible to click.
  • [dagit] The backfill page no longer fails to load if any of the asset backfills had assets that were partitioned at the time of the backfill but are no longer partitioned.

1.1.12

1 year ago

Bugfixes

  • [dagit] Fixes a "maximum call stack size exceeded" error when viewing a materialization of a root asset in Asset Details

1.1.11

1 year ago

New

  • Added a new dagster dev command that can be used to run both Dagit and the Dagster daemon in the same process during local development. See the new Running Dagster Locally guide in the docs for more information.
  • Added instructions for installing the dagster package on M1 and M2 Macs that avoids installation errors when building the grpcio package. See the Installing Dagster guide in the docs for more information.
  • create_repository_using_definitions_args has been added for users to backport their repository definitions to the new Definitions API
  • When running Dagit on your local machine, a prompt will now appear that allows you to optionally enter an email address to receive Dagster security updates or subscribe to the Dagster newsletter. This prompt can be dismissed in the UI, or permanently disabled by adding the following to your dagster.yaml file:
nux:
  enabled: false
  • [dagit] Improved query performance on Scheduled Runs page.
  • [dagit] The "Materialize" button now allows you to add tags to asset materialization runs. If your assets do not require config or partitions, you may need to shift-click "Materialize".
  • [dagit] The kind tags and logos shown on assets in the Asset Graph now appear in other parts of Dagit so it's easier to understand your assets.
  • [dagit] Selecting a materialization event on the Asset Details page now shows links to the upstream materialzations ("Source Data") that were incorporated into that version of the asset.
  • [dagit] Added or improved document (browser tab) titles throughout Dagit.
  • [dagster-snowflake] Snowflake resource and IO manager now support private key authentication with unencrypted keys
  • [dagster-dbt] The op created when using load_assets_from_dbt* is now configurable, allowing you to pass in specific parameters to the underlying dbt command (such as --full-refresh). To do so, supply config of the form {"ops": {"run_dbt_<abcde>": {"config": {"full_refresh": True}}}} when defining your asset job, or in Dagit.

Bugfixes

  • For time-partitioned assets, the build_asset_reconciliation_sensor will now only materialize partitions from the past day. Previously, if a new asset was added with a large number of missing partitions, a run for each of the missing partitions would be launched immediately.
  • A variety of performance improvements to the build_asset_reconciliation_sensor, which should help significantly speed up sensor evaluation in cases where there is a large number of assets or partitions.
  • [dagit] Fixed broken code location names in the “Definitions” filter dialog accessible from the left navigation.
  • [dagit] The Backfills pages in Dagit no longer crash when your backfills span tens of thousands of partition keys
  • [dagit] The asset graph now links to the failed run, not the last successful materialization, when assets are shown in a "Failed" state.

Breaking Changes

  • Strings with escaped characters are now invalid substrings of partition keys.

Experimental

  • [dagster-dbt] Added a utility to cache compilations from dbt Cloud jobs, allowing software-defined assets to be loaded faster from dbt Cloud jobs.

Community Contributions

  • In dagster-airbyte, keys containing credentials are now considered a secret (thanks joel-olazagasti)!

Documentation

  • A new example of using the branching IO manager has been added.

All Changes

https://github.com/dagster-io/dagster/compare/1.1.10...1.1.11

See All Contributors
  • 64c1881 - telemetry: avoid race condition of dagit and daemon creating same dir (#11652) by @yuhan
  • af1707e - [dagit] Link to the failed run, not the last materialzation, on “Failed" nodes (#11593) by @bengotow
  • d62bd97 - [dagit] Stop foreign node links from creating sprawling asset graphs (#11588) by @bengotow
  • ebe7bd5 - refactor: remove workspace.yaml in favor of pyproject.toml (#11665) by @rexledesma
  • 4e3e71d - docs: update license copyright (#11666) by @rexledesma
  • 0fbe38b - Kill stray tqdms when starting up dagster (#11658) by @gibsondan
  • 53399a5 - [Community Nux] Don't use blueprint dialog (#11660) by @salazarm
  • 9adccb5 - fix code location status when a new location is added in a loading state (#11654) by @prha
  • 5482236 - [dagster-airflow] pass airflow dag timezone to dagster schedule definition (#11663) by @Ramshackle-Jamathon
  • 90ece5d - add example and compose_fn argument doc to job decorator (#11655) by @sryza
  • 4bfa186 - Revert "test fixes for python 3.7 (#11636)" and "Fall back to a different port when 3000 is in use instead of failing (#11610)" (#11671) by @gibsondan
  • c9d9d4d - Remove community nux for now (#11672) by @salazarm
  • 7ca2e00 - chore(dbt): remove unnecessary dependencies (#11668) by @rexledesma
  • 62867e3 - chore(phabricator): remove arcanist config (#11667) by @rexledesma
  • 909356b - fix a link on deployment/overview (#11674) by @yuhan
  • 43960fc - Unbreak windows tests (and likely the windows multiprocess executor in general) (#11679) by @gibsondan
  • be2c6fc - Add black hook to precommit (#11678) by @smackesey
  • 0153e0c - changelog for 1.1.10 (#11682) by @sryza
  • 861059a - [dagit] fix clientTime arg (#11670) by @alangenfeld
  • 577e81a - Fix black precommit (#11683) by @smackesey
  • eca6216 - Automation: versioned docs for 1.1.10 by @elementl-devtools
  • b9d4c67 - [tick-alerting] Add properties to InstigationTick (#11140) by @dpeng817
  • 9b1f2f5 - [tick-alerting] Add docs for tick alerting (#11417) by @dpeng817
  • 63575a0 - fix broken link to Airflow library page (#11685) by @sryza
  • d52abe1 - Remove run launcher list from run monitoring docs (#11644) by @gibsondan
  • d3e7807 - Make create_repository_using_definitions_args public (#11684) by @gibsondan
  • a8f1400 - Bring back dagit socket reuse (#11688) by @gibsondan
  • 51fa1c1 - Start event log consumer from latest event (#11681) by @johannkm
  • 08dec7d - [dagit] Restore some previous GraphQL codegen behavior (#11675) by @hellendag
  • 71e060a - one more windows test fix for signals (#11680) by @gibsondan
  • cfabdb6 - Shut down the daemon faster when it is interrupted (#11657) by @gibsondan
  • 8abea5d - Example of usage of Branching I/O Manager (#11549) by @schrockn
  • a8e2bec - include docs snippet for how to record metadata for non-output assets (#11686) by @sryza
  • f26f766 - Fix stale asset schedule (#11708) by @smackesey
  • 66c4e7d - [docs][dagit-screenshot] Add CLI command to generate asset SVGs from snippets (#9764) by @benpankow
  • 429c414 - feat(dbt-cloud): allow jobs to be retrieved from project id (#11673) by @rexledesma
  • e9bb3ee - fix issue with k8s_job_op when combining command and container_config (#11713) by @gibsondan
  • c7b3974 - eliminate SensorExecutionContext, ScheduleExecutionContext (#11038) by @smackesey
  • 585cff5 - Move string construction out of non-error path in check (#11701) by @schrockn
  • ac05d59 - [pyright] [core] misc (#11362) by @smackesey
  • 0da0a90 - [pyright] [core] _utils/error (#11695) by @smackesey
  • 2b77726 - [pyright] [core] _utils/backcompat (#11696) by @smackesey
  • 9c8a31f - [pyright] [core] _cli/api (#11697) by @smackesey
  • 789ac1a - [dagit] Rename a few partition data structures in Dagit (#11574) by @bengotow
  • 41d6c4d - feat(dbt-cloud): disable schedule only if it exists (#11690) by @rexledesma
  • 26f7e93 - [dagit] Permissions cleanup (#11712) by @hellendag
  • c0c4811 - [dagit] Move User Settings into a Dialog (#11706) by @hellendag
  • 8d4cadf - [dagit] Fix Definitions filter dialog (#11711) by @hellendag
  • 46479d9 - [dagit] Clean up a bunch of document titles (#11715) by @hellendag
  • 3de3060 - "dagster dev" command that spins up dagit and the daemon as subprocesses and requires no DAGSTER_HOME env var to be set (#11584) by @gibsondan
  • 11ccce4 - [dagit] Empty state on Runs with better CTAs (#11714) by @hellendag
  • 9735ca1 - [OSS Nux] only load an iframe for recaptcha after use agrees to submit email (#11743) by @salazarm
  • 4f92708 - Ban invalid escape chars (#11443) by @clairelin135
  • c9efdbf - [@dagster-io/ui] Bump eslint-config (#11703) by @hellendag
  • 2eff65c - [dagit] Display source data used in specific asset materializations (#11736) by @bengotow
  • f254ba8 - [dagit] Add the Asset compute kind tag in more places #11185 (#11569) by @bengotow
  • 49e258c - [dagit] Add backfill warnings and run tags options to the Materialize modal (#11656) by @bengotow
  • c96fef1 - [1/3 partition status cache] Time window subset perf improvements (#11640) by @clairelin135
  • 627f67c - [dagster-dbt] add config schema for dbt asset op (#11710) by @OwenKephart
  • 396a1b8 - [asset-reconciliation] Limit the partitions that can be reconciled with the sensor (#11582) by @OwenKephart
  • 39ff564 - [dagit] Strip down query for Scheduled Runs (#11751) by @hellendag
  • dde417c - [asset-reconciliation] Improve performance for never materialized root partitions (#11755) by @OwenKephart
  • 7e582d7 - [dagit] Fix Backfills page locking up when displaying large backfills, improve "target" column (#11693) by @bengotow
  • bd7cb10 - [airbyte] Consider keys containing credentials a secret (#11620) by @joel-olazagasti
  • 85d0357 - [asset-reconciliation] Perf improvements for reconciliation sensor (#11633) by @OwenKephart
  • 1195798 - [OSS Nux] Add kill switch + persist Nux dismissal in temp folder (#11758) by @salazarm
  • 4c3f099 - [pyright] [core] _core/definitions/scoped_resources_builder (#11698) by @smackesey
  • 79ccff7 - Add back dagster_world.mp4 video (#11763) by @salazarm
  • f232973 - open grpc servers in their own process group so they don't get interrupted along with whatever process opened them (#11737) by @gibsondan
  • f6e47d8 - Don't spew "Aborted!" to the command-line when the Daemon is cleanly interrupted (#11739) by @gibsondan
  • a4b4295 - Switch the grpcio dependency to use an internally built m1 wheel for m1 macs only (#11760) by @shalabhc
  • 9f98587 - Include retry count in the job created by k8s_job_op (#11753) by @gibsondan
  • d8d2581 - test: unpin responses (#11768) by @rexledesma
  • 48bb79a - Selectively show the multiple files/modules help text to the commands where it applies (#11689) by @gibsondan
  • 6d1c659 - feat(dbt-cloud): cache compile run id as env var for job (#11691) by @rexledesma
  • 8c78399 - [2/3 partition status cache] Serialize version, rebuild cache for unsupported version (#11687) by @clairelin135
  • 1c12e96 - Fix airflow_op_to_dagster_op test (#11771) by @clairelin135
  • a54d170 - DBT code version docs (#11692) by @smackesey
  • 8e7ea32 - improve performance of StaticPartitionsDefinition.__eq__ (#11775) by @sryza
  • 822676a - [dagster-snowflake] remove password check for private key auth for unencrypted keys (#11745) by @jamiedemaria
  • 78ad6b6 - Rename "base asset job" to "implicit asset job" in RepositoryDefinition methods (#11344) by @schrockn
  • dcfebfa - mark PartitionMappings not experimental in IO manager doc (#11774) by @sryza
  • 3dc3b99 - dagit => dagster dev in docs (#11740) by @gibsondan
  • 7490d6b - Revert "Switch the grpcio dependency to use an internally built m1 wheel for m1 macs only (#11760)" (#11776) by @gibsondan
  • aad6e21 - Performance improvements for large multi assets (#11782) by @OwenKephart
  • 8354f89 - Update docs to include wheel workarounds for m1 macs (#11777) by @gibsondan
  • 7e3032c - New "running dagster locally" deployment guide that walks through dagster dev usage (#11741) by @gibsondan
  • b7ad6f5 - Changelog 1.1.11 (#11789) by @dpeng817
  • 6c41bf4 - Restore grpcio pin for python 3.10 (#11784) by @gibsondan
  • 609b3e7 - feat(dagster-dbt): use cached run id to fetch artifacts (#11744) by @rexledesma
  • a5411a0 - feat(dbt-cloud): raise exception if cached compile has not completed (#11792) by @rexledesma
  • 567359e - changelog 1.1.11 pt 2 (#11800) by @alangenfeld
  • 8f49527 - [dagit] Add missing changelog entries for 1.1.11 (#11803) by @bengotow
  • 9d72bd5 - 1.1.11 by @elementl-devtools

1.1.10

1 year ago

New

  • The selection argument of define_asset_job now accepts lists of AssetKeys or AssetsDefinitions.
  • RunRequest now takes a stale_assets_only flag that filters the full set of assets that would be materialized by a job to stale assets only. This can be used in schedules and sensors.
  • Dagit will now choose a different open port on the local machine to run on when no port is specified to the dagit command and the default port 3000 is already in use.
  • The grpcio pin in Dagster to <1.48.1 has been removed for Python versions 3.10 and 3.11. Python 3.7, 3.8, and 3.9 are still pinned to <1.48.1 due to a bug in the grpc library that is causing the process to sometimes hang.
  • When it is likely that an op process was killed due to running out of memory, a clearer error message is now displayed in Dagit.
  • When a sensor tick fails due to taking longer than 60 seconds to execute, a clearer error message is displayed on the sensor timeline in Dagit.
  • When you view compute logs on a run in Dagit, we now locally track whether you choose the stdout or stderr tab. The next time you view compute logs, you will see that tab first by default.
  • The executor and loggers arguments on Definitions are no longer experimental.
  • [dagster-dbt] When json_log_format is set to False when using the dbt_cli_resource, logs will be emitted at the appropriate log level in some situations. Previously, all logs would be emitted at the INFO level.
  • [dagster-snowflake] The Snowflake IO Manager and Snowflake Resource now support private key authentication. Thanks Josh Taylor!
  • [dagster-airbyte] Users can now specify freshness policies when generating Airbyte assets.
  • [dagster-airbyte] When using managed Airbyte ingestion, users can now specify a destination table prefix.

Bugfixes

  • Fixed a bug that caused backfills launched from the asset graph page not to work with code locations running versions of Dagster less than 1.1.8.
  • Fixed a bug that reverted to the default partition mappings in situations where asset dependencies were resolved based on group instead of asset key.
  • The way skips are propagate through the graph when using dynamic outputs are used has been fixed.
  • Fixed a bug affecting the download link for cloud-based compute log manager implementations (e.g. dagster-azure / dagster-aws / dagster-gcp)
  • Fixed a bug that would cause errors when using build_asset_reconciliation_sensor with asset graphs that contained references to source assets without the associated SourceAsset objects (which may happen when using load_assets_from_dbt_*).
  • [dagit] Fixed an issue where an error appeared in dagit when a code server stopped and restarted.
  • [dagit] Previously, when restarting the dagit process, the Dagit frontend kept cached versions of certain queries even after the code location finished loading. This could lead to display of stale versions of jobs or other code objects. These objects will now be correctly retrieved anew from the backend.
  • [dagster-dbt] Fixed a bug with the DbtManifestAssetSelection which could result in KeyErrors when selecting from projects with sources defined.
  • [dagster-k8s] Fixed a bug where disabling run worker crash recovery by setting maxResumeRunAttempts to 0 in the Helm chart had no effect.
  • [dagster-airflow] Fixed a bug where transformed Airflow DAG schedules would always use UTC for their timezone.

Breaking Changes

  • [dagit] The /instance and /workspace path prefixes were removed in previous version, but redirects were left in place. These redirects have now been removed.

Community Contributions

  • The new StaticPartitionMapping enables explicitly defining the dependencies between partitions in two StaticPartitionsDefinitions. Thanks Alexander VR!
  • Fixed a typo in the Dagster Instance documentation header - thanks Cushnir Grigore!
  • Fixed a typo in the Dagster Instance documentation body - thanks Chris Zubak-Skees!
  • Fixed docstring for static_partitioned_config - thanks Sylvain Lesage!
  • Fix dead link in the docs to the Slack community - thanks Emil Christensen!

Documentation

  • The Ops and jobs tutorial has been moved to the Guides section. Clicking "Tutorial" in the sidenav will open the Assets tutorial.

All Changes

https://github.com/dagster-io/dagster/compare/1.1.9...1.1.10

See All Contributors
  • aabd812 - docs for new tag_concurrency_limits feature on executor (#11499) by @gibsondan
  • f898164 - [dagster-airflow] warn on airflow dataset (#11498) by @Ramshackle-Jamathon
  • d8afae3 - Add typehints to snapshot arguments to create_run (#11454) by @schrockn
  • 4696ca0 - Typehint and do invariants for root_run_id, parent_run_id, step_keys_to_execute and execution_plan_snapshot (#11455) by @schrockn
  • 17a5af8 - Typehint and validate tags and status params to create_run (#11456) by @schrockn
  • bccc196 - Require kwargs on create_reexecuted_run (#11460) by @schrockn
  • 4cf382a - Make frozentags inherit from Mapping[str, str] and correctly type _check_execute_external_pipeline_args (#11461) by @schrockn
  • cecf84f - Add support for loading cacheable assets from module (#10389) by @benpankow
  • f6add35 - enable filtering by asset tag when asset tags table is not present (#11509) by @sryza
  • 7775c0a - only count materializations within backfill (#11506) by @sryza
  • 78afde9 - telemetry: add num_assets_in_repo in log_repo_stats metadata (#11513) by @yuhan
  • 1cbda0c - telemetry: add location_name in repo-level metadata (#11514) by @yuhan
  • ecf8753 - [dagit] Clean up /instance and /workspace redirects (#11503) by @hellendag
  • 7100ffe - Fix getting partition mappings when asset dependencies are resolved (#11483) by @sryza
  • c6bf10b - docstring examples for AssetSelection.keys (#11477) by @sryza
  • e9822ed - [dagster-airflow] add make_dagster_definitions_from_airflow_dags_pathandmake_dagster_definitions_from_airflow_dag_bag apis (#11441) by @Ramshackle-Jamathon
  • 6590ed9 - Fix maxResumeRunAttempts being explicitly enabled even if you set it to 0 (#11511) by @gibsondan
  • 6048df9 - dagster-graphql tests for permissions failures (#11486) by @gibsondan
  • f229aa1 - Hook for Cloud dagit into PythonErrorInfo (#11467) by @salazarm
  • 1c80d73 - Changelog 1.1.8 (#11526) by @clairelin135
  • a392f23 - Add experimental examples directory (#11505) by @schrockn
  • 7c2d72d - [dagster-airbyte] Allow specifying freshness policies on Airbyte assets (#11525) by @benpankow
  • 5cfad3b - Migrate airflow guide to definitions (#11518) by @petehunt
  • 7fcf021 - Automation: versioned docs for 1.1.8 by @elementl-devtools
  • 36ac1d3 - Remove packaging v22 cap (#11212) by @smackesey
  • 84fddc1 - remove pragmas in docs snippets (#11335) by @smackesey
  • 5ddb9a9 - update black 22.3.0 -> 22.12.0 and enable --preview (#10900) by @smackesey
  • 78df951 - Adopt ruff as linter (#10901) by @smackesey
  • 157a1ed - Add .git to excludes for ruff in pyproject.toml (#11534) by @schrockn
  • 692b566 - chore(ruff): add pre-commit config (#11538) by @rexledesma
  • f81e051 - chore(dagit): remove unnecessary dependencies (#11532) by @rexledesma
  • 8cf4f94 - docs: add links to follow LinkedIn page (#11533) by @rexledesma
  • ea8934d - [dagit] Use cache-and-network as default watchQuery fetch policy (#11523) by @hellendag
  • 974752f - [docs] - Add GSC site verification file (#11547) by @erinkcochran87
  • c272f68 - disable executing airflow_example_http_operator in tests (#11544) by @Ramshackle-Jamathon
  • 313481f - Add and apply ruff docstring rules (#10907) by @smackesey
  • 7b2c1b0 - Ruff docstrings D209 (NewLineAfterLastParagraph) (#10993) by @smackesey
  • 9a0a8e7 - Use Config class instead of base class kwargs in structured config to not break early pydantic versions (#11546) by @schrockn
  • 351e713 - [fix] Fix builtin type error related to resource annotations (#11551) by @benpankow
  • 25e1197 - [changelog] 1.1.9 (#11556) by @benpankow
  • b24b5b4 - add NullMetadataValue (#10969) by @smackesey
  • 40bb609 - Ruff docstrings D210 (NoSurroundingWhitespace) (#10994) by @smackesey
  • c13c992 - [changelog] 1.1.9 round 2 (#11560) by @benpankow
  • f4dfd29 - Make JsonMetadataValue accept lists (#11550) by @smackesey
  • f4e84b5 - Ruff docstrings D212,D214 (MultilineSummaryFirstLine,SectionNotOverIndented) (#10995) by @smackesey
  • 94549f6 - Automation: versioned docs for 1.1.9 by @elementl-devtools
  • 5d3851e - Ruff docstring D300 (UsesTripleQuotes) (#10996) by @smackesey
  • 1884a92 - Add a graphql field and API for location-scoped permissions (#11097) by @gibsondan
  • 0961570 - [@dagster-io/eslint-config] Remove GraphQL type parameter rule (#11479) by @hellendag
  • 89b7c68 - Ruff docstrings D301 (Raw string for backslash in docstring)) (#11329) by @smackesey
  • 11b457a - [dagit] Update eslint-config dep in dagster-io/ui (#11563) by @hellendag
  • 5f860b9 - [dagit] Stop generating docblocks on schema.graphql and codegen (#11564) by @hellendag
  • ee71a58 - [dagit] Track most recent preference for computed log type view (#11527) by @hellendag
  • db0d80a - Fix graphql permisisons checks, fix black (#11566) by @gibsondan
  • 260e3e3 - [docs] - Move ops + jobs tutorial to Guides (#11528) by @erinkcochran87
  • 29b9d48 - [dynamic] fix how skips cascade (#11561) by @alangenfeld
  • 27ddfe4 - [dagit] Add GraphQL configuration for VSCode (#11565) by @hellendag
  • 00b8a7a - [dagster-dbt] add DbtManifestAssetSelection to API docs (#11562) by @OwenKephart
  • 89ae9b6 - define_asset_job accept AssetKey and AssetsDefinition selections (#11568) by @sryza
  • 653490e - Ruff docstrings D403,D405 (FirstLineCapitalized,CapitalizeSectionName) (#10997) by @smackesey
  • a08fc29 - fix remote captured log manager complete check (#11552) by @prha
  • 1f58720 - misc docs fixes in tutorial / getting started / assets (#11575) by @gibsondan
  • 41ba92f - docs: fix typo Telementry -> Telemetry (#11571) by @chriszs
  • 2f1db63 - fix docstring for static_partitioned_config (#11535) by @severo
  • f670262 - Add tip when the multiprocess executor hits a likely OOM error (#11570) by @gibsondan
  • 8036414 - Ruff docstrings D414 (NonEmptySection) (#10999) by @smackesey
  • c5a8ee3 - Ruff docstrings D419 (NonEmpty) (#11000) by @smackesey
  • 3b1ff76 - [@dagster-io/ui] Output cjs (#11594) by @hellendag
  • 5f18862 - Show clearer grpc errors, as well as a custom failure for sensor timeouts in particular since those are so common (#11576) by @gibsondan
  • 1f60700 - Adds OSS email collection dialog (#11480) by @salazarm
  • d34e087 - Ruff docstrings D202 (NoBlankLineAfterFunction) (#10992) by @smackesey
  • e579f9b - Ruff docstrings D411,D412 (BlankLineBeforeSection,NoBlankLinesBetweenHeaderAndContent) (#10998) by @smackesey
  • 46a4a6f - Change exclude to extend-exclude in pyproject.toml settings for ruff (#11591) by @schrockn
  • e46519a - refactor(dbt-cloud): remove v2 suffix (#11586) by @rexledesma
  • ff2481d - feat(dbt-cloud): allow env vars to be retrieved and set (#11592) by @rexledesma
  • 79bdf57 - Ruff docstrings (misc fixes) (#11002) by @smackesey
  • 31bf0d7 - [docs] - Remove accidental comments (#11601) by @erinkcochran87
  • 51f21f9 - docs: fix dead link to Slack community (#11602) by @EmilRex
  • 88ae9ce - Fix graphene enum not being instantiated (#11605) by @gibsondan
  • 1bd5924 - [dagit] Add location-scoped permissions to Dagit (#11587) by @hellendag
  • 458936b - [dagster-dbt] parse log level when json_log_level is not set (#11596) by @OwenKephart
  • 2a00a0c - use Python type annotations in loading-from-config docs examples (#11609) by @sryza
  • ce974ad - [dagit] Use updated react-scripts fork for codegen babel plugin (#11583) by @hellendag
  • ea523f5 - Fall back to a different port when 3000 is in use instead of failing (#11610) by @gibsondan
  • 09ec94b - [dagit] Some Permissions tweaks to support Cloud (#11612) by @hellendag
  • 7a8ba5c - Ruff docstrings D415 (EndsInPunctuation) (#11001) by @smackesey
  • c8d9efe - [dagster-dbt] allow for non-model nodes to be part of the DbtManifestAssetSelection (#11617) by @OwenKephart
  • 67a915b - Update OSS Nux to receive size from iframe via postmessage (#11625) by @salazarm
  • 40d678f - [freshness-policies] fix get_non_source_roots (#11619) by @OwenKephart
  • 6e626c1 - remove reexecute_pipeline_iterator (#11608) by @alangenfeld
  • ec9b417 - [eslint-config] Enable ignoreExternal on no-cycle rule (#11632) by @hellendag
  • 61eeaa7 - [@dagster-io/ui] Bump eslint-config (#11634) by @hellendag
  • 9358501 - add example to TimeWindowPartitionMapping apidoc (#11615) by @sryza
  • 29e3981 - Fix typo in Dagster instance documentation (#11621) by @GrigoriiKushnir
  • 86685e4 - use run tags instead of asset tags to filter materializations within backfill (#11555) by @sryza
  • 6a4f466 - test fixes for python 3.7 (#11636) by @gibsondan
  • ae8005d - Restrict the grpcio pin to only py3.7/3.8/3.9 (#11635) by @gibsondan
  • e618f20 - Remove experimental flag on executor and loggers parameters of Definitions and add more detail to docblock (#11626) by @schrockn
  • cb48769 - [dagster-snowflake-pandas] update doc string to use Definitions (#11606) by @jamiedemaria
  • e4336f3 - [dagster-snowflake] Add private key authentication for Snowflake (#10750) by @joshuataylor
  • db92447 - Load OSS Nux iframe via https (#11638) by @salazarm
  • df4e0d4 - telemetry: add step start/success/failure event + client timestamp (#11624) by @yuhan
  • e03f3fb - Add StaticPartitionMapping as a built-in PartitionMapping (#11521) by @AlexanderVR
  • 2acea53 - [dagster-airbyte] Enable setting a destination table prefix using managed ingestion (#11057) by @benpankow
  • 14e21c4 - telemetry: add is_known_ci_env (#11642) by @yuhan
  • 8848f6e - stale asset materialization for schedules and sensors (#11516) by @smackesey
  • 95b2824 - telemetry: avoid race condition of dagit and daemon creating same dir (#11652) by @yuhan
  • c78add2 - [Community Nux] Don't use blueprint dialog (#11660) by @salazarm
  • a97e2bf - fix code location status when a new location is added in a loading state (#11654) by @prha
  • b1669d2 - [dagster-airflow] pass airflow dag timezone to dagster schedule definition (#11663) by @Ramshackle-Jamathon
  • f7344dd - Revert "test fixes for python 3.7 (#11636)" and "Fall back to a different port when 3000 is in use instead of failing (#11610)" (#11671) by @gibsondan
  • de8f48b - Remove community nux for now (#11672) by @salazarm
  • 5213131 - Unbreak windows tests (and likely the windows multiprocess executor in general) (#11679) by @gibsondan
  • 8cc6ccc - 1.1.10 by @elementl-devtools