Fixed a bug with load_assets_from_x functions where we began erroring when a spec and AssetsDefinition had the same key in a given module. We now only error in this case if include_specs=True.
[dagster-azure] Fixed a bug in 1.9.6 and 1.9.7 where the default behavior of the compute log manager switched from showing logs in the UI to showing a URL. You can toggle the show_url_only option to True to enable the URL showing behavior.
[dagster-dbt] Fixed an issue where group names set on partitioned dbt assets created using the @dbt_assets decorator would be ignored
When using the configured API on a solid or composite solid, a new solid name must be provided.
The image used by the K8sScheduler to launch scheduled executions is now specified under the “scheduler” section of the Helm chart (previously under “pipeline_run” section).
New
Added an experimental mode that speeds up interactions in dagit by launching a gRPC server on startup for each repository location in your workspace. To enable it, add the following to your dagster.yaml:
opt_in:local_servers:true
Intermediate Storage and System Storage now default to the first provided storage definition when no configuration is provided. Previously, it would be necessary to provide a run config for storage whenever providing custom storage definitions, even if that storage required no run configuration. Now, if the first provided storage definition requires no run configuration, the system will default to using it.
Added a timezone picker to Dagit, and made all timestamps timezone-aware
Added solid_config to hook context which provides the access to the config schema variable of the corresponding solid.
Hooks can be directly set on PipelineDefinition or @pipeline, e.g. @pipeline(hook_defs={hook_a}). It will apply the hooks on every single solid instance within the pipeline.
Added Partitions tab for partitioned pipelines, with new backfill selector.
The --host CLI param has been renamed to --grpc_host to avoid conflict with the dagit --host param.
New
Descriptions for solid inputs and outputs will now be inferred from doc blocks if available (thanks @AndersonReyes !)
Various documentation improvements (thanks @jeriscc !)
Load inputs from pyspark dataframes (thanks @davidkatz-il !)
Added step-level run history for partitioned schedules on the schedule view
Added great_expectations integration, through the dagster_ge library. Example usage is under a new example, called ge_example, and documentation for the library can be found under the libraries section of the api docs.
PythonObjectDagsterType can now take a tuple of types as well as a single type, more closely mirroring isinstance and allowing Union types to be represented in Dagster.
The configured API can now be used on all definition types (including CompositeDefinition). Example usage has been updated in the configuration documentation.
Updated Helm chart to include auto-generated user code configmap in user code deployment by default
Bugfixes
Databricks now checks intermediate storage instead of system storage
Fixes a bug where applying hooks on a pipeline with composite solids would flatten the top-level solids. Now applying hooks on pipelines or composite solids means attaching hooks to every single solid instance within the pipeline or the composite solid.
Fixes the GraphQL playground hosted by dagit
Fixes a bug where K8s CronJobs were stopped unnecessarily during schedule reconciliation
Experimental
New dagster-k8s/config tag that lets users pass in custom configuration to the Kubernetes Job, Job metadata, JobSpec, PodSpec, and PodTemplateSpec metadata.
This allows users to specify settings like eviction policy annotations and node affinities.
Fixes an issue in the dagster-k8s-celery executor when executing solid subsets
Breaking Changes
Deprecated the IntermediateStore API. IntermediateStorage now wraps an ObjectStore, and TypeStoragePlugin now accepts an IntermediateStorage instance instead of an IntermediateStore instance. (Noe that IntermediateStore and IntermediateStorage are both internal APIs that are used in some non-core libraries).