Releases: dagster-io/dagster
1.1.7 (core) / 0.17.7 (libraries)
New
Definitions
is no longer marked as experimental and is the preferred API over@repository
for new users of Dagster. Examples, tutorials, and documentation have largely ported to this new API. No migration is needed. Please see GitHub discussion for more details.- The “Workspace” section of Dagit has been removed. All definitions for your code locations can be accessed via the “Deployment” section of the app. Just as in the old Workspace summary page, each code location will show counts of its available jobs, assets, schedules, and sensors. Additionally, the code locations page is now available at
/locations
. - Lagged / rolling window partition mappings:
TimeWindowPartitionMapping
now acceptsstart_offset
andend_offset
arguments that allow specifying that time partitions depend on earlier or later time partitions of upstream assets. - Asset partitions can now depend on earlier time partitions of the same asset. The asset reconciliation sensor will respect these dependencies when requesting runs.
dagit
can now accept multiple arguments for the-m
and-f
flags. For each argument a new code location is loaded.- Schedules created by
build_schedule_from_partitioned_job
now execute more performantly - in constant time, rather than linear in the number of partitions. - The
QueuedRunCoordinator
now supports optionsdequeue_use_threads
anddequeue_num_workers
options to enable concurrent run dequeue operations for greater throughput. - [dagster-dbt]
load_assets_from_dbt_project
,load_assets_from_dbt_manifest
, andload_assets_from_dbt_cloud_job
now support applying freshness policies to loaded nodes. To do so, you can applydagster_freshness_policy
config directly in your dbt project, i.e.config(dagster_freshness_policy={"maximum_lag_minutes": 60})
would result in the corresponding asset being assigned aFreshnessPolicy(maximum_lag_minutes=60)
. - The
DAGSTER_RUN_JOB_NAME
environment variable is now set in containerized environments spun up by our run launchers and executor. - [dagster-airflow]
make_dagster_repo_from_airflow_dags_path
,make_dagster_job_from_airflow_dag
andmake_dagster_repo_from_airflow_dag_bag
have a newconnections
parameter which allows for configuring the airflow connections used by migrated dags.
Bugfixes
-
Fixed a bug where the
log
property was not available on theRunStatusSensorContext
context object provided for run status sensors for sensor logging. -
Fixed a bug where the re-execute button on runs of asset jobs would incorrectly show warning icon, indicating that the pipeline code may have changed since you last ran it.
-
Fixed an issue which would cause metadata supplied to graph-backed assets to not be viewable in the UI.
-
Fixed an issue where schedules often took up to 5 seconds to start after their tick time.
-
Fixed an issue where Dagster failed to load a dagster.yaml file that specified the folder to use for sqlite storage in the
dagster.yaml
file using an environment variable. -
Fixed an issue which would cause the k8s/docker executors to unnecessarily reload CacheableAssetsDefinitions (such as those created when using
load_assets_from_dbt_cloud_job
) on each step execution. -
[dagster-airbyte] Fixed an issue where Python-defined Airbyte sources and destinations were occasionally recreated unnecessarily.
-
Fixed an issue with
build_asset_reconciliation_sensor
that would cause it to ignore in-progress runs in some cases. -
Fixed a bug where GQL errors would be thrown in the asset explorer when a previously materialized asset had its dependencies changed.
-
[dagster-airbyte] Fixed an error when generating assets for normalization table for connections with non-object streams.
-
[dagster-dbt] Fixed an error where dbt Cloud jobs with
dbt run
anddbt run-operation
were incorrectly validated. -
[dagster-airflow]
use_ephemeral_airflow_db
now works when running within a PEX deployment artifact.
Documentation
- New documentation for Code locations and how to define one using
Definitions
- Lots of updates throughout the docs to reflect the recommended usage of
Definitions
. Any content not ported toDefinitions
in this release is in the process of being updated. - New documentation for dagster-airflow on how to start writing dagster code from an airflow background.
All Changes
See All Contributors
- 858b9d2 -
Non isolated runs docs (#10860)
by @johannkm - 24bff5f -
[dagit] Fix Gantt chart rendering of per-step resource init log messages (#10943)
by @bengotow - cde76d9 -
[dagit] Fix the “Assets” label on large asset runs (#10932)
by @bengotow - 6cd734a -
[dagit] Fix “Job In” label regression in Chrome v109 (#10934)
by @bengotow - 523edb0 -
[dagit] Pass repository tag when loading runs for Partitions page (#10948)
by @bengotow - 49f7c4f -
[dagit] Updated asset DAG styles, added additional compute tags (#10931)
by @bengotow - fb574c0 -
[docs] - add a guide for scheduling assets (#10949)
by @slopp - 66959b7 -
cap packaging requirement at 22.0 (#10968)
by @smackesey - 5a45dd1 -
Execution result typing (#10919)
by @smackesey - 7d18ed2 -
solid -> node method renames (#10920)
by @smackesey - f19c6ea -
[dagster-airflow] re-enable airflow 2.5.0 tests (#10966)
by @Ramshackle-Jamathon - 0d80225 -
[dagster-airbyte][docs] Use dagster-airbyte CLI alias in docs (#10955)
by @benpankow - 162e791 -
[dagster-slack] create slack_on_freshness_policy_sensor (#10960)
by @OwenKephart - faf4f30 -
[docs ] - fix image dimensions in hello-dagster materialize (#10977)
by @slopp - 4babd9d -
1.1.6 Changelog (#10978)
by @OwenKephart - 577e3eb -
Automation: versioned docs for 1.1.6
by @elementl-devtools - 0b59fa9 -
[convert-environment-variables-and-secrets-guide-stack-2] Convert env vars and secrets guide from repository to Definitions
by @schrockn - 352d077 -
unexperimentalize PartitionMapping (#10980)
by @sryza - 231ddfa -
remove validation in AssetGraph.get_child_partition_keys_of_parent an… (#10981)
by @sryza - 305f1a2 -
[convert-development-to-production-1] Move repository to __init__.py
by @schrockn - d1054f9 -
[convert-development-to-production-2] Changing development to production to use snowflake_pandas_io_manager
by @schrockn - 7d5fabc -
[convert-deployment-to-production-3] Convert @repository to Definitions
by @schrockn - 196c086 -
[convert-development-to-production-4] Use base object instead of resource
by @schrockn - 435ddcd -
[convert-development-to-production-6] Use pyproject.toml instead of workspace.yaml
by @schrockn - 888660d -
[convert-development-to-production-7] Convert guide to use Definitions
by @schrockn - ad41a9f -
[dagit] New Code Locations table (#10975)
by @hellendag - 3008420 -
Pin graphene to <3.2
by @schrockn - 5373a74 -
fix missing metadata in dagit on graph-backed assets (#10988)
by @OwenKephart - 7bbcb8a -
[dagit] Export a few Code Location components for Cloud (#11008)
by @hellendag - 39c84bb -
Temporarily disable some Azure test suites (#11007)
by @jmsanders - 41101f7 -
[graphql] fix for graphene 3.2 (#11011)
by @alangenfeld - a0e5c3d -
[code-location-selector-stack] Code location sensor tests 1/N. Rename workspace_load_target function to create_workspace_load_target
by @schrockn - 160aba2 -
[code-location-selector-stack] Code location sensor tests 2/N Make instance_with_multiple_repos_with_sensors workspace_load_target parameterizable
by @schrockn - d6ad971 -
[code-location-selector-stack] Code location sensor tests 3/N. Refactor instance_with_multiple_repos_with_sensors to handle multiple code locations
by @schrockn - 6e305c1 -
[code-location-selector-stack] Code location sensor tests 4/N Actually add test to test cross code location selector
by @schrockn - 5fc415a -
[code-location-selector-stack Add CodeLocationSelector; Have run_status_sensor accept it
by @schrockn - 3c2367f -
Fix test_persistent
by @schrockn - bf83710 -
chore: auto-assign dependabot pull requests (#10953)
by @rexledesma - a91525b -
fix(dbt-cloud): parse command string to find materialization commands (#10989)
by @rexledesma - 3be1547 -
[code-location-selector-stack] Change typehint on make_slack_on_run_failure_sensor to accept CodeLocationSelector
by @schrockn - c156ab3 -
[docs] re-org snowflake integration guide (#10984)
by @jamiedemaria - 33affcf -
Check scheduler ticks right after each minute boundary instead of once every 5 seconds (#10886)
by @gibsondan - 3b93947 -
[docs] - [definitions] Update Configured API concept doc (#11020)
by @erinkcochran87 - 3cfc612 -
Fix bug with re-execution snapshot ids (#10967)
by @OwenKephart - 3fb76d9 -
[bugfix] UPathIOManger load_input type checking (#11022)
by @danielgafni - 546ece8 -
Pathspec typing fix (#11036)
by @smackesey - c729760 -
[dagit] /code-locations -> /locations (#11024)
by @hellendag - f606250 -
Replace partition ranges with subsets (#10909)
by @clairelin135 - cec9f43 -
[dagit] With multiple assets selected, backfill “missing” should include partially materialized partitions (#11027)
by @bengotow - ae946c0 -
[dagit] Add empty value string for invalid tag input in Runs filter (#11044)
by @hellendag - 57e5def -
[docs] - [definitions] Update Repository page for Definitions (#10986)
by @erinkcochran87 - 9300fc7 -
[definitions-accessors] Add get_job_def to
Definitions.
by @schrockn - 1014add -
1/ definitions in create new project: update dagster project CLI (#10829)
by @yuhan - 550ec43 -
2/ definitions in create new project: update create-new-project docs (#10830)
by @yuhan - 7eb520d -
[docs] - [definitions] - Update dbt tutorial to use Definitions (#10842)
by @erinkcochran87 - 891dc89 - `2.1/ definitions in in create new...
1.1.6 (core) / 0.17.6 (libraries)
New
- [dagit] Throughout Dagit, when the default repository name
__repository__
is used for a repo, only the code location name will be shown. This change also applies to URL paths. - [dagster-dbt] When attempting to generate software-defined assets from a dbt Cloud job, an error is now raised if none are created.
- [dagster-dbt] Software-defined assets can now be generated for dbt Cloud jobs that execute multiple commands.
Bugfixes
- Fixed a bug that caused
load_asset_value
to error with the default IO manager when apartition_key
argument was provided. - Previously, trying to access
context.partition_key
orcontext.asset_partition_key_for_output
when invoking an asset directly (e.g. in a unit test) would result in an error. This has been fixed. - Failure hooks now receive the original exception instead of
RetryRequested
when using a retry policy. - The LocationStateChange GraphQL subscription has been fixed (thanks @****roeij !)**
- Fixed a bug where a
sqlite3.ProgrammingError
error was raised when creating an ephemeralDagsterInstance
, most commonly whenbuild_resources
was called without passing in an instance parameter. - [dagstermill] Jupyter notebooks now correctly render in Dagit on Windows machines.
- [dagster-duckdb-pyspark] New
duckdb_pyspark_io_manager
helper to automatically create a DuckDB I/O manager that can store and load PySpark DataFrames. - [dagster-mysql] Fixed a bug where versions of mysql <
8.0.31
would raise an error on some run queries. - [dagster-postgres] connection url param “options“ are no longer overwritten in dagit.
- [dagit] Dagit now allows backfills to be launched for asset jobs that have partitions and required config.
- [dagit] Dagit no longer renders the "Job in repo@location" label incorrectly in Chrome v109.
- [dagit] Dagit's run list now shows improved labels on asset group runs of more than three assets
- [dagit] Dagit's run gantt chart now renders per-step resource initialization markers correctly.
- [dagit] In op and asset descriptions in Dagit, rendered markdown no longer includes extraneous escape slashes.
- Assorted typos and omissions fixed in the docs — thanks @C0DK and @akan72!
Experimental
- As an optional replacement of the workspace/repository concepts, a new
Definitions
entrypoint for tools and the UI has been added. A singleDefinitions
object per code location may be instantiated, and accepts typed, named arguments, rather than the heterogenous list of definitions returned from an@repository
-decorated function. To learn more about this feature, and provide feedback, please refer to the Github Discussion. - [dagster-slack] A new
make_slack_on_freshness_policy_status_change_sensor
allows you to create a sensor to alert you when an asset is out of date with respect to its freshness policy (and when it’s back on time!)
Documentation
- Refreshed
dagstermill
guide and reference page https://docs.dagster.io/integrations/dagstermill - New declarative scheduling guide: https://docs.dagster.io/guides/dagster/scheduling-assets
- New
dagster-snowflake
guide: https://docs.dagster.io/integrations/snowflake - Added docs for asset code versioning: https://docs.dagster.io/concepts/assets/software-defined-assets#asset-code-versions
- Added docs for observable source assets: https://docs.dagster.io/concepts/assets/asset-observations#observable-source-assets
1.1.5 (core) / 0.17.5 (libraries)
Bugfixes
- [dagit] Fixed an issue where the Partitions tab sometimes failed to load for asset jobs.
1.1.4 (core) / 0.17.4 (libraries)
Community Contributions
- Fixed a typo in GCSComputeLogManager docstring (thanks reidab)!
- [dagster-airbyte] job cancellation on run termination is now optional. (Thanks adam-bloom)!
- [dagster-snowflake] Can now specify snowflake role in config to snowflake io manager (Thanks binhnefits)!
- [dagster-aws] A new AWS systems manager resource (thanks zyd14)!
- [dagstermill] Retry policy can now be set on dagstermill assets (thanks nickvazz)!
- Corrected typo in docs on metadata (thanks C0DK)!
New
- Added a
job_name
parameter toInputContext
. - Fixed inconsistent io manager behavior when using
execute_in_process
on aGraphDefinition
(it would use thefs_io_manager
instead of the in-memory io manager). - Compute logs will now load in Dagit even when websocket connections are not supported.
- [dagit] A handful of changes have been made to our URLs:
- The
/instance
URL path prefix has been removed. E.g./instance/runs
can now be found at/runs
. - The
/workspace
URL path prefix has been changed to/locations
. E.g. the URL for jobmy_job
in repositoryfoo@bar
can now be found at/locations/foo@bar/jobs/my_job
.
- The
- [dagit] The “Workspace” navigation item in the top nav has been moved to be a tab under the “Deployment” section of the app, and is renamed to “Definitions”.
- [dagstermill] Dagster events can now be yielded from asset notebooks using
dagstermill.yield_event
. - [dagstermill] Failed notebooks can be saved for inspection and debugging using the new
save_on_notebook_failure
parameter. - [dagster-airflow] Added a new option
use_ephemeral_airflow_db
which will create a job run scoped airflow db for airflow dags running in dagster - [dagster-dbt] Materializing software-defined assets using dbt Cloud jobs now supports partitions.
- [dagster-dbt] Materializing software-defined assets using dbt Cloud jobs now supports subsetting. Individual dbt Cloud models can be materialized, and the proper filters will be passed down to the dbt Cloud job.
- [dagster-dbt] Software-defined assets from dbt Cloud jobs now support configurable group names.
- [dagster-dbt] Software-defined assets from dbt Cloud jobs now support configurable
AssetKey
s.
Bugfixes
- Fixed regression starting in
1.0.16
for some compute log managers where an exception in the compute log manager setup/teardown would cause runs to fail. - The S3 / GCS / Azure compute log managers now sanitize the optional
prefix
argument to prevent badly constructed paths. - [dagit] The run filter typeahead no longer surfaces key-value pairs when searching for
tag:
. This resolves an issue where retrieving the available tags could cause significant performance problems. Tags can still be searched with freeform text, and by adding them via click on individual run rows. - [dagit] Fixed an issue in the Runs tab for job snapshots, where the query would fail and no runs were shown.
- [dagit] Schedules defined with cron unions displayed “Invalid cron string” in Dagit. This has been resolved, and human-readable versions of all members of the union will now be shown.
Breaking Changes
- You can no longer set an output’s asset key by overriding
get_output_asset_key
on theIOManager
handling the output. Previously, this was experimental and undocumented.
Experimental
- Sensor and schedule evaluation contexts now have an experimental
log
property, which log events that can later be viewed in Dagit. To enable these log views in dagit, navigate to the user settings and enable theExperimental schedule/sensor logging view
option. Log links will now be available for sensor/schedule ticks where logs were emitted. Note: this feature is not available for users using theNoOpComputeLogManager
.
1.1.3 (core) / 0.17.3 (libraries)
Bugfixes
- Fixed a bug with the asset reconciliation sensor that caused duplicate runs to be submitted in situations where an asset has a different partitioning than its parents.
- Fixed a bug with the asset reconciliation sensor that caused it to error on time-partitioned assets.
- [dagster-snowflake] Fixed a bug when materializing partitions with the Snowflake I/O manager where sql
BETWEEN
was used to determine the section of the table to replace.BETWEEN
included values from the next partition causing the I/O manager to erroneously delete those entries. - [dagster-duckdb] Fixed a bug when materializing partitions with the DuckDB I/O manager where sql
BETWEEN
was used to determine the section of the table to replace.BETWEEN
included values from the next partition causing the I/O manager to erroneously delete those entries.
1.1.2 (core) / 0.17.2 (libraries)
Bugfixes
- In Dagit, assets that had been materialized prior to upgrading to 1.1.1 were showing as "Stale". This is now fixed.
- Schedules that were constructed with a list of cron strings previously rendered with an error in Dagit. This is now fixed.
- For users running dagit version >= 1.0.17 (or dagster-cloud) with dagster version < 1.0.17, errors could occur when hitting "Materialize All" and some other asset-related interactions. This has been fixed.
1.1.1 (core) / 0.17.1 (libraries) - Thank U, Next
Major Changes since 1.0.0 (core) / 0.16.0 (libraries)
Core
- You can now create multi-dimensional partitions definitions for software-defined assets, through the
MultiPartitionsDefinition
API. In Dagit, you can filter and materialize certain partitions by providing ranges per-dimension, and view your materializations by dimension. - The new asset reconciliation sensor automatically materializes assets that have never been materialized or whose upstream assets have changed since the last time they were materialized. It works with partitioned assets too. You can construct it using
build_asset_reconciliation_sensor
. - You can now add a
FreshnessPolicy
to any of your software-defined assets, to specify how up-to-date you expect that asset to be. You can view the freshness status of each asset in Dagit, alert when assets are missing their targets using the@freshness_policy_sensor
, and use thebuild_asset_reconciliation_sensor
to make a sensor that automatically kick off runs to materialize assets based on their freshness policies. - You can now version your asset ops and source assets to help you track which of your assets are stale. You can do this by assigning
op_version
s to software-defined assets orobservation_fn
s toSourceAsset
s. When a set of assets is versioned in this way, their “Upstream Changed” status will be based on whether upstream versions have changed, rather than on whether upstream assets have been re-materialized. You can launch runs that materialize only stale assets. - The new
@multi_asset_sensor
decorator enables defining custom sensors that trigger based on the materializations of multiple assets. The context object supplied to the decorated function has methods to fetch latest materializations by asset key, as well as built-in cursor management to mark specific materializations as “consumed”, so that they won’t be returned in future ticks. It can also fetch materializations by partition and mark individual partitions as consumed. RepositoryDefinition
now exposes aload_asset_value
method, which accepts an asset key and invokes the asset’s I/O manager’sload_input
function to load the asset as a Python object. This can be used in notebooks to do exploratory data analysis on assets.- With the new
asset_selection
parameter on@sensor
andSensorDefinition
, you can now define a sensor that directly targets a selection of assets, instead of targeting a job. - When running
dagit
ordagster-daemon
locally, environment variables included in a.env
file in the formKEY=value
in the same folder as the command will be automatically included in the environment of any Dagster code that runs, allowing you to easily use environment variables during local development.
Dagit
- The Asset Graph has been redesigned to make better use of color to communicate asset health. New status indicators make it easy to spot missing and stale assets (even on large graphs!) and the UI updates in real-time as displayed assets are materialized.
- The Asset Details page has been redesigned and features a new side-by-side UI that makes it easier to inspect event metadata. A color-coded timeline on the partitions view allows you to drag-select a time range and inspect the metadata and status quickly. The new view also supports assets that have been partitioned across multiple dimensions.
- The new Workspace page helps you quickly find and navigate between all your Dagster definitions. It’s also been re-architected to load significantly faster when you have thousands of definitions.
- The Overview page is the new home for the live run timeline and helps you understand the status of all the jobs, schedules, sensors, and backfills across your entire deployment. The timeline is now grouped by repository and shows a run status rollup for each group.
Integrations
dagster-dbt
now supports generating software-defined assets from your dbt Cloud jobs.dagster-airbyte
anddagster-fivetran
now support automatically generating assets from your ETL connections usingload_assets_from_airbyte_instance
andload_assets_from_fivetran_instance
.- New
dagster-duckdb
integration:build_duckdb_io_manager
allows you to build an I/O manager that stores and loads Pandas and PySpark DataFrames in DuckDB.
Database migration
- Optional database schema migration, which can be run via
dagster instance migrate
:- Improves Dagit performance by adding database indexes which should speed up the run view as well as a range of asset-based queries.
- Enables multi-dimensional asset partitions and asset versioning.
Breaking Changes and Deprecations
define_dagstermill_solid
, a legacy API, has been removed fromdagstermill
. Usedefine_dagstermill_op
ordefine_dagstermill_asset
instead to create anop
orasset
from a Jupyter notebook, respectively.- The internal
ComputeLogManager
API is marked as deprecated in favor of an updated interface:CapturedLogManager
. It will be removed in1.2.0
. This should only affect dagster instances that have implemented a custom compute log manager.
Dependency Changes
dagster-graphql
anddagit
now use version 3 ofgraphene
Since 1.0.17
New
- The new
UPathIOManager
base class is now a top-level Dagster export. This enables you to write a custom I/O manager that plugs stores data in any filesystem supported byuniversal-pathlib
and uses different serialization format thanpickle
(Thanks Daniel Gafni!). - The default
fs_io_manager
now inherits from theUPathIOManager
, which means that itsbase_dir
can be a path on any filesystem supported byuniversal-pathlib
(Thanks Daniel Gafni!). build_asset_reconciliation_sensor
now works with support partitioned assets.build_asset_reconciliation_sensor
now launches runs to keep assets in line with their defined FreshnessPolicies.- The
FreshnessPolicy
object is now exported from the top level dagster package. - For assets with a
FreshnessPolicy
defined, their current freshness status will be rendered in the asset graph and asset details pages. - The AWS, GCS, and Azure compute log managers now take an additional config argument
upload_interval
which specifies in seconds, the interval in which partial logs will be uploaded to the respective cloud storage. This can be used to display compute logs for long-running compute steps. - When running
dagit
ordagster-daemon
locally, environment variables included in a.env
file in the formKEY=value
in the same folder as the command will be automatically included in the environment of any Dagster code that runs, allowing you to easily test environment variables during local development. observable_source_asset
decorator creates aSourceAsset
with an associatedobservation_fn
that should return aLogicalVersion
, a new class that wraps a string expressing a version of an asset’s data value.- [dagit] The asset graph now shows branded compute_kind tags for dbt, Airbyte, Fivetran, Python and more.
- [dagit] The asset details page now features a redesigned event viewer, and separate tabs for Partitions, Events, and Plots. This UI was previously behind a feature flag and is now generally available.
- [dagit] The asset graph UI has been revamped and makes better use of color to communicate asset status, especially in the zoomed-out view.
- [dagit] The asset catalog now shows freshness policies in the “Latest Run” column when they are defined on your assets.
- [dagit] The UI for launching backfills in Dagit has been simplified. Rather than selecting detailed ranges, the new UI allows you to select a large “range of interest” and materialize only the partitions of certain statuses within that range.
- [dagit] The partitions page of asset jobs has been updated to show per-asset status rather than per-op status, so that it shares the same terminology and color coding as other asset health views.
- [dagster-k8s] Added an
execute_k8s_job
function that can be called within any op to run an image within a Kubernetes job. The implementation is similar to the build-ink8s_job_op
, but allows additional customization - for example, you can incorporate the output of a previous op into the launched Kubernetes job by passing it intoexecute_k8s_job
. See the dagster-k8s API docs for more information. - [dagster-databricks] Environment variables used by dagster cloud are now automatically set when submitting databricks jobs if they exist, thank you @zyd14!
- [dagstermill]
define_dagstermill_asset
now supportsRetryPolicy
. Thanks @nickvazz! - [dagster-airbyte] When loading assets from an Airbyte instance using
load_assets_from_airbyte_instance
, users can now optionally customize asset names usingconnector_to_asset_key_fn
. - [dagster-fivetran] When loading assets from a Fivetran instance using
load_assets_from_fivetran_instance
, users can now alter the IO manager usingio_manager_key
orconnector_to_io_manager_key_fn
, and customize asset names usingconnector_to_asset_key_fn
.
Bugfixes
- Fixed a bug where terminating runs from a backfill would fail without notice.
- Executing a subset of ops within a job that specifies its config value directly on the job, it no longer attempts to use that config value as the default. The default is still presented in the editable interface in dagit.
- [dagit] The partition step run matrix now reflects historical step status instead of just the last run’s step status for a particular partition.
Documentation
- Updated Environment variables and secrets docs with info/instructions for using local
.env
files - Added [a n...
1.0.17 (core) / 0.16.17 (libraries)
New
- With the new
asset_selection
parameter on@sensor
andSensorDefinition
, you can now define a sensor that directly targets a selection of assets, instead of targeting a job. materialize
andmaterialize_to_memory
now accept araise_on_error
argument, which allows you to determine whether to raise an Error if the run hits an error or just return as failed.- (experimental) Dagster now supports multi-dimensional asset partitions, through a new
MultiPartitionsDefinition
object. An optional schema migration enables support for this feature (run viadagster instance migrate
). Users who are not using this feature do not need to run the migration. - You can now launch a run that targets a range of asset partitions, by supplying the "dagster/asset_partition_range_start" and "dagster/asset_partition_range_end" tags.
- [dagit] Asset and op graphs in Dagit now show integration logos, making it easier to identify assets backed by notebooks, DBT, Airbyte, and more.
- [dagit] a
-db-pool-recycle
cli flag (and dbPoolRecycle helm option) have been added to control how long the pooled connection dagit uses persists before recycle. The default of 1 hour is now respected by postgres (mysql previously already had a hard coded 1hr setting). Thanks @adam-bloom! - [dagster-airbyte] Introduced the ability to specify output IO managers when using
load_assets_from_airbyte_instance
andload_assets_from_airbyte_project
. - [dagster-dbt] the
dbt_cloud_resource
resource configurationaccount_id
can now be sourced from the environment. Thanks @sowusu-ba! - [dagster-duckdb] The DuckDB integration improvements: PySpark DataFrames are now fully supported, “schema” can be specified via IO Manager config, and API documentation has been improved to include more examples
- [dagster-fivetran] Introduced experimental
load_assets_from_fivetran_instance
helper which automatically pulls assets from a Fivetran instance. - [dagster-k8s] Fixed an issue where setting the
securityContext
configuration of the Dagit pod in the Helm chart didn’t apply to one of its containers. Thanks @jblawatt!
Bugfixes
- Fixed a bug that caused the
asset_selection
parameter ofRunRequest
to not be respected when used inside a schedule. - Fixed a bug with health checks during delayed Op retries with the k8s_executor and docker_executor.
- [dagit] The asset graph now live-updates when assets fail to materialize due to op failures.
- [dagit] The "Materialize" button now respects the backfill permission for multi-run materializations.
- [dagit] Materializations without metadata are padded correctly in the run logs.
- [dagster-aws] Fixed an issue where setting the value of
task_definition
field in theEcsRunLauncher
to an environment variable stopped working. - [dagster-dbt] Add exposures in
load_assets_from_dbt_manifest
. This fixed then error whenload_assets_from_dbt_manifest
failed to load from dbt manifest with exposures. Thanks @sowusu-ba! - [dagster-duckdb] In some examples, the duckdb config was incorrectly specified. This has been fixed.
Breaking Changes
- The behavior of the experimental asset reconciliation sensor, which is accessible via
build_asset_reconciliation_sensor
has changed to be more focused on reconciliation. It now materializes assets that have never been materialized before and avoids materializing assets that are “Upstream changed”. Thebuild_asset_reconciliation_sensor
API no longer acceptswait_for_in_progress_runs
andwait_for_all_upstream
arguments.
Documentation
- Added documentation outlining environment variable declaration and usage in Dagster code, including how to pass secrets.
- Fixed a typo on Dagster Instance page. Thanks @domsj!
All Changes
See All Contributors
- 7e9d8f6 -
[jog] host_representation_tests, instance_tests, selector_tests (#10256)
by @dpeng817 - ec07488 -
[jog] resource_tests (#10257)
by @dpeng817 - 8e44cf5 -
[dagstermill] notebook backed assets (#10277)
by @jamiedemaria - ce52573 -
notebook and assets example project (#10315)
by @jamiedemaria - 10187df -
[dagster-airbyte][managed-elements] Explicit handling of reconciling secret values (#10195)
by @benpankow - faece2a -
[duckdb] integration improvements (#10114)
by @jamiedemaria - b094d26 -
Fix Helm package skipping (#10313)
by @jmsanders - 0500534 -
Remove special casing for graphql tests (#10327)
by @jmsanders - 0c89026 -
Add client ID to dagit (#10316)
by @dpeng817 - 2cc3545 -
[dagster-airflow] add airflow 2 support to
make_dagster_job_from_airflow_dag+ xcom mock option (#10337)
by @Ramshackle-Jamathon - a403cfc -
1.0.16 changelog (#10340)
by @alangenfeld - 3bbca03 -
disentangle asset reconciliation sensor from MultiAssetSensorDefinition (#10258)
by @sryza - 1130ec0 -
Mock tqdm in tests to avoid segfaults (#10343)
by @jmsanders - fa4a445 -
Automation: versioned docs for 1.0.16
by @elementl-devtools - 3b07b06 -
update 1.0.16 changelog (#10346)
by @yuhan - 8b44cda -
Better fix for tooltips around disabled buttons + gitlab icon (#10338)
by @salazarm - 08f4e2d -
Back-compat fix for setting the task definition in the EcsRunLauncher to an env var (#10341)
by @gibsondan - 8289da9 -
Mock each callsite of tqdm (#10368)
by @gibsondan - 15f1b09 -
Build integration steps before test project steps (#10367)
by @jmsanders - 7fa824b -
Packages with test changes only shouldn't run deps (#10309)
by @jmsanders - a8d457a -
Remove test-project-core (#10310)
by @jmsanders - 369fb96 -
chore: add project urls to dagster pypi (#10328)
by @rexledesma - 5690af5 -
fix: add comma (#10373)
by @rexledesma - 22cf4db -
add securityContext to dagit init-user-deployment initContainers (#10369)
by @gibsondan - adf924f -
JB - Docs Typography Follow-ups (#10344)
by @braunjj - 49081bd -
[dagit] Add more logos to tags (#10355)
by @jamiedemaria - 713d873 -
[Multi-dimensional partitions 1/n] Add schema migration for asset event tags table (#10001)
by @clairelin135 - 0244116 -
Revert "Mock each callsite of tqdm" (#10379)
by @jmsanders - a34ffc5 -
[Multi-dimensional partitions 2/n] Read/write from asset event tags table (#10056)
by @clairelin135 - a8f8be0 -
Prevent segfaults (#10372)
by @jmsanders - d709c11 -
[apidocs] clarify usage of create_databricks_job_op (#10299)
by @sryza - cefab82 -
Mark celery-k8s-test-suite as flaky (#10204)
by @jmsanders - 6d1429c -
[Multi-dimensional partitions 3/n] Output multi-dimensional materializations (#10082)
by @clairelin135 - 454a570 -
fix duckdb configs in examples (#10378)
by @jamiedemaria - 79d1f12 -
Revert "Mark celery-k8s-test-suite as flaky" (#10384)
by @jmsanders - b4ccac3 -
Unpin grpc (#10386)
by @gibsondan - 22d94cd -
some refactorings to asset reconciliation sensor (#10233)
by @sryza - 3065bad -
fix mysql heading level + typo (#10336)
by @domsj - 620d6cf -
[dagster-fivetran] Enable loading of Fivetran connection assets from instance (#10290)
by @benpankow - edcdcba -
Resolver -> AssetGraph (#10401)
by @sryza - a35654b -
Enable accessing base jobs off of repository definitions (#10405)
by @sryza - ef4a4bb -
add pyrightconfig.json to .gitignore (#10403)
by @sryza - e9fcb96 -
[dagster-dbt] add exposures in load_assets_from_dbt_manifest (#10395)
by @sowusu-ba - 339d14c -
operate on keys instead of strings in AssetSelection and AssetGraph (#10402)
by @sryza - 9607192 -
Updated "Loaded with Errors" link (#10421)
by @gibsondan - 7c205d5 -
[dagster-io/ui] Add stroke color to TextArea (#10422)
by @hellendag - 4900d22 -
Install project-fully-featured (#10419)
by @jmsanders - 353ed2a -
More process cleanup in grpc tests (#10423)
by @gibsondan - b6aea90 -
Add methods to AssetGraph for traversing asset partitions graph (#10413)
by @sryza - 29b24f1 -
[dagit] Update partner compute_kind tags to latest designs (#10394)
by @bengotow - 4b207e5 -
[dagit] Fix materialization log padding when no metadata is present (#10350)
by @bengotow - cd5af37 -
[dagit] Respect backfill permission in asset backfill modal (#10387)
by @bengotow - 174a958 -
[freshness-policy] add latency freshness policy (#10393)
by @OwenKephart - 50026a1 -
Revert "Unpin grpc (#10386)" (#10428)
by @gibsondan - 44c9ddb -
support RunRequest.asset_selection in schedules (#10400)
by @sryza - 4df96a7 -
support raise_on_error in materialize and materialize_to_memory (#10397)
by @sryza - 42c47a8 -
docs(cacheable-assets): mark unimplemented methods as abstract (#10424)
by @rexledesma - c694526 -
[easy] fix incorrect header in docker guide (#10427)
by @gibsondan - 36a8383 -
[dagit] Fix bug in asset live reloading after step failures, clean up AssetView (#10349)
by @bengotow - 3f75ae6 -
allow sensors to target asset selections instead of jobs (#10417)
by @sryza - 1365944 -
Implement abstract methods (#10434)
by @jmsanders - 46e41ad -
[graphql] handle null int metadata val (#10436)
by @alangenfeld - dbbfffb -
[jog] convert runtime_types_tests (#10317)
by @dpeng817 - bbe1378 -
[jog] convert core_test/selector_tests (#10318)
by @dpeng817 - 649ea0e -
[easy][dagster-airbyte] Treat SSH key as secret for managed stack (#10390)
by @benpankow - dba7b8b -
[jog] Convert snap tests (#10319)
by @dpeng817 - 9e28855 -
Expose sqlalchemy pool recycle option for mysql/postgres (#10416)
by @adam-bloom - 1e7e9a7 -
cached_method decorator (#10398)
by @sryza - 7f6a458 -
Enable action logging in dagit (#10342)
by @dpeng817 - 1e9af55 -
Temporarily skip celery-k8s tests (#10438)
by @j...
1.0.16 (core) / 0.16.16 (libraries)
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
See All Contributors
- ee39fcd -
rm all_types from config_context (#10203)
by @alangenfeld - bad2e44 -
Also skip docs next (#10178)
by @jmsanders - bd6e269 -
Make handleLaunchResult agnostic to the query that returned the data (#10179)
by @salazarm - b5212c7 -
Make PythonPackages.get() more flexible to _/- (#10184)
by @jmsanders - 16bc4cf -
[dagit] Invert stored state for expand/collapse in Overview pages (#10212)
by @hellendag - af58bf9 -
[config] memoize ConfigType snap creation (#10210)
by @alangenfeld - 2eebc3c -
[config] avoid double init on field cache objects (#10214)
by @alangenfeld - fcda5f3 -
Override default io manager in more places (#10202)
by @johannkm - 59ae17e -
Fix black (#10216)
by @johannkm - d4334f1 -
type annotations on backfill-related code paths (#9402)
by @sryza - b56013e -
Fix lint (#10218)
by @johannkm - 3176dcc -
Add docs for customizing the serverless base image (#9571)
by @petehunt - a24298a -
Skip test-project image builds (#10099)
by @jmsanders - f7c058a -
[dagit] Updated asset details event view (#10143)
by @bengotow - 4ef9d27 -
[dagit] Fix AssetView.test key warnings (#10226)
by @hellendag - 2bbf998 -
Also trigger builds when tox.ini changes (#10209)
by @jmsanders - c1ff910 -
1.0.15 changelog (#10227)
by @jamiedemaria - 688a5d8 -
Automation: versioned docs for 1.0.15
by @elementl-devtools - 0478723 -
add materialization property on dagster event (#10230)
by @prha - cf8ad4a -
Parse HEAD commit in addition to BUILDKITE_MESSAGE (#10208)
by @jmsanders - 58ee17c -
Allow default io_manager load_input to support partitions of differing frequencies (#10172)
by @andrewgryan - 67313e8 -
Install the correct dagster-buildkite CLI (#10211)
by @jmsanders - cf84896 -
Type annotations in dagster-graphql (#10005)
by @smackesey - 174dd99 -
fix black, mypy (#10235)
by @prha - 3c89b70 -
[freshness-policy] [1/n] FreshnessPolicy object (#10024)
by @OwenKephart - 281595b -
Break up sensor_definition.py (#10181)
by @sryza - ffa01e1 -
Highlight config entry when being hovered in yaml editor (#10239)
by @salazarm - a5f0fa9 -
Resolve multi-asset deps when they have the same group (#10222)
by @peay - 77faa3c -
update apidoc for postgres (#10241)
by @prha - 35b8f8b -
fix schedules threading config (#10247)
by @alangenfeld - 8296cf7 -
[dagit] Ship Overview/Workspace (#10245)
by @hellendag - 24af700 -
Fix stray references to define_assets_job (#10199)
by @bengotow - 631c3ef -
captured log manager (#9429)
by @prha - 65b47a0 -
Allow for longer messages in Teams HeroCard (#10234)
by @jayhale - ee43f93 -
[dagit] Clean up code post-Overview changes (#10249)
by @hellendag - a097c43 -
[dagit] Move the refresh indicator on asset details pages to avoid flicker (#10253)
by @bengotow - ce7afb7 -
[dagit] Fix issues with embedding fonts in downloaded DAG SVGs (#10252)
by @bengotow - 37f2c95 -
[dagit] Fix daylight savings issue in humanCronString.test (#10263)
by @hellendag - 4ca8da0 -
[dagit] Make 50-level colors opaque (#10186)
by @hellendag - 997fdbb -
[dagit] Add query countdown/refresh to Timeline (#10250)
by @hellendag - da7555c -
Support overriding run config for partitions with execute_in_process (#10246)
by @sryza - a2bb0cf -
Add calendar icon (#10267)
by @salazarm - 5de98f5 -
UPathIOManager - filesystem-agnostic IOManager base (#10193)
by @danielgafni - 40bf6c7 -
rename logKey to fileKey / logFileKey for disambiguation with new API (#9956)
by @prha - dc667ef -
fix some cases in group-based asset dep resolution (#10266)
by @sryza - ef678e6 -
dagster-io/ui release notes (#10269)
by @salazarm - 966bfb7 -
fix UnresolvedAssetJobDefinition.run_request_for_partition when confi… (#10238)
by @sryza - 36f7c38 -
Improve doc for
InputContext.{dagster_type,metadata}(#10242)
by @peay - 69bfd0c -
Fetch asset materialization planned event from index shard in Sqlite (#10248)
by @clairelin135 - cb62bc4 -
fix #9193: add retry policy to @asset and @multi_asset (#10150)
by @adam-bloom - ca18259 -
adds dagster-aws install to dockerfile in docker deployment guide (#10225)
by @jamiedemaria - e6444be -
keep storage name for serialized event backcompat (#10280)
by @prha - 16b3cc3 -
graphql for captured log subscription (#9957)
by @prha - 9ccfe7c -
Add NotebookMetadataValue (#10278)
by @jamiedemaria - b88f309 -
Add volumes and volumeMounts to dagit and daemon in OSS helm chart (#10285)
by @gibsondan - 1830880 -
support new captured log API for process-based execution (#9958)
by @prha - a0a1340 -
add new capture APIs in frontend queries (#9959)
by @prha - 621b57a -
specify schema in pandas to_sql (#10289)
by @jamiedemaria - 7dd241f -
[dagit] Fix AssetView flakiness (#10293)
by @hellendag - fc6ea04 -
[dagit] Middle-truncate asset key path in virtualized list (#10275)
by @hellendag - b4c0930 -
Snowflake IO Manager API docs (#10175)
by @jamiedemaria - 2b3280f -
Compress execute_step args (#10244)
by @johannkm - 1dd602a -
fix black formatting (#10298)
by @prha - 9a3b5bc -
fix backfill table status (#10295)
by @prha - f7f1e13 -
run_config argument on run_request_for_partition (#10279)
by @sryza - 0e5386b -
[dagit] NotebookMetadataValue support (#10287)
by @jamiedemaria - f966490 -
[dagit] Fix very tall configs in run config dialog (#10301)
by @hellendag - f466eb7 -
Observable source asset decorator (#9899)
by @smackesey - 70c5f8d -
convert NoOpComputeLogManager to support captured log API (#9960)
by @prha - 4df6e55 - `convert S3 compute log manager to support ne...
1.0.15 (core) / 0.16.15 (libraries)
New
- [dagit] The run timeline now shows all future schedule ticks for the visible time window, not just the next ten ticks.
- [dagit] Asset graph views in Dagit refresh as materialization events arrive, making it easier to watch your assets update in real-time.
- [dagster-airbyte] Added support for basic auth login to the Airbyte resource.
- Configuring a Python Log Level will now also apply to system logs created by Dagster during a run.
Bugfixes
- Fixed a bug that broke asset partition mappings when using the
key_prefix
with methods likeload_assets_from_modules
. - [dagster-dbt] When running dbt Cloud jobs with the dbt_cloud_run_op, the op would emit a failure if the targeted job did not create a run_results.json artifact, even if this was the expected behavior. This has been fixed.
- Improved performance by adding database indexes which should speed up the run view as well as a range of asset-based queries. These migrations can be applied by running
dagster instance migrate
. - An issue that would cause schedule/sensor latency in the daemon during workspace refreshes has been resolved.
- [dagit] Shift-clicking Materialize for partitioned assets now shows the asset launchpad, allowing you to launch execution of a partition with config.
Community Contributions
- Fixed a bug where asset keys with
-
were not being properly sanitized in some situations. Thanks @peay! - [dagster-airbyte] A list of connection directories can now be specified in
load_assets_from_airbyte_project
. Thanks @adam-bloom! - [dagster-gcp] Dagster will now retry connecting to GCS if it gets a
ServiceUnavailable
error. Thanks @cavila-evoliq! - [dagster-postgres] Use of SQLAlchemy engine instead of psycopg2 when subscribing to PostgreSQL events. Thanks @peay!
Experimental
- [dagster-dbt] Added a
display_raw_sql
flag to the dbt asset loading functions. If set to False, this will remove the raw sql blobs from the asset descriptions. For large dbt projects, this can significantly reduce the size of the generated workspace snapshots. - [dagit] A “New asset detail pages” feature flag available in Dagit’s settings allows you to preview some upcoming changes to the way historical materializations and partitions are viewed.
All Changes
See All Contributors
- 899e8d5 -
[dagit] Add actions to run timeline empty state (#10092)
by @hellendag - 2e8fae8 -
fix future ticks cursor when no ticks are available (#10095)
by @prha - 2d8ada6 -
Revert "Make the default_job_io_manager overridable via env (#9950)"
by @johannkm - 80f1022 -
Add helm vals for scheduler threading (#10094)
by @dpeng817 - e0b61df -
[dagit] Shift-clicking Materialize should show asset launchpad even if assets are partitioned (#10047)
by @bengotow - bcf581a -
Remove references to services in docker-compose down command test fixture (#10042)
by @dpeng817 - 426fc52 -
1.0.14 changelog (#10106)
by @dpeng817 - 4a22317 -
1.0.14 changelog addendum (#10107)
by @gibsondan - 2af0b8a -
[dagit] Show all future ticks in the timeline window (#10097)
by @hellendag - e8d8525 -
[dagster-postgres] Use SQLAlchemy engine in pynotify instead of psycopg2 directly (#10090)
by @peay - c76d049 -
Jb/Docs UI Cleanup (#10050)
by @braunjj - a0489f9 -
[mypy] fixes for uvicorn types (#10108)
by @alangenfeld - ec3c509 -
Revert "Revert "Make the default_job_io_manager overridable via env (#9950)""
by @johannkm - 07c02c5 -
[dagit] Use gray tags in repo headers (#10078)
by @hellendag - 927054f -
Run make mdx-format (#10113)
by @jmsanders - 565105a -
Upgrade kind (#9992)
by @jmsanders - a06a8db -
rebuild event log indices to include id (#10105)
by @prha - 05a8aa0 -
[dagit] Fix repo bucket sorting in virtualized tables (#10101)
by @hellendag - bd690a6 -
Automation: versioned docs for 1.0.14
by @elementl-devtools - 288f692 -
docs(slack-alert-policies): add slack bot name to setup instructions (#10116)
by @rexledesma - ff07bf9 -
[dagit] Some typographic and spacing tweaks on virtualized tables (#10118)
by @hellendag - 328f4a1 -
Don't gate on elementl emails (#10119)
by @jmsanders - 71e0129 -
Skip docs changes (#10030)
by @jmsanders - bc284fc -
[docs] - improve partitioned asset examples on partitions concepts page (#10084)
by @sryza - ab42f31 -
Walk the Python dependency tree (#10096)
by @jmsanders - 54dbe2d -
[dagit] Add some right padding to clearable text input (#10129)
by @hellendag - 76c9674 -
[dagster-airbyte] Docs for how to use basic auth in current release (#10131)
by @benpankow - 876dfab -
Cache docstring check (#10127)
by @schrockn - a8e67fc -
[dagster-airbyte] Docs fix using with_resources with cacheable asset (#10132)
by @benpankow - 6614290 -
Retry on Service Unavailable (#10110)
by @cavila-evoliq - a90ea64 -
Make AssetKey.__eq__ more efficient (#10139)
by @schrockn - 6af2ba9 -
[docs formatter] Drop mypy ignore lines in docs (#10138)
by @benpankow - 0772a12 -
[refactor] take logic for base asset jobs out of AssetGroup (#10071)
by @sryza - 9df49da -
[dagit] Subscribe to in progress asset runs, refresh on relevant events (#10028)
by @bengotow - 38f5291 -
docs: add h1 header to Dagster readme (#10156)
by @rexledesma - 3a8f4e1 -
docs: update @dagsterio -> @dagster (#10158)
by @rexledesma - 85cc0ca -
Use instance.python_log_level when determining default system logger level (#10073)
by @gibsondan - a20c2b7 -
in hacker news demo, fix column filtering with partitions and snowfla… (#10141)
by @sryza - 30c0751 -
Allow overriding svg with color (#10163)
by @salazarm - fb2b580 -
[dagster-airbyte] Add top-level support for basic auth username & password (#10130)
by @benpankow - c9dca01 -
improve api doc examples for cloud object store IO managers (#10153)
by @sryza - eeb6c8f -
switch order of assets and jobs in partitions doc (#10142)
by @sryza - 99f3579 -
Fix AssetsDefinition.with_prefix_or_group to update partition mappings (#10164)
by @peay - 05a08b8 -
Fix assets with dashes in their path and
io_manager_def(#10087)
by @peay - 9694525 -
Refactor db io manager to core (#10128)
by @jamiedemaria - 0f2e30c -
docs design: fix icons. make icon changes backcompat (#10174)
by @yuhan - bf3e941 -
Support multi-repo builds (#10135)
by @jmsanders - cb8c7d6 -
[docs] Out -> AssetOut docs tweak (#10146)
by @benpankow - ab0e946 -
Conditionally skip dagit builds (#10165)
by @jmsanders - 0556f09 -
[dagster-managed-elements] Dagster-managed-elements CLI, APIs (#10011)
by @benpankow - ab92934 -
EventLogRecord.partition_key and EventLogRecord.asset_key (#10180)
by @sryza - 01edf1d -
[dagster-airbyte] Airbyte managed elements impl (#10013)
by @benpankow - a4b045d -
[dagster-airbyte] allow filtering connections by directory names (#10151)
by @adam-bloom - 0781a28 -
make_airflow_dag airflow 2 compatibility (#10115)
by @Ramshackle-Jamathon - 60e8f6f -
[dagit] Bump TypeScript (#10133)
by @hellendag - 8bfb2e3 -
[@dagster-io/ui] Release v1.0.6 (#10188)
by @hellendag - c08c0d9 -
[dagster-dbt] allow missing run_results.json (#10187)
by @OwenKephart - 5e74834 -
docs(dagster-cloud-agent): update IAM role link (#10189)
by @rexledesma - 32c316d -
[dagit] Expand run config dialog (#10173)
by @hellendag - 767946a -
Replace custom in-memory logic with in-memory sqlite connection (#10154)
by @prha - e4a2357 -
add cpu and memory to DagsterEcsTaskDefinitionConfig (#10198)
by @gibsondan - 4938f9b -
Allow silencing failures with default io manager override (#10067)
by @johannkm - 5e32b41 -
[dagster-airbyte] Managed elements typo (#10196)
by @benpankow - 385c28a -
[dagit] Consolidate expand/collapse state in Overview tables (#10194)
by @hellendag - 4bd995f -
reduce locking in workspace reload (#10192)
by @alangenfeld - 6d0f696 -
[dagster-dbt] add flag to make asset snapshots smaller (#10213)
by @OwenKephart - 63d00fd -
Extend default timeout (#10205)
by @jmsanders - 886da61 -
[dagster-airbyte] Fix recreating source/destination logic (#10197)
by @benpankow - a5db43e -
Revert 4938f9beb9 and ec3c5099c2
by @johannkm - 6bdd409 -
Make handleLaunchResult agnostic to the query that returned the data (#10179)
by @salazarm - 4caf010 -
rm all_types from config_context (#10203)
by @alangenfeld - 8e2aec7 -
[config] memoize ConfigType snap creation (#10210)
by @alangenfeld - 3f8002d -
[config] avoid double init on field cache objects (#10214)
by @alangenfeld - b8b973c -
Fix black (#10216)
by @johannkm - 5f6a5ea -
[dagit] Invert stored state for expand/collapse in Overview pages (#10212)
by @hellendag - cb3bb61 -
[dagit] Updated asset details event view (#10143)
by @bengotow - 124098c -
1.0.15 changelog (#10227)
by @jamiedemaria - f816bb9 -
1.0.15
by @elementl-devtools