NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #2133 most downloaded on PyPI
Last release 3 days ago
21 Sep 2026
Ships on a steady schedule
a new release about every 2 weeks
Nearly every release is documented
notes for 54 of the last 60 stable releases
5 versions withdrawn
withdrawn after publishing
4 years old
292 releases · first in 2022
One column per quarter.
[dagit] Fixes a "maximum call stack size exceeded" error when viewing a materialization of a root asset in Asset Details
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 Ru
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.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 APInux:
enabled: false
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.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.build_asset_reconciliation_sensor, which should help significantly speed up sensor evaluation in cases where there is a large number of assets or partitions.https://github.com/dagster-io/dagster/compare/1.1.10...1.1.11
<details><summary>See All Contributors</summary>
telemetry: avoid race condition of dagit and daemon creating same dir (#11652) by @yuhan[dagit] Link to the failed run, not the last materialzation, on “Failed" nodes (#11593) by @bengotow[dagit] Stop foreign node links from creating sprawling asset graphs (#11588) by @bengotowrefactor: remove workspace.yaml in favor of pyproject.toml (#11665) by @rexledesmadocs: update license copyright (#11666) by @rexledesmaKill stray tqdms when starting up dagster (#11658) by @gibsondan[Community Nux] Don't use blueprint dialog (#11660) by @salazarmfix code location status when a new location is added in a loading state (#11654) by @prha[dagster-airflow] pass airflow dag timezone to dagster schedule definition (#11663) by @Ramshackle-Jamathonadd example and compose_fn argument doc to job decorator (#11655) by @sryzaRevert "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 @gibsondanRemove community nux for now (#11672) by @salazarmchore(dbt): remove unnecessary dependencies (#11668) by @rexledesmachore(phabricator): remove arcanist config (#11667) by @rexledesmafix a link on deployment/overview (#11674) by @yuhanUnbreak windows tests (and likely the windows multiprocess executor in general) (#11679) by @gibsondanAdd black hook to precommit (#11678) by @smackeseychangelog for 1.1.10 (#11682) by @sryza[dagit] fix clientTime arg (#11670) by @alangenfeldFix black precommit (#11683) by @smackeseyAutomation: versioned docs for 1.1.10 by @elementl-devtools[tick-alerting] Add properties to InstigationTick (#11140) by @dpeng817[tick-alerting] Add docs for tick alerting (#11417) by @dpeng817fix broken link to Airflow library page (#11685) by @sryzaRemove run launcher list from run monitoring docs (#11644) by @gibsondanMake create_repository_using_definitions_args public (#11684) by @gibsondanBring back dagit socket reuse (#11688) by @gibsondanStart event log consumer from latest event (#11681) by @johannkm[dagit] Restore some previous GraphQL codegen behavior (#11675) by @hellendagone more windows test fix for signals (#11680) by @gibsondanShut down the daemon faster when it is interrupted (#11657) by @gibsondanExample of usage of Branching I/O Manager (#11549) by @schrockninclude docs snippet for how to record metadata for non-output assets (#11686) by @sryzaFix stale asset schedule (#11708) by @smackesey[docs][dagit-screenshot] Add CLI command to generate asset SVGs from snippets (#9764) by @benpankowfeat(dbt-cloud): allow jobs to be retrieved from project id (#11673) by @rexledesmafix issue with k8s_job_op when combining command and container_config (#11713) by @gibsondaneliminate SensorExecutionContext, ScheduleExecutionContext (#11038) by @smackeseyMove string construction out of non-error path in check (#11701) by @schrockn[pyright] [core] misc (#11362) by @smackesey[pyright] [core] _utils/error (#11695) by @smackesey[pyright] [core] _utils/backcompat (#11696) by @smackesey[pyright] [core] _cli/api (#11697) by @smackesey[dagit] Rename a few partition data structures in Dagit (#11574) by @bengotowfeat(dbt-cloud): disable schedule only if it exists (#11690) by @rexledesma[dagit] Permissions cleanup (#11712) by @hellendag[dagit] Move User Settings into a Dialog (#11706) by @hellendag[dagit] Fix Definitions filter dialog (#11711) by @hellendag[dagit] Clean up a bunch of document titles (#11715) by @hellendag"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[dagit] Empty state on Runs with better CTAs (#11714) by @hellendag[OSS Nux] only load an iframe for recaptcha after use agrees to submit email (#11743) by @salazarmBan invalid escape chars (#11443) by @clairelin135[@dagster-io/ui] Bump eslint-config (#11703) by @hellendag[dagit] Display source data used in specific asset materializations (#11736) by @bengotow[dagit] Add the Asset compute kind tag in more places #11185 (#11569) by @bengotow[dagit] Add backfill warnings and run tags options to the Materialize modal (#11656) by @bengotow[1/3 partition status cache] Time window subset perf improvements (#11640) by @clairelin135[dagster-dbt] add config schema for dbt asset op (#11710) by @OwenKephart[asset-reconciliation] Limit the partitions that can be reconciled with the sensor (#11582) by @OwenKephart[dagit] Strip down query for Scheduled Runs (#11751) by @hellendag[asset-reconciliation] Improve performance for never materialized root partitions (#11755) by @OwenKephart[dagit] Fix Backfills page locking up when displaying large backfills, improve "target" column (#11693) by @bengotow[airbyte] Consider keys containing credentials a secret (#11620) by @joel-olazagasti[asset-reconciliation] Perf improvements for reconciliation sensor (#11633) by @OwenKephart[OSS Nux] Add kill switch + persist Nux dismissal in temp folder (#11758) by @salazarm[pyright] [core] _core/definitions/scoped_resources_builder (#11698) by @smackeseyAdd back dagster_world.mp4 video (#11763) by @salazarmopen grpc servers in their own process group so they don't get interrupted along with whatever process opened them (#11737) by @gibsondanDon't spew "Aborted!" to the command-line when the Daemon is cleanly interrupted (#11739) by @gibsondanSwitch the grpcio dependency to use an internally built m1 wheel for m1 macs only (#11760) by @shalabhcInclude retry count in the job created by k8s_job_op (#11753) by @gibsondantest: unpin responses (#11768) by @rexledesmaSelectively show the multiple files/modules help text to the commands where it applies (#11689) by @gibsondanfeat(dbt-cloud): cache compile run id as env var for job (#11691) by @rexledesma[2/3 partition status cache] Serialize version, rebuild cache for unsupported version (#11687) by @clairelin135Fix airflow_op_to_dagster_op test (#11771) by @clairelin135DBT code version docs (#11692) by @smackeseyimprove performance of StaticPartitionsDefinition.__eq__ (#11775) by @sryza[dagster-snowflake] remove password check for private key auth for unencrypted keys (#11745) by @jamiedemariaRename "base asset job" to "implicit asset job" in RepositoryDefinition methods (#11344) by @schrocknmark PartitionMappings not experimental in IO manager doc (#11774) by @sryzadagit => dagster dev in docs (#11740) by @gibsondanRevert "Switch the grpcio dependency to use an internally built m1 wheel for m1 macs only (#11760)" (#11776) by @gibsondanPerformance improvements for large multi assets (#11782) by @OwenKephartUpdate docs to include wheel workarounds for m1 macs (#11777) by @gibsondanNew "running dagster locally" deployment guide that walks through dagster dev usage (#11741) by @gibsondanChangelog 1.1.11 (#11789) by @dpeng817Restore grpcio pin for python 3.10 (#11784) by @gibsondanfeat(dagster-dbt): use cached run id to fetch artifacts (#11744) by @rexledesmafeat(dbt-cloud): raise exception if cached compile has not completed (#11792) by @rexledesmachangelog 1.1.11 pt 2 (#11800) by @alangenfeld[dagit] Add missing changelog entries for 1.1.11 (#11803) by @bengotow1.1.11 by @elementl-devtools</details>
The selection argument of define_asset_job now accepts lists of AssetKeys or AssetsDefinitions.
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 command and the default port 3000 is already in use.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.stdout or stderr tab. The next time you view compute logs, you will see that tab first by default.executor and loggers arguments on Definitions are no longer experimental.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-azure / dagster-aws / dagster-gcp)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_*).DbtManifestAssetSelection which could result in KeyErrors when selecting from projects with sources defined./instance and /workspace path prefixes were removed in previous version, but redirects were left in place. These redirects have now been removed.StaticPartitionMapping enables explicitly defining the dependencies between partitions in two StaticPartitionsDefinitions. Thanks Alexander VR!https://github.com/dagster-io/dagster/compare/1.1.9...1.1.10
<details><summary>See All Contributors</summary>
docs for new tag_concurrency_limits feature on executor (#11499) by @gibsondan[dagster-airflow] warn on airflow dataset (#11498) by @Ramshackle-JamathonAdd typehints to snapshot arguments to create_run (#11454) by @schrocknTypehint and do invariants for root_run_id, parent_run_id, step_keys_to_execute and execution_plan_snapshot (#11455) by @schrocknTypehint and validate tags and status params to create_run (#11456) by @schrocknRequire kwargs on create_reexecuted_run (#11460) by @schrocknMake frozentags inherit from Mapping[str, str] and correctly type _check_execute_external_pipeline_args (#11461) by @schrocknAdd support for loading cacheable assets from module (#10389) by @benpankowenable filtering by asset tag when asset tags table is not present (#11509) by @sryzaonly count materializations within backfill (#11506) by @sryzatelemetry: add num_assets_in_repo in log_repo_stats metadata (#11513) by @yuhantelemetry: add location_name in repo-level metadata (#11514) by @yuhan[dagit] Clean up /instance and /workspace redirects (#11503) by @hellendagFix getting partition mappings when asset dependencies are resolved (#11483) by @sryzadocstring examples for AssetSelection.keys (#11477) by @sryza[dagster-airflow] add make_dagster_definitions_from_airflow_dags_pathandmake_dagster_definitions_from_airflow_dag_bag apis (#11441) by @Ramshackle-JamathonFix maxResumeRunAttempts being explicitly enabled even if you set it to 0 (#11511) by @gibsondandagster-graphql tests for permissions failures (#11486) by @gibsondanHook for Cloud dagit into PythonErrorInfo (#11467) by @salazarmChangelog 1.1.8 (#11526) by @clairelin135Add experimental examples directory (#11505) by @schrockn[dagster-airbyte] Allow specifying freshness policies on Airbyte assets (#11525) by @benpankowMigrate airflow guide to definitions (#11518) by @petehuntAutomation: versioned docs for 1.1.8 by @elementl-devtoolsRemove packaging v22 cap (#11212) by @smackeseyremove pragmas in docs snippets (#11335) by @smackeseyupdate black 22.3.0 -> 22.12.0 and enable --preview (#10900) by @smackeseyAdopt ruff as linter (#10901) by @smackeseyAdd .git to excludes for ruff in pyproject.toml (#11534) by @schrocknchore(ruff): add pre-commit config (#11538) by @rexledesmachore(dagit): remove unnecessary dependencies (#11532) by @rexledesmadocs: add links to follow LinkedIn page (#11533) by @rexledesma[dagit] Use cache-and-network as default watchQuery fetch policy (#11523) by @hellendag[docs] - Add GSC site verification file (#11547) by @erinkcochran87disable executing airflow_example_http_operator in tests (#11544) by @Ramshackle-JamathonAdd and apply ruff docstring rules (#10907) by @smackeseyRuff docstrings D209 (NewLineAfterLastParagraph) (#10993) by @smackeseyUse Config class instead of base class kwargs in structured config to not break early pydantic versions (#11546) by @schrockn[fix] Fix builtin type error related to resource annotations (#11551) by @benpankow[changelog] 1.1.9 (#11556) by @benpankowadd NullMetadataValue (#10969) by @smackeseyRuff docstrings D210 (NoSurroundingWhitespace) (#10994) by @smackesey[changelog] 1.1.9 round 2 (#11560) by @benpankowMake JsonMetadataValue accept lists (#11550) by @smackeseyRuff docstrings D212,D214 (MultilineSummaryFirstLine,SectionNotOverIndented) (#10995) by @smackeseyAutomation: versioned docs for 1.1.9 by @elementl-devtoolsRuff docstring D300 (UsesTripleQuotes) (#10996) by @smackeseyAdd a graphql field and API for location-scoped permissions (#11097) by @gibsondan[@dagster-io/eslint-config] Remove GraphQL type parameter rule (#11479) by @hellendagRuff docstrings D301 (Raw string for backslash in docstring)) (#11329) by @smackesey[dagit] Update eslint-config dep in dagster-io/ui (#11563) by @hellendag[dagit] Stop generating docblocks on schema.graphql and codegen (#11564) by @hellendag[dagit] Track most recent preference for computed log type view (#11527) by @hellendagFix graphql permisisons checks, fix black (#11566) by @gibsondan[docs] - Move ops + jobs tutorial to Guides (#11528) by @erinkcochran87[dynamic] fix how skips cascade (#11561) by @alangenfeld[dagit] Add GraphQL configuration for VSCode (#11565) by @hellendag[dagster-dbt] add DbtManifestAssetSelection to API docs (#11562) by @OwenKephartdefine_asset_job accept AssetKey and AssetsDefinition selections (#11568) by @sryzaRuff docstrings D403,D405 (FirstLineCapitalized,CapitalizeSectionName) (#10997) by @smackeseyfix remote captured log manager complete check (#11552) by @prhamisc docs fixes in tutorial / getting started / assets (#11575) by @gibsondandocs: fix typo Telementry -> Telemetry (#11571) by @chriszsfix docstring for static_partitioned_config (#11535) by @severoAdd tip when the multiprocess executor hits a likely OOM error (#11570) by @gibsondanRuff docstrings D414 (NonEmptySection) (#10999) by @smackeseyRuff docstrings D419 (NonEmpty) (#11000) by @smackesey[@dagster-io/ui] Output cjs (#11594) by @hellendagShow clearer grpc errors, as well as a custom failure for sensor timeouts in particular since those are so common (#11576) by @gibsondanAdds OSS email collection dialog (#11480) by @salazarmRuff docstrings D202 (NoBlankLineAfterFunction) (#10992) by @smackeseyRuff docstrings D411,D412 (BlankLineBeforeSection,NoBlankLinesBetweenHeaderAndContent) (#10998) by @smackesey Change exclude to extend-exclude in pyproject.toml settings for ruff (#11591) by @schrocknrefactor(dbt-cloud): remove v2 suffix (#11586) by @rexledesmafeat(dbt-cloud): allow env vars to be retrieved and set (#11592) by @rexledesmaRuff docstrings (misc fixes) (#11002) by @smackesey[docs] - Remove accidental comments (#11601) by @erinkcochran87docs: fix dead link to Slack community (#11602) by @EmilRexFix graphene enum not being instantiated (#11605) by @gibsondan[dagit] Add location-scoped permissions to Dagit (#11587) by @hellendag[dagster-dbt] parse log level when json_log_level is not set (#11596) by @OwenKephartuse Python type annotations in loading-from-config docs examples (#11609) by @sryza[dagit] Use updated react-scripts fork for codegen babel plugin (#11583) by @hellendagFall back to a different port when 3000 is in use instead of failing (#11610) by @gibsondan[dagit] Some Permissions tweaks to support Cloud (#11612) by @hellendagRuff docstrings D415 (EndsInPunctuation) (#11001) by @smackesey[dagster-dbt] allow for non-model nodes to be part of the DbtManifestAssetSelection (#11617) by @OwenKephartUpdate OSS Nux to receive size from iframe via postmessage (#11625) by @salazarm[freshness-policies] fix get_non_source_roots (#11619) by @OwenKephartremove reexecute_pipeline_iterator (#11608) by @alangenfeld[eslint-config] Enable ignoreExternal on no-cycle rule (#11632) by @hellendag[@dagster-io/ui] Bump eslint-config (#11634) by @hellendagadd example to TimeWindowPartitionMapping apidoc (#11615) by @sryzaFix typo in Dagster instance documentation (#11621) by @GrigoriiKushniruse run tags instead of asset tags to filter materializations within backfill (#11555) by @sryzatest fixes for python 3.7 (#11636) by @gibsondanRestrict the grpcio pin to only py3.7/3.8/3.9 (#11635) by @gibsondan Remove experimental flag on executor and loggers parameters of Definitions and add more detail to docblock (#11626) by @schrockn[dagster-snowflake-pandas] update doc string to use Definitions (#11606) by @jamiedemaria[dagster-snowflake] Add private key authentication for Snowflake (#10750) by @joshuataylorLoad OSS Nux iframe via https (#11638) by @salazarmtelemetry: add step start/success/failure event + client timestamp (#11624) by @yuhanAdd StaticPartitionMapping as a built-in PartitionMapping (#11521) by @AlexanderVR[dagster-airbyte] Enable setting a destination table prefix using managed ingestion (#11057) by @benpankowtelemetry: add is_known_ci_env (#11642) by @yuhanstale asset materialization for schedules and sensors (#11516) by @smackeseytelemetry: avoid race condition of dagit and daemon creating same dir (#11652) by @yuhan[Community Nux] Don't use blueprint dialog (#11660) by @salazarmfix code location status when a new location is added in a loading state (#11654) by @prha[dagster-airflow] pass airflow dag timezone to dagster schedule definition (#11663) by @Ramshackle-JamathonRevert "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 @gibsondanRemove community nux for now (#11672) by @salazarmUnbreak windows tests (and likely the windows multiprocess executor in general) (#11679) by @gibsondan1.1.10 by @elementl-devtools</details>
Nothing published for this version
5a82bdc - deprecate job-level memoization in docs (#11392) by @sryza
tag_concurrency_limits key that allows you to specify limits on the number of ops with certain tags that can be executing at once within a single run. See the docs for more information.ExecuteInProcessResult, the type returned by materialize, materialize_to_memory, and execute_in_process, now has an asset_value method that allows you to fetch output values by asset key.AssetIns can now accept Nothing for their dagster_type, which allows omitting the input from the parameters of the @asset- or @multi_asset- decorated function. This is useful when you want to specify a partition mapping or metadata for a non-managed input.start_offset and end_offset arguments of TimeWindowPartitionMapping now work across TimeWindowPartitionsDefinitions with different start dates and times.add_output_metadata is called multiple times within an op, asset, or IO manager handle_output, the values will now be merged, instead of later dictionaries overwriting earlier ones.materialize and materialize_to_memory now both accept a tags argument.SingleDimensionDependencyMapping, a PartitionMapping object that defines a correspondence between an upstream single-dimensional partitions definition and a downstream MultiPartitionsDefinition.RUN_DEQUEUED event has been removed from the event log, since it was duplicative with the RUN_STARTING event.raise Exception() from e syntax.runK8sConfig key in the k8sRunLauncher section. See the docs for more information.securityContext can now be set in the k8sRunLauncher section of the Dagster Helm chart.EcsRunLauncher can now be configured with cpu and memory resources for each launched job. Previously, individual jobs needed to be tagged with CPU and memory resources. See the docs for more information.S3ComputeLogManager now takes in an argument upload_extra_args which are passed through as the ExtraArgs parameter to the file upload call.make_dagster_definitions_from_airflow_dags_path and make_dagster_definitions_from_airflow_dag_bag which are passed through as the ExtraArgs parameter to the file upload call.ExperimentalWarnings related to LogicalVersions to appear even when version-based staleness was not in use.load_assets_from_modules and load_assets_from_package_module utilities now will also load cacheable assets from the specified modules.dequeue_num_workers config setting on QueuedRunCoordinatoris now respected.databricks_pyspark_step_launcher will now cancel the relevant databricks job if the Dagster step execution is interrupted.databricks_pyspark_step_launcher could exit with an unhelpful error after receiving an HTTPError from databricks with an empty message. This has been fixed.execute_queries or execute_query on a snowflake_resource would raise an error unless the parameters argument was explicitly set.EcsRunLauncher when launching many runs in parallel. Previously, each run risked hitting a ClientError in AWS for registering too many concurrent changes to the same task definition family. Now, the EcsRunLauncher recovers gracefully from this error by retrying it with backoff.make_dagster_definitions_from_airflow_dags_path and make_dagster_definitions_from_airflow_dag_bag for creating Dagster definitions from a given airflow Dag file path or DagBagUPathIOManager, thanks @danielgafni!FakeS3Session now includes additional functions and improvements to align with the boto3 S3 client API, thanks @asharov!BranchingIOManager to model use case where you wish to read upstream assets from production environments and write them into a development environment.create_repository_using_definitions_args to allow for the creation of named repositories.DbtManifestAssetSelection, which allows you to define selections of assets loaded from a dbt manifest using dbt selection syntax (e.g. tag:foo,path:marts/finance).@repository, replacing them with Definitions.https://github.com/dagster-io/dagster/compare/1.1.7...1.1.8
<details><summary>See All Contributors</summary>
Adjust resources guide to be in a Definitions world by @schrocknadd thread name prefix to run dequeue workers (#11155) by @alangenfeldmake schedules produced by build_schedule_from_partitioned_job more p… (#11147) by @sryza[k8s launcher] security context (#9788) by @alangenfeld[run coordinator] fix threaded tests (#11139) by @alangenfeld[docs] - [definitions] Update Dagit + tutorial screenshots (#11089) by @erinkcochran87[docs] - [definitions] Update Partitions concept docs (#11030) by @erinkcochran87Port asset sensor guide to Definitions by @schrocknUse buildkite_deps.txt to declare explicit buildkite deps (#11025) by @jmsandersTrigger builds when .ini files change (#11161) by @jmsandersRevert "keep track of max timestamps client side for code location up… (#11162) by @prha[docs] - Fix links (#11163) by @erinkcochran87Add create_repository_using_definitions_args by @schrocknChange Graph-backed asset guide code examples to be on Definitions by @schrocknDelete repository unit testing using load_all_definitions in testing guide by @schrockn1.1.7 Changelog (#11165) by @jamiedemariaDo a single pip install in tox suites [OSS] (#11164) by @gibsondanUpdate declarative scheduling guide to include Definitions by @schrocknadd thread name prefix to grpc server (#11158) by @alangenfeldAutomation: versioned docs for 1.1.7 by @elementl-devtoolsFixup rename of requirements.txt -> buildkite_deps.txt (#11160) by @jmsandersfix precedence ordering when merging dictionaries in container context (#11169) by @gibsondansupport in and len on PartitionsSubsets (#11172) by @sryzaDisable breaking azure tests in master (#11183) by @schrockn[docs] Fix typo in title (#11156) by @vpicavetFix regression with passing in None to snowflake resource (#11182) by @gibsondan[dagit] Add tests for partition health data parsing / accessors (#11114) by @bengotowAllow setting resources on EcsContainerContext and EcsRunLauncher (#11170) by @gibsondanfix a small bug in UPathIOManager (#11110) by @danielgafni[dagster-dbt] in tests, pin dbt rpc < 0.3.0 (#11196) by @OwenKephartMove core_tests/storage_tests to storage_tests (#11180) by @schrocknskip sqlite env var test on windows (#11195) by @gibsondanMove old_sqlalchemy_tests to only run on storage_tests (#11181) by @schrockn[dagster-airflow] airflow terminology mapping (#11015) by @Ramshackle-JamathonMove core_tests/definitions_tests to definitions_tests (#11184) by @schrocknfix dequeue_num_workers setting (#11198) by @alangenfeldMove core_tests/asset_defs_tests to asset_defs_tests (#11186) by @schrocknupdate timeout in sensor run tests (#11193) by @jamiedemariaMove core_tests/launcher_tests to launcher_tests (#11187) by @schrocknadd assets example to AssetSelection apidoc (#11194) by @sryzaMove various logging tests into logging_tests (#11188) by @schrocknfeat(dbt-cloud): add Dagster run id to dbt Cloud run (#11005) by @rexledesma[docs] snowflake reference page (#10985) by @jamiedemaria[declarative-scheduling] Fix bug with declarative scheduling where repeated calls to get_latest_materialization_record could return incorrect results (#11214) by @OwenKephartonly reconcile multi-assets if all parents are reconciled (#11190) by @sryza[dagit] Fix dragging on the DAG clearing your selection / clicking links (#11202) by @bengotow[dagster-aws] Extend fake S3 resource (#11105) by @asharov[dagit] Optimizations to backfill UI for large partition key sets (#11201) by @bengotowdo not compute projected logical versions of partitioned assets (#11204) by @sryzafactor out asset reconciliation graph traversal into util (#11206) by @sryza[dagit] Fresh + Stale should not show “Stale” on the Asset Graph (#11234) by @bengotow[dagit] Round middle truncate calculations for Firefox (#11203) by @bengotowsupport tags argument on materialize and materialize_to_memory (#11225) by @sryzadocs: update license to include year and company (#11231) by @vwbusguy[docs] - [definitions] Update OSS deployment overview (#11199) by @erinkcochran87split backfill table so partition status is fetched lazily (#11205) by @prhafix tslint (#11242) by @alangenfeld[dagit] webpack-bundle-analyzer (#11230) by @hellendag[dagit] Virtualized Asset Catalog (#11168) by @hellendagCan remove hardcoded_resource from project_fully_featured because of Definitions (#11243) by @schrockn[dagit] Replace moment-timezone (#11197) by @hellendagRemove unused backfillStatus, which loads individual run status (#11246) by @prhaRetry registering task definitions (#11192) by @jmsandersRerun dagster_tests with --snapshot-update (#11208) by @schrocknAdd test case for binding assets before passing to Definitions (#11216) by @schrockn[dagster-airflow] from airflow to dagster guide updates (#11218) by @Ramshackle-Jamathon[graphql test] share schema instance (#11236) by @alangenfeldUse FromSourceAsset instead of FromRootInputManager when loading assets with input managers (#11233) by @jamiedemariaUse bare objects for the hacker news resources (#11249) by @schrocknUse bare I/O manager in fully featured (#11250) by @schrocknDelete unused fixed_s3_pickle_io_manager (#11251) by @schrocknConsolidate _resolve_bound_config and have logger and resource use the same one (#11209) by @schrocknDelete op version of _resolve_bound_config and call generic one (#11211) by @schrocknSkip race condition tests (#11286) by @jmsandersSkip flaky test (#11292) by @jmsanders[dagit] Replace remaining moment usage (#11278) by @hellendagUpdate op-retries.mdx - no solid (#11284) by @yuhan[docs] airbyte guide repository -> definitions (#11296) by @yuhan[docs] fivetran guide repository -> definitions (#11297) by @yuhan[docs] dbt guide repository -> definitions (#11298) by @yuhan[docs] dbt cloud guide repository -> definitions (#11299) by @yuhan[declarative-scheduling] Rework constraint passing (#11229) by @OwenKephart[dagster-airflow] basic airflow migration guide (#11012) by @Ramshackle-Jamathon[dagstermill] add retries to flaky tests (#11291) by @jamiedemariaProduct tour component (#11227) by @salazarm[dagit] Utility for timezone-aware date/time formatting (#11285) by @hellendag[dagit] Restore some metadata on Code Locations page (#11281) by @hellendag[docs] - [definitions] Update Loggers Concept docs (#11171) by @erinkcochran87[docs] - Update ECS deployment guide (#11289) by @erinkcochran87[docs] - [definitions] Update Dagster instance docs (#11241) by @erinkcochran87Pass duckdb_path to __init__ rather than relying on context (#11300) by @schrockn[structured config] Base structured config implementation (#11268) by @benpankow[structured config] Add support for default values (#11272) by @benpankowAdd gql pin (#11312) by @gibsondan[structured config] Add support for class, field descriptions (#11274) by @benpankowMove env var injection earlier in step command (#11239) by @gibsondanaccrete metadata with multiple calls to add_output_metadata (#9518) by @sryza[docs] - [definitions] - Update Executors docs (#11247) by @erinkcochran87[docs] - [definitions] Update Helm guide (#11320) by @erinkcochran87Eliminating unnecessary output_context.resource_config check (#11313) by @schrockn[docs] - Consolidate sections in Resources concept doc (#11316) by @erinkcochran87[docs] - [definitions] Update SDA Concept docs (#11018) by @erinkcochran87[docs] - [definitions] Update Run launchers guide (#11200) by @erinkcochran87[docs] - Re-do Cloud Getting Started guides (#10429) by @erinkcochran87[docs] - [definitions] Update Docker guide (#11295) by @erinkcochran87backfill perf: swap backfill requested for num cancelable (#11304) by @prhaallow upload config to pass through s3 compute log manager (#11317) by @prha[apidoc] define_asset_job repository -> Definitions (#11302) by @yuhanIgnore stale timestamps from code location updates (#11173) by @prha[structured config] Fix usage with Assets (#11327) by @benpankowInclude parent exceptions in Dagster errors, even if they weren't explicitly raised (#11306) by @gibsondan[docs] - [definitions] Update Dagster daemon docs (#11226) by @erinkcochran87Docs release backfill 1.1.7 (#11328) by @yuhanUse dark mode logo on README.md (#11326) by @hellendagAssetGraph.from_external_assets().get_required_multi_asset_keys() (#11318) by @sryza[declarative-scheduling] Update retry logic to attempt to retry failed materializations after some time has passed (#11294) by @OwenKephartAdd instance property to InputContext (#11331) by @schrocknchore: add method to strip error stack trace (#11307) by @rexledesmaHoist schema and database to DbIOManager constructor (#11301) by @schrocknRename _resolve_bound_config to resolve_bound_config (#11287) by @schrocknAdd asset_materialization property to EventLogEntry (#11340) by @schrocknstore repository on external asset graph (#11332) by @sryzaRevert "Use dark mode logo on README.md (#11326)" (#11345) by @hellendag[dagster-io/eslint-config] v1.0.6 (#11324) by @hellendagAdd get_implicit_global_asset_job on Definitions and RepositoryDefinition (#11279) by @schrocknfeat: add retry number and url to integration api call failure (#11308) by @rexledesmaFix dagster-graphql circular import (BK broken) (#11339) by @smackeseySkipping dbt rpc resource tests (#11357) by @schrocknskip test_threaded_ephemeral_instance (#11359) by @schrocknAllow specifying resources in Op/Asset params list (#11322) by @benpankowchange version placeholder 0+dev -> 1!0+dev (#11334) by @smackesey[structured config] Structured-config-backed Resources (#11321) by @benpankow[structured config] Add traditional resource wrapper base class (#11337) by @benpankow[structured config] Fix test importing functools.cached_property on py37 tests (#11361) by @benpankow[structured config] Structured-config-backed IO managers (#11343) by @benpankowfix some bugs in ExternalAssetGraph (#11350) by @sryzamore refactors to reconciliation sensor (#11223) by @sryza[dagster-io/eslint-config] v1.0.7 (#11347) by @hellendagAdd Materialize Button hook (#11319) by @salazarmAllow setting raw k8s config at the run launcher / container context level (#11333) by @gibsondanMake it more likely that we hit our lock (#11290) by @jmsandersfix __contains__ of TimeWindowPartitionsSubset (#11380) by @sryza[docs] - add note on pandas integration to redirect users interested in pandas w/out validation (#11342) by @sloppfix asset reconciliation bug that ignores earlier partitions (#11336) by @sryzafix typo on partitions concepts page (#11349) by @sryzaClicking on top-level concept sections takes you to a page (#10140) by @sryzaAdd single dimension -> multidimension partition mapping (#10910) by @clairelin135[RFC] Update cached_status_data column 1/2 (#10821) by @clairelin135Remove stray console.log (#11410) by @gibsondanExecuteInProcessResult.asset_value (#11403) by @sryzaElminate PIPELINE_DEQUEUED event (#11393) by @gibsondan[dagit] Begin adding new graphql-codegen (#11411) by @hellendagDocs for new ECS resource options (#11391) by @gibsondanDocs for new k8s configuration options (#11390) by @gibsondanFix malformed dagster_cloud.yaml in code location docs (#11416) by @gibsondan[dagit] Refactor mutations to new GraphQL codegen (#11414) by @hellendag[dagit] Refactor queries in src/workspace (#11418) by @hellendag[dagit] dedupeFragments (#11426) by @hellendagrelax matching criteria for TimeWindowPartitionMappings w/offsets (#11422) by @sryza[dagster-databricks] handle empty responses (#11430) by @OwenKephartExport RunRecord in the public API (#11427) by @gibsondan[dagit] Refactor queries in src/runs (#11419) by @hellendag[dagit] Refactor queries in Assets (#11423) by @hellendag[dagit] Refactor queries in instance, instigation, launchpad (#11429) by @hellendagBranching I/O Manager (#11315) by @schrocknFix issues with a SerializableErrorInfo being coerced to a GraphenePythonError (#11437) by @gibsondanexport product tour component (#11314) by @salazarm[dagit] Refactor queries in remaining src (#11435) by @hellendagEliminate unused config_or_config_fn arg in copy_for_configured (#11433) by @schrockn[dagit] Don’t show assets as stale if projectedLogicalVersion is null (#11224) by @bengotow[dagit] Show observations about the latest materialization on Asset > Partitions (#11288) by @bengotowasset backfill core logic (#11377) by @sryzaAllow AssetIn(dagster_type=Nothing) (#11436) by @sryzaRename and refactor in structured_config.py for clarity (#11372) by @schrocknConsolidate all logic and trickery to support private cached properties in pydantic in a single class (#11373) by @schrockndeprecate job-level memoization in docs (#11392) by @sryzaAdd StructuredIOManagerAdapter (#11383) by @schrockn[dagit] Fix line height and size of timestamps on the asset graph (#11465) by @bengotowDefault new-style config mappings to *Source equivalents rather than raw scalars (#11386) by @schrocknUnexperimentalize LogicalVersion and quell warning messages whenever assets are materialized (#11407) by @sryzaPassthrough pydantic.ModelField.required to dagster.Field.is_required (#11388) by @schrocknSupport pydantic aliases in config schema mapping (#11389) by @schrocknMake conversion to *Source types work on direct annotations of the config parameter (#11469) by @schrockn[dagster-databricks] handle execution interrupts (#11421) by @OwenKephartSkip flaky race condition test (#11471) by @jmsandersremove AssetStoreHandle (#11412) by @sryzarefactor: sequester job backfill code (#11252) by @sryzaBe more resilient to user code errors when dequeuing runs (#11406) by @gibsondanMake all arguments on DagsterInstance.create_run keyword-only (#11446) by @schrocknElimiinate default value for asset_selection param on DagsterInstance.create_run (#11447) by @schrocknEliminate default values for solid_selection, external_pipeline_origin, and pipeline_code_origin on create_run (#11448) by @schrocknrename create_run to create_run_for_test on TestQueuedRunCoordinator to increase greppability of create_run (#11449) by @schrockn[dagit] Remove old GraphQL Codegen (#11474) by @hellendag[dagit] Delete apollo CLI dep (#11478) by @hellendagAdd tag_concurrency_limits config to executors (#11472) by @gibsondanadd run filter for updated before (#11481) by @prhadocs(dagster-dbt): clarify that the integration supports arbitrary dbt profiles (#11351) by @rexledesma[structured config] Add support for Permissive fields (#11275) by @benpankowhandle pure asset backfills in backfill daemon (#11378) by @sryzaFix missing callsite of tag_concurrency_limits (#11496) by @gibsondanfix(docs): format docs (#11501) by @rexledesma[dagster-dbt] add DbtManifestAssetSelection (#11473) by @OwenKephartAdd parameter invariants around external_pipeline_origin and pipeline_code_origin arguments (#11450) by @schrocknsupply solid_selection to fix submitting runs from pure asset backfills (#11502) by @sryzatelemetry: add num_assets_in_repo in repo-level metadata (#11490) by @yuhanfix(docs): run mdx-format again (#11504) by @rexledesmaTighten solids_to_execute and solid_selection invariant (#11451) by @schrocknBump json5 from 1.0.1 to 1.0.2 in /js_modules/dagit (#11485) by @dependabot[bot]Add invariant for asset_selection (#11452) by @schrocknTypehint pipeline_name, run_id, and mode (#11453) by @schrockngraphql for pure asset backfills (#11379) by @sryzadocs for new tag_concurrency_limits feature on executor (#11499) by @gibsondanAdd support for loading cacheable assets from module (#10389) by @benpankowenable filtering by asset tag when asset tags table is not present (#11509) by @sryzaonly count materializations within backfill (#11506) by @sryzatelemetry: add num_assets_in_repo in log_repo_stats metadata (#11513) by @yuhantelemetry: add location_name in repo-level metadata (#11514) by @yuhan[dagster-airflow] warn on airflow dataset (#11498) by @Ramshackle-Jamathon[dagster-airflow] add make_dagster_definitions_from_airflow_dags_pathandmake_dagster_definitions_from_airflow_dag_bag apis (#11441) by @Ramshackle-JamathonChangelog 1.1.8 (#11526) by @clairelin1351.1.8 by @elementl-devtools</details>
Definitions is no longer marked as experimental and is the preferred API over @repository for new users of Dagster. Examples, tutorials, and documenta
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./locations.TimeWindowPartitionMapping now accepts start_offset and end_offset arguments that allow specifying that time partitions depend on earlier or later time partitions of upstream assets.dagit can now accept multiple arguments for the -m and -f flags. For each argument a new code location is loaded.build_schedule_from_partitioned_job now execute more performantly - in constant time, rather than linear in the number of partitions.QueuedRunCoordinator now supports options dequeue_use_threads and dequeue_num_workers options to enable concurrent run dequeue operations for greater throughput.load_assets_from_dbt_project, load_assets_from_dbt_manifest, and load_assets_from_dbt_cloud_job now support applying freshness policies to loaded nodes. To do so, you can apply dagster_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 a FreshnessPolicy(maximum_lag_minutes=60).DAGSTER_RUN_JOB_NAME environment variable is now set in containerized environments spun up by our run launchers and executor.make_dagster_repo_from_airflow_dags_path ,make_dagster_job_from_airflow_dag and make_dagster_repo_from_airflow_dag_bag have a new connections parameter which allows for configuring the airflow connections used by migrated dags.Fixed a bug where the log property was not available on the RunStatusSensorContext 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 and dbt run-operation were incorrectly validated.
[dagster-airflow] use_ephemeral_airflow_db now works when running within a PEX deployment artifact.
DefinitionsDefinitions. Any content not ported to Definitions in this release is in the process of being updated.https://github.com/dagster-io/dagster/compare/1.1.6...1.1.7
<details><summary>See All Contributors</summary>
Non isolated runs docs (#10860) by @johannkm[dagit] Fix Gantt chart rendering of per-step resource init log messages (#10943) by @bengotow[dagit] Fix the “Assets” label on large asset runs (#10932) by @bengotow[dagit] Fix “Job In” label regression in Chrome v109 (#10934) by @bengotow[dagit] Pass repository tag when loading runs for Partitions page (#10948) by @bengotow[dagit] Updated asset DAG styles, added additional compute tags (#10931) by @bengotow[docs] - add a guide for scheduling assets (#10949) by @sloppcap packaging requirement at 22.0 (#10968) by @smackesey Execution result typing (#10919) by @smackeseysolid -> node method renames (#10920) by @smackesey[dagster-airflow] re-enable airflow 2.5.0 tests (#10966) by @Ramshackle-Jamathon[dagster-airbyte][docs] Use dagster-airbyte CLI alias in docs (#10955) by @benpankow[dagster-slack] create slack_on_freshness_policy_sensor (#10960) by @OwenKephart[docs ] - fix image dimensions in hello-dagster materialize (#10977) by @slopp1.1.6 Changelog (#10978) by @OwenKephartAutomation: versioned docs for 1.1.6 by @elementl-devtools[convert-environment-variables-and-secrets-guide-stack-2] Convert env vars and secrets guide from repository to Definitions by @schrocknunexperimentalize PartitionMapping (#10980) by @sryzaremove validation in AssetGraph.get_child_partition_keys_of_parent an… (#10981) by @sryza[convert-development-to-production-1] Move repository to __init__.py by @schrockn[convert-development-to-production-2] Changing development to production to use snowflake_pandas_io_manager by @schrockn[convert-deployment-to-production-3] Convert @repository to Definitions by @schrockn[convert-development-to-production-4] Use base object instead of resource by @schrockn[convert-development-to-production-6] Use pyproject.toml instead of workspace.yaml by @schrockn[convert-development-to-production-7] Convert guide to use Definitions by @schrockn[dagit] New Code Locations table (#10975) by @hellendagPin graphene to <3.2 by @schrocknfix missing metadata in dagit on graph-backed assets (#10988) by @OwenKephart[dagit] Export a few Code Location components for Cloud (#11008) by @hellendagTemporarily disable some Azure test suites (#11007) by @jmsanders[graphql] fix for graphene 3.2 (#11011) by @alangenfeld[code-location-selector-stack] Code location sensor tests 1/N. Rename workspace_load_target function to create_workspace_load_target by @schrockn[code-location-selector-stack] Code location sensor tests 2/N Make instance_with_multiple_repos_with_sensors workspace_load_target parameterizable by @schrockn[code-location-selector-stack] Code location sensor tests 3/N. Refactor instance_with_multiple_repos_with_sensors to handle multiple code locations by @schrockn[code-location-selector-stack] Code location sensor tests 4/N Actually add test to test cross code location selector by @schrockn[code-location-selector-stack Add CodeLocationSelector; Have run_status_sensor accept it by @schrocknFix test_persistent by @schrocknchore: auto-assign dependabot pull requests (#10953) by @rexledesmafix(dbt-cloud): parse command string to find materialization commands (#10989) by @rexledesma[code-location-selector-stack] Change typehint on make_slack_on_run_failure_sensor to accept CodeLocationSelector by @schrockn[docs] re-org snowflake integration guide (#10984) by @jamiedemariaCheck scheduler ticks right after each minute boundary instead of once every 5 seconds (#10886) by @gibsondan[docs] - [definitions] Update Configured API concept doc (#11020) by @erinkcochran87Fix bug with re-execution snapshot ids (#10967) by @OwenKephart[bugfix] UPathIOManger load_input type checking (#11022) by @danielgafniPathspec typing fix (#11036) by @smackesey[dagit] /code-locations -> /locations (#11024) by @hellendagReplace partition ranges with subsets (#10909) by @clairelin135[dagit] With multiple assets selected, backfill “missing” should include partially materialized partitions (#11027) by @bengotow[dagit] Add empty value string for invalid tag input in Runs filter (#11044) by @hellendag[docs] - [definitions] Update Repository page for Definitions (#10986) by @erinkcochran87[definitions-accessors] Add get_job_def to Definitions. by @schrockn1/ definitions in create new project: update dagster project CLI (#10829) by @yuhan2/ definitions in create new project: update create-new-project docs (#10830) by @yuhan[docs] - [definitions] - Update dbt tutorial to use Definitions (#10842) by @erinkcochran872.1/ definitions in in create new project: remove unnecessary asset dir in scaffold + update docs (#10831) by @yuhanupdate isolated run docs to say that it's enabled by default (#11039) by @gibsondan[docs] - remove repository from hello dagster as its not needed (#11048) by @slopp[dagster-fivetran][ez] Add missing docstring entry for build_fivetran_assets (#11049) by @benpankowAdd start_offset and end_offset to TimeWindowPartitionMapping (#10979) by @sryzafix subsettable multi asset case (#10878) by @OwenKephartmove ecs task tagging to run_task call (#11037) by @prhaAdd custom resource key to load_assets_from_dbt_project (#10827) by @dpeng817[dagit] Highlight Assets in top nav for global asset graph (#11052) by @hellendag[dagster-airbyte][docs][ez] Fix AirbyteConnection apidoc rendering (#11059) by @benpankowconvert-examples 1.1/ assets_dbt_python defs + pyproject (#11060) by @yuhanconvert-examples 2.1/ assets_modern_data_stack repo -> defs, pyproject (#11062) by @yuhanconvert-examples 5/ assets_smoke_test repository -> definitions (#11071) by @yuhanconvert-examples 6.1/ feature_graph_backed_assets pyproject, @repository -> Definitions (#11072) by @yuhanconvert-examples 7.1/ quickstart_etl workspace->pyproject, repo->defs (#11074) by @yuhanconvert-examples 8.1/ with_great_expectations workspace->pyproject, repo->defs (#11077) by @yuhanconvert-examples 1.2/ assets_dbt_python file renames (#11061) by @yuhanconvert-examples 6.2/ feature_graph_backed_assets file rename and reorder (#11073) by @yuhanconvert-examples 2.2/ assets_modern_data_stack file renames (#11063) by @yuhanRemoves codecov commands from tox (#10635) by @dpeng817[dagit] Disable Re-execute menu item in run action menu for perms (#11026) by @hellendagSupport loading multiple modules in single command line invocation by @schrocknEnable multiple files in CLI tools by @schrocknAdd get_sensor_def and get_schedule_def to Definitions by @schrocknconvert-examples 10/ with_pyspark_emr repository.py -> defs.py, update [docs] (#11080) by @yuhanconvert-examples 9/ with_pyspark repository.py -> defs.py, update [docs] (#11079) by @yuhanAdd load_asset_value and get_asset_value_loader to Definitions by @schrockn[dagster-airflow] reorg dagster airflow api docs (#11009) by @Ramshackle-Jamathonconvert-examples 3.1/ assets_pandas_pyspark definitons, pyproject (#11067) by @yuhanconvert-examples 8.2/ with_great_expectations file rename (#11078) by @yuhanconvert-examples 7.2/ quickstart_etl file rename + update README (#11075) by @yuhanSupport module_name in tool.dagster section of pyproject.toml by @schrocknMove all examples to use module_name in pyproject.toml by @schrocknPin tox on windows to < 4 (#11013) by @jmsanders[docs] - [definitions] Code location concept page (#10843) by @erinkcochran87Add instance for test to top level API (#10709) by @dpeng817[example] recomment code in dagstermill tutorial (#11098) by @jamiedemariaMake JobSelector work on cross code location by @schrockn[convert-branch-deployments-stack] Convert branch deployments guide to Definitions by @schrocknEliminate package_name from pyproject.toml loading spec by @schrockn[docs] - [definitions] Update Enriching with SDAs guide (#10849) by @erinkcochran87[dagit] Don't show View link on code location toast if already there (#11095) by @hellendagset DAGSTER_RUN_JOB_NAME env var (#10888) by @alangenfeldremove parameter tag from dagstermill notebook (#11109) by @jamiedemariasort task definition config secrets and env vars to ensure consistent ordering (#10982) by @gibsondan[dagster-airflow] from airflow to dagster guide (#10923) by @Ramshackle-Jamathon[dagit] Improvements to partition range selection interactions (#11017) by @bengotowadd tests for legacy storage (#11047) by @prhakeep track of max timestamps client side for code location updates (#11100) by @prhain default IO manager, handle PartitionMappings that return 0 partitions (#11065) by @sryzaFix bug with logical versions for assets with changed deps (#11083) by @smackeseyAdding apidocs for Definitions by @schrocknconvert-examples 3.2/ asset_pandas_pyspark re-arrange files + [docs] (#11068) by @yuhan[dagit] Persist AssetPartitions state to URL, open Materialize panel with same selection (#11042) by @bengotow[dagit] Render assets with self-dependencies in Dagit (#11043) by @bengotowrun queue daemon refactor (#11090) by @alangenfeldAllow assets to depend on earlier partitions of themselves (#11066) by @sryza[docs] - [definitions] Update Schedules documentation (#11046) by @erinkcochran87Re-add section for customizing Docker images pre-fast-deploys (#11112) by @shalabhcAllow setting base_dir as a StringSource in sqlite storage (#11031) by @gibsondanhandle self-dependencies in reconciliation sensor (#11085) by @sryza[docs] - [definitions] Update Workspaces concept page (#10944) by @erinkcochran87Coerce IOManager objects into IOManagerDefinitions in Definitions by @schrocknRevert "[docs] - [definitions] Update Workspaces concept page (#10944)" by @alangenfeldAllow overriding the default max_concurrent for the default executor via env var (#11116) by @gibsondanconvert-examples 4.1/ assets_pandas_type_metadata definitions, pyproject (#11069) by @yuhan[docs] [definitions] convert snowflake guide to definitions (#11029) by @jamiedemaria[docs] - Fix workspace link (#11121) by @erinkcochran87convert-examples 4.2/ assets_pandas_type_metadata repository.py -> __init__.py (new) (#11127) by @yuhanAdd executor and loggers to Definitions by @schrockn[docs] - [definitions] Update Sensors documentation (#11050) by @erinkcochran87threaded run queue daemon (#11113) by @alangenfeldconvert-examples 11.1/ project_fully_featured defs, pyproject, no with_resources (#11081) by @yuhan[dagster-airbyte] Fix normalization table generation, materializations for non-object Streams (#10899) by @benpankowupdate assets_modern_data_stack example readme (#11122) by @yuhan[CacheableAssets] Fix bug that would cause definitions to be recomputed when using a StepDelegatingExecutor (#11086) by @OwenKephartconvert-examples 11.2/ project_fully_featured repository.py -> __init__.py (#11082) by @yuhanupdate assets_dbt_python example readme (#11126) by @yuhan[dagster-dbt] Enable setting FreshnessPolicies on dbt assets (#11103) by @OwenKephartMark Definitions as not experimental by @schrockn[declarative-scheduling] Fix issue where in-progress runs were not properly handled (#11118) by @OwenKephart[dagster-airbyte] Avoid unnecessarily recreating sources, destinations w/ managed ingestion (#11117) by @benpankow[dagster-airflow] pex compatibility for ephemeral db (#11115) by @Ramshackle-Jamathon[dagster-airflow] provide interface for passing connection models directly to dagster (#11006) by @Ramshackle-Jamathon[dagit] Left nav: show entire code location string for non-dunder repos (#11133) by @hellendagmove quickstart_aws back to mono repo (#11130) by @yuhanmove quickstart_gcp back to mono repo (#11131) by @yuhanmove quickstart_snowflake back to mono repo (#11132) by @yuhanUpdate Definitions docs by @schrocknUse wrap_resources_for_execution in Definitions by @schrocknUse i/o manager coercion in assets_pandas_pyspark example by @schrocknconvert-examples-repo-to-defs cloud nux quickstart_aws (#11135) by @yuhanconvert-examples-repo-to-defs cloud nux quickstart_gcp (#11136) by @yuhanconvert-examples-repo-to-defs cloud nux quickstart_snowflake (#11137) by @yuhanenable run status sensor logging (#11145) by @prhaMove jobs concept guide to refer to Definitions by @schrocknMove I/O Manager Guide to be on Definitions by @schrocknadd thread name prefix to run dequeue workers (#11155) by @alangenfeldAdjust resources guide to be in a Definitions world by @schrocknmake schedules produced by build_schedule_from_partitioned_job more p… (#11147) by @sryza[docs] - [definitions] Update Dagit + tutorial screenshots (#11089) by @erinkcochran87[docs] - [definitions] Update Partitions concept docs (#11030) by @erinkcochran87Port asset sensor guide to Definitions by @schrocknRevert "keep track of max timestamps client side for code location up… (#11162) by @prha[docs] - Fix links (#11163) by @erinkcochran87Merge branch 'release-1.1.7' of github.com:dagster-io/dagster into release-1.1.7 by @jamiedemaria1.1.7 Changelog (#11165) by @jamiedemaria1.1.7 by @elementl-devtools</details>
[dagit] Throughout Dagit, when the default repository name __repository__ is used for a repo, only the code location name will be shown. This change a
__repository__ is used for a repo, only the code location name will be shown. This change also applies to URL paths.load_asset_value to error with the default IO manager when a partition_key argument was provided.context.partition_key or context.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.RetryRequested when using a retry policy.sqlite3.ProgrammingError error was raised when creating an ephemeral DagsterInstance, most commonly when build_resources was called without passing in an instance parameter.duckdb_pyspark_io_manager helper to automatically create a DuckDB I/O manager that can store and load PySpark DataFrames.8.0.31 would raise an error on some run queries.Definitions entrypoint for tools and the UI has been added. A single Definitions 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.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!)dagstermill guide and reference page https://docs.dagster.io/integrations/dagstermilldagster-snowflake guide: https://docs.dagster.io/integrations/snowflake[dagit] Fixed an issue where the Partitions tab sometimes failed to load for asset jobs.
Fixed a typo in GCSComputeLogManager docstring (thanks reidab)!
job_name parameter to InputContext.execute_in_process on a GraphDefinition (it would use the fs_io_manager instead of the in-memory io manager)./instance URL path prefix has been removed. E.g. /instance/runs can now be found at /runs./workspace URL path prefix has been changed to /locations. E.g. the URL for job my_job in repository foo@bar can now be found at /locations/foo@bar/jobs/my_job.dagstermill.yield_event.save_on_notebook_failure parameter.use_ephemeral_airflow_db which will create a job run scoped airflow db for airflow dags running in dagsterAssetKeys.1.0.16 for some compute log managers where an exception in the compute log manager setup/teardown would cause runs to fail.prefix argument to prevent badly constructed paths.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.get_output_asset_key on the IOManager handling the output. Previously, this was experimental and undocumented.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 the Experimental 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 the NoOpComputeLogManager.Fixed a bug with the asset reconciliation sensor that caused duplicate runs to be submitted in situations where an asset has a different partitioning
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.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.In Dagit, assets that had been materialized prior to upgrading to 1.1.1 were showing as "Stale". This is now fixed.
The internal ComputeLogManager API is marked as deprecated in favor of an updated interface: CapturedLogManager. It will be removed in 1.2.0. This sho…
MultiPartitionsDefinition API. In Dagit, you can filter and materialize certain partitions by providing ranges per-dimension, and view your materializations by dimension.build_asset_reconciliation_sensor.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 the build_asset_reconciliation_sensor to make a sensor that automatically kick off runs to materialize assets based on their freshness policies.op_version s to software-defined assets or observation_fn s to SourceAssets. 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.@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 a load_asset_value method, which accepts an asset key and invokes the asset’s I/O manager’s load_input function to load the asset as a Python object. This can be used in notebooks to do exploratory data analysis on assets.asset_selection parameter on @sensor and SensorDefinition, you can now define a sensor that directly targets a selection of assets, instead of targeting a job.dagit or dagster-daemon locally, environment variables included in a .env file in the form KEY=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.dagster-dbt now supports generating software-defined assets from your dbt Cloud jobs.dagster-airbyte and dagster-fivetran now support automatically generating assets from your ETL connections using load_assets_from_airbyte_instance and load_assets_from_fivetran_instance.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.dagster instance migrate:
define_dagstermill_solid, a legacy API, has been removed from dagstermill. Use define_dagstermill_op or define_dagstermill_asset instead to create an op or asset from a Jupyter notebook, respectively.ComputeLogManager API is marked as deprecated in favor of an updated interface: CapturedLogManager. It will be removed in 1.2.0. This should only affect dagster instances that have implemented a custom compute log manager.dagster-graphql and dagit now use version 3 of grapheneUPathIOManager 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 by universal-pathlib and uses different serialization format than pickle (Thanks Daniel Gafni!).fs_io_manager now inherits from the UPathIOManager, which means that its base_dir can be a path on any filesystem supported by universal-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.FreshnessPolicy object is now exported from the top level dagster package.FreshnessPolicy defined, their current freshness status will be rendered in the asset graph and asset details pages.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.dagit or dagster-daemon locally, environment variables included in a .env file in the form KEY=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 a SourceAsset with an associated observation_fn that should return a LogicalVersion, a new class that wraps a string expressing a version of an asset’s data value.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-in k8s_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 into execute_k8s_job. See the dagster-k8s API docs for more information.define_dagstermill_asset now supports RetryPolicy . Thanks @nickvazz!load_assets_from_airbyte_instance, users can now optionally customize asset names using connector_to_asset_key_fn.load_assets_from_fivetran_instance, users can now alter the IO manager using io_manager_key or connector_to_io_manager_key_fn, and customize asset names using connector_to_asset_key_fn..env filesWith the new asset_selection parameter on @sensor and SensorDefinition, you can now define a sensor that directly targets a selection of assets, inste
asset_selection parameter on @sensor and SensorDefinition, you can now define a sensor that directly targets a selection of assets, instead of targeting a job.materialize and materialize_to_memory now accept a raise_on_error argument, which allows you to determine whether to raise an Error if the run hits an error or just return as failed.MultiPartitionsDefinition object. An optional schema migration enables support for this feature (run via dagster instance migrate). Users who are not using this feature do not need to run the migration.-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!load_assets_from_airbyte_instance and load_assets_from_airbyte_project.dbt_cloud_resource resource configuration account_id can now be sourced from the environment. Thanks @sowusu-ba!load_assets_from_fivetran_instance helper which automatically pulls assets from a Fivetran instance.securityContext configuration of the Dagit pod in the Helm chart didn’t apply to one of its containers. Thanks @jblawatt!asset_selection parameter of RunRequest to not be respected when used inside a schedule.task_definition field in the EcsRunLauncher to an environment variable stopped working.load_assets_from_dbt_manifest. This fixed then error when load_assets_from_dbt_manifest failed to load from dbt manifest with exposures. Thanks @sowusu-ba!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”. The build_asset_reconciliation_sensor API no longer accepts wait_for_in_progress_runs and wait_for_all_upstream arguments.https://github.com/dagster-io/dagster/compare/1.0.16...1.0.17
<details><summary>See All Contributors</summary>
[jog] host_representation_tests, instance_tests, selector_tests (#10256) by @dpeng817[jog] resource_tests (#10257) by @dpeng817[dagstermill] notebook backed assets (#10277) by @jamiedemarianotebook and assets example project (#10315) by @jamiedemaria[dagster-airbyte][managed-elements] Explicit handling of reconciling secret values (#10195) by @benpankow[duckdb] integration improvements (#10114) by @jamiedemariaFix Helm package skipping (#10313) by @jmsandersRemove special casing for graphql tests (#10327) by @jmsandersAdd client ID to dagit (#10316) by @dpeng817[dagster-airflow] add airflow 2 support to make_dagster_job_from_airflow_dag + xcom mock option (#10337) by @Ramshackle-Jamathon1.0.16 changelog (#10340) by @alangenfelddisentangle asset reconciliation sensor from MultiAssetSensorDefinition (#10258) by @sryzaMock tqdm in tests to avoid segfaults (#10343) by @jmsandersAutomation: versioned docs for 1.0.16 by @elementl-devtoolsupdate 1.0.16 changelog (#10346) by @yuhanBetter fix for tooltips around disabled buttons + gitlab icon (#10338) by @salazarmBack-compat fix for setting the task definition in the EcsRunLauncher to an env var (#10341) by @gibsondanMock each callsite of tqdm (#10368) by @gibsondanBuild integration steps before test project steps (#10367) by @jmsandersPackages with test changes only shouldn't run deps (#10309) by @jmsandersRemove test-project-core (#10310) by @jmsanderschore: add project urls to dagster pypi (#10328) by @rexledesmafix: add comma (#10373) by @rexledesmaadd securityContext to dagit init-user-deployment initContainers (#10369) by @gibsondanJB - Docs Typography Follow-ups (#10344) by @braunjj[dagit] Add more logos to tags (#10355) by @jamiedemaria[Multi-dimensional partitions 1/n] Add schema migration for asset event tags table (#10001) by @clairelin135Revert "Mock each callsite of tqdm" (#10379) by @jmsanders[Multi-dimensional partitions 2/n] Read/write from asset event tags table (#10056) by @clairelin135Prevent segfaults (#10372) by @jmsanders[apidocs] clarify usage of create_databricks_job_op (#10299) by @sryzaMark celery-k8s-test-suite as flaky (#10204) by @jmsanders[Multi-dimensional partitions 3/n] Output multi-dimensional materializations (#10082) by @clairelin135fix duckdb configs in examples (#10378) by @jamiedemariaRevert "Mark celery-k8s-test-suite as flaky" (#10384) by @jmsandersUnpin grpc (#10386) by @gibsondansome refactorings to asset reconciliation sensor (#10233) by @sryzafix mysql heading level + typo (#10336) by @domsj[dagster-fivetran] Enable loading of Fivetran connection assets from instance (#10290) by @benpankowResolver -> AssetGraph (#10401) by @sryzaEnable accessing base jobs off of repository definitions (#10405) by @sryzaadd pyrightconfig.json to .gitignore (#10403) by @sryza[dagster-dbt] add exposures in load_assets_from_dbt_manifest (#10395) by @sowusu-baoperate on keys instead of strings in AssetSelection and AssetGraph (#10402) by @sryzaUpdated "Loaded with Errors" link (#10421) by @gibsondan[dagster-io/ui] Add stroke color to TextArea (#10422) by @hellendagInstall project-fully-featured (#10419) by @jmsandersMore process cleanup in grpc tests (#10423) by @gibsondanAdd methods to AssetGraph for traversing asset partitions graph (#10413) by @sryza[dagit] Update partner compute_kind tags to latest designs (#10394) by @bengotow[dagit] Fix materialization log padding when no metadata is present (#10350) by @bengotow[dagit] Respect backfill permission in asset backfill modal (#10387) by @bengotow[freshness-policy] add latency freshness policy (#10393) by @OwenKephartRevert "Unpin grpc (#10386)" (#10428) by @gibsondansupport RunRequest.asset_selection in schedules (#10400) by @sryzasupport raise_on_error in materialize and materialize_to_memory (#10397) by @sryzadocs(cacheable-assets): mark unimplemented methods as abstract (#10424) by @rexledesma[easy] fix incorrect header in docker guide (#10427) by @gibsondan[dagit] Fix bug in asset live reloading after step failures, clean up AssetView (#10349) by @bengotowallow sensors to target asset selections instead of jobs (#10417) by @sryzaImplement abstract methods (#10434) by @jmsanders[graphql] handle null int metadata val (#10436) by @alangenfeld[jog] convert runtime_types_tests (#10317) by @dpeng817[jog] convert core_test/selector_tests (#10318) by @dpeng817[easy][dagster-airbyte] Treat SSH key as secret for managed stack (#10390) by @benpankow[jog] Convert snap tests (#10319) by @dpeng817Expose sqlalchemy pool recycle option for mysql/postgres (#10416) by @adam-bloomcached_method decorator (#10398) by @sryzaEnable action logging in dagit (#10342) by @dpeng817Temporarily skip celery-k8s tests (#10438) by @jmsandersRun builds on changes to .txt files (#10433) by @jmsandersHook for loading secrets in grpc/run/step entry points (#10089) by @gibsondanRead account_idfrom an environment variable indbt_cloud_resource (#10324) by @sowusu-baAdd container_name to EcsContainerContext (#10446) by @gibsondanMake asset reconciliation sensor more reconcile-y (#10435) by @sryza[dagster-airbyte] Generate src/dst Python classes for managed stacks (#10272) by @benpankow[docs] - Guides for configuring environment variables (#10034) by @erinkcochran87Revert "specify schema in pandas to_sql" (#10450) by @jamiedemariafeat: bind command-K to search (#10449) by @rexledesma[dagster-airbyte] Add ability to specify output IO managers (#10217) by @benpankow[dagster-airbyte] When loading managed connections, ignore those which are not managed (#10388) by @benpankowenable launching a run that targets a range of asset partitions (#10441) by @sryzachore: remove support for github dark mode (#10329) by @rexledesma[dagit] Clarify notebook buttons (#10451) by @jamiedemaria[dagstermill] allow custom io manager key specification (#10448) by @jamiedemaria[dagster-airbyte][docs] Reorganize Airbyte guide (#10215) by @benpankowFix check_step_health with delayed op retries (#10458) by @johannkmchangelog 1.0.17 (#10464) by @yuhan1.0.17 by @elementl-devtools</details>
[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. The
@asset and @multi_asset now accept a retry_policy argument. (Thanks Adam Bloom!)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 a run_config argument even when the job is partitioned. If supplied, the run config will be used instead of any config provided by the job’s PartitionedConfig.run_request_for_partition method on jobs now accepts a run_config argument. If supplied, the run config will be used instead of any config provided by the job’s PartitionedConfig.NotebookMetadataValue can be used to report the location of executed jupyter notebooks, and Dagit will be able to render the notebook.dagster.yaml file; check out the docs.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.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.PartitionedConfig), previously run_request_for_partition would produce a run with no config. Now, the run has the hardcoded dictionary as its config.AssetsDefinition, through group-based asset dependency resolution, which would later error because of a circular dependency. This has been fixed.https://github.com/dagster-io/dagster/compare/1.0.15...1.0.16
<details><summary>See All Contributors</summary>
rm all_types from config_context (#10203) by @alangenfeldAlso skip docs next (#10178) by @jmsandersMake handleLaunchResult agnostic to the query that returned the data (#10179) by @salazarmMake PythonPackages.get() more flexible to _/- (#10184) by @jmsanders[dagit] Invert stored state for expand/collapse in Overview pages (#10212) by @hellendag[config] memoize ConfigType snap creation (#10210) by @alangenfeld[config] avoid double init on field cache objects (#10214) by @alangenfeldOverride default io manager in more places (#10202) by @johannkmFix black (#10216) by @johannkmtype annotations on backfill-related code paths (#9402) by @sryzaFix lint (#10218) by @johannkmAdd docs for customizing the serverless base image (#9571) by @petehuntSkip test-project image builds (#10099) by @jmsanders[dagit] Updated asset details event view (#10143) by @bengotow[dagit] Fix AssetView.test key warnings (#10226) by @hellendagAlso trigger builds when tox.ini changes (#10209) by @jmsanders1.0.15 changelog (#10227) by @jamiedemariaAutomation: versioned docs for 1.0.15 by @elementl-devtoolsadd materialization property on dagster event (#10230) by @prhaParse HEAD commit in addition to BUILDKITE_MESSAGE (#10208) by @jmsandersAllow default io_manager load_input to support partitions of differing frequencies (#10172) by @andrewgryanInstall the correct dagster-buildkite CLI (#10211) by @jmsandersType annotations in dagster-graphql (#10005) by @smackeseyfix black, mypy (#10235) by @prha[freshness-policy] [1/n] FreshnessPolicy object (#10024) by @OwenKephartBreak up sensor_definition.py (#10181) by @sryzaHighlight config entry when being hovered in yaml editor (#10239) by @salazarmResolve multi-asset deps when they have the same group (#10222) by @peayupdate apidoc for postgres (#10241) by @prhafix schedules threading config (#10247) by @alangenfeld[dagit] Ship Overview/Workspace (#10245) by @hellendagFix stray references to define_assets_job (#10199) by @bengotowcaptured log manager (#9429) by @prhaAllow for longer messages in Teams HeroCard (#10234) by @jayhale[dagit] Clean up code post-Overview changes (#10249) by @hellendag[dagit] Move the refresh indicator on asset details pages to avoid flicker (#10253) by @bengotow[dagit] Fix issues with embedding fonts in downloaded DAG SVGs (#10252) by @bengotow[dagit] Fix daylight savings issue in humanCronString.test (#10263) by @hellendag[dagit] Make 50-level colors opaque (#10186) by @hellendag[dagit] Add query countdown/refresh to Timeline (#10250) by @hellendagSupport overriding run config for partitions with execute_in_process (#10246) by @sryzaAdd calendar icon (#10267) by @salazarmUPathIOManager - filesystem-agnostic IOManager base (#10193) by @danielgafnirename logKey to fileKey / logFileKey for disambiguation with new API (#9956) by @prhafix some cases in group-based asset dep resolution (#10266) by @sryzadagster-io/ui release notes (#10269) by @salazarmfix UnresolvedAssetJobDefinition.run_request_for_partition when confi… (#10238) by @sryzaImprove doc for InputContext.{dagster_type,metadata} (#10242) by @peayFetch asset materialization planned event from index shard in Sqlite (#10248) by @clairelin135fix #9193: add retry policy to @asset and @multi_asset (#10150) by @adam-bloomadds dagster-aws install to dockerfile in docker deployment guide (#10225) by @jamiedemariakeep storage name for serialized event backcompat (#10280) by @prhagraphql for captured log subscription (#9957) by @prhaAdd NotebookMetadataValue (#10278) by @jamiedemariaAdd volumes and volumeMounts to dagit and daemon in OSS helm chart (#10285) by @gibsondansupport new captured log API for process-based execution (#9958) by @prhaadd new capture APIs in frontend queries (#9959) by @prhaspecify schema in pandas to_sql (#10289) by @jamiedemaria[dagit] Fix AssetView flakiness (#10293) by @hellendag[dagit] Middle-truncate asset key path in virtualized list (#10275) by @hellendagSnowflake IO Manager API docs (#10175) by @jamiedemariaCompress execute_step args (#10244) by @johannkmfix black formatting (#10298) by @prhafix backfill table status (#10295) by @prharun_config argument on run_request_for_partition (#10279) by @sryza[dagit] NotebookMetadataValue support (#10287) by @jamiedemaria[dagit] Fix very tall configs in run config dialog (#10301) by @hellendagObservable source asset decorator (#9899) by @smackeseyconvert NoOpComputeLogManager to support captured log API (#9960) by @prhaconvert S3 compute log manager to support new captured log API (#9961) by @prhaTest createdBefore run filter (#10270) by @benpankowfix build; isort; black (#10303) by @prhaFix example scaffold (#10003) by @smackeseyAdd version to asset decorator (#10167) by @smackeseyFix logic to run lints on builds (#10304) by @jmsandersDon't repeat skip logs (#10307) by @jmsanders[jog] Add a utility method to execute op inside of graph (#10255) by @dpeng817[jog] execution_tests,hook_tests (#10254) by @dpeng817Revert "convert S3 compute log manager to support new captured log API (#9961) (#10311) by @prha[docs] Automatically toggle tab components to display URL hash/anchor (#10231) by @benpankow[dagstermill] notebook backed assets (#10277) by @jamiedemarianotebook and assets example project (#10315) by @jamiedemaria[dagster-airbyte][managed-elements] Explicit handling of reconciling secret values (#10195) by @benpankow[dagster-airflow] add airflow 2 support to make_dagster_job_from_airflow_dag + xcom mock option (#10337) by @Ramshackle-Jamathon1.0.16 changelog (#10340) by @alangenfeld1.0.16 by @elementl-devtools</details>
[dagit] The run timeline now shows all future schedule ticks for the visible time window, not just the next ten ticks.
key_prefix with methods like load_assets_from_modules.dagster instance migrate.- were not being properly sanitized in some situations. Thanks @peay!load_assets_from_airbyte_project. Thanks @adam-bloom!ServiceUnavailable error. Thanks @cavila-evoliq!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.https://github.com/dagster-io/dagster/compare/1.0.14...1.0.15
<details><summary>See All Contributors</summary>
[dagit] Add actions to run timeline empty state (#10092) by @hellendagfix future ticks cursor when no ticks are available (#10095) by @prhaRevert "Make the default_job_io_manager overridable via env (#9950)" by @johannkmAdd helm vals for scheduler threading (#10094) by @dpeng817[dagit] Shift-clicking Materialize should show asset launchpad even if assets are partitioned (#10047) by @bengotowRemove references to services in docker-compose down command test fixture (#10042) by @dpeng8171.0.14 changelog (#10106) by @dpeng8171.0.14 changelog addendum (#10107) by @gibsondan[dagit] Show all future ticks in the timeline window (#10097) by @hellendag[dagster-postgres] Use SQLAlchemy engine in pynotify instead of psycopg2 directly (#10090) by @peayJb/Docs UI Cleanup (#10050) by @braunjj[mypy] fixes for uvicorn types (#10108) by @alangenfeldRevert "Revert "Make the default_job_io_manager overridable via env (#9950)"" by @johannkm[dagit] Use gray tags in repo headers (#10078) by @hellendagRun make mdx-format (#10113) by @jmsandersUpgrade kind (#9992) by @jmsandersrebuild event log indices to include id (#10105) by @prha[dagit] Fix repo bucket sorting in virtualized tables (#10101) by @hellendagAutomation: versioned docs for 1.0.14 by @elementl-devtoolsdocs(slack-alert-policies): add slack bot name to setup instructions (#10116) by @rexledesma[dagit] Some typographic and spacing tweaks on virtualized tables (#10118) by @hellendagDon't gate on elementl emails (#10119) by @jmsandersSkip docs changes (#10030) by @jmsanders[docs] - improve partitioned asset examples on partitions concepts page (#10084) by @sryzaWalk the Python dependency tree (#10096) by @jmsanders[dagit] Add some right padding to clearable text input (#10129) by @hellendag[dagster-airbyte] Docs for how to use basic auth in current release (#10131) by @benpankowCache docstring check (#10127) by @schrockn[dagster-airbyte] Docs fix using with_resources with cacheable asset (#10132) by @benpankowRetry on Service Unavailable (#10110) by @cavila-evoliqMake AssetKey.__eq__ more efficient (#10139) by @schrockn[docs formatter] Drop mypy ignore lines in docs (#10138) by @benpankow[refactor] take logic for base asset jobs out of AssetGroup (#10071) by @sryza[dagit] Subscribe to in progress asset runs, refresh on relevant events (#10028) by @bengotowdocs: add h1 header to Dagster readme (#10156) by @rexledesmadocs: update @dagsterio -> @dagster (#10158) by @rexledesmaUse instance.python_log_level when determining default system logger level (#10073) by @gibsondanin hacker news demo, fix column filtering with partitions and snowfla… (#10141) by @sryzaAllow overriding svg with color (#10163) by @salazarm[dagster-airbyte] Add top-level support for basic auth username & password (#10130) by @benpankowimprove api doc examples for cloud object store IO managers (#10153) by @sryzaswitch order of assets and jobs in partitions doc (#10142) by @sryzaFix AssetsDefinition.with_prefix_or_group to update partition mappings (#10164) by @peayFix assets with dashes in their path and io_manager_def (#10087) by @peayRefactor db io manager to core (#10128) by @jamiedemariadocs design: fix icons. make icon changes backcompat (#10174) by @yuhanSupport multi-repo builds (#10135) by @jmsanders[docs] Out -> AssetOut docs tweak (#10146) by @benpankowConditionally skip dagit builds (#10165) by @jmsanders[dagster-managed-elements] Dagster-managed-elements CLI, APIs (#10011) by @benpankowEventLogRecord.partition_key and EventLogRecord.asset_key (#10180) by @sryza[dagster-airbyte] Airbyte managed elements impl (#10013) by @benpankow[dagster-airbyte] allow filtering connections by directory names (#10151) by @adam-bloommake_airflow_dag airflow 2 compatibility (#10115) by @Ramshackle-Jamathon[dagit] Bump TypeScript (#10133) by @hellendag[@dagster-io/ui] Release v1.0.6 (#10188) by @hellendag[dagster-dbt] allow missing run_results.json (#10187) by @OwenKephartdocs(dagster-cloud-agent): update IAM role link (#10189) by @rexledesma[dagit] Expand run config dialog (#10173) by @hellendagReplace custom in-memory logic with in-memory sqlite connection (#10154) by @prhaadd cpu and memory to DagsterEcsTaskDefinitionConfig (#10198) by @gibsondanAllow silencing failures with default io manager override (#10067) by @johannkm[dagster-airbyte] Managed elements typo (#10196) by @benpankow[dagit] Consolidate expand/collapse state in Overview tables (#10194) by @hellendagreduce locking in workspace reload (#10192) by @alangenfeld[dagster-dbt] add flag to make asset snapshots smaller (#10213) by @OwenKephartExtend default timeout (#10205) by @jmsanders[dagster-airbyte] Fix recreating source/destination logic (#10197) by @benpankowRevert 4938f9beb9 and ec3c5099c2 by @johannkmMake handleLaunchResult agnostic to the query that returned the data (#10179) by @salazarmrm all_types from config_context (#10203) by @alangenfeld[config] memoize ConfigType snap creation (#10210) by @alangenfeld[config] avoid double init on field cache objects (#10214) by @alangenfeldFix black (#10216) by @johannkm[dagit] Invert stored state for expand/collapse in Overview pages (#10212) by @hellendag[dagit] Updated asset details event view (#10143) by @bengotow1.0.15 changelog (#10227) by @jamiedemaria1.0.15 by @elementl-devtools</details>
Tags can now be provided to an asset reconciliation sensor and will be applied to all RunRequests returned by the sensor.
load_assets_from_airbyte_project now caches the project data generated at repo load time so it does not have to be regenerated in subprocesses.load_assets_from_airbyte_instance or load_assets_from_airbyte_project.Shift while clicking the repository name, and all repository groups will be collapsed or expanded accordingly.EcsRunLauncher now allows you to pass in a dictionary in the task_definition config field that specifies configuration for the task definition of the launched run, including role ARNs and a list of sidecar containers to include. Previously, the task definition could only be configured by passing in a task definition ARN or by basing the the task definition off of the task definition of the ECS task launching the run. See the docs for the full set of available config.SkipReason within a multi-asset sensor (experimental) would raise an error. This has been fixed.define_asset_job, you would run into a CheckError when launching the job from Dagit. This has been fixed.https://github.com/dagster-io/dagster/compare/1.0.13...1.0.14
<details><summary>See All Contributors</summary>
Fix materialization count by partition (#9979) by @clairelin135[dagit] Turn on timeline run bucketing for everyone (#9993) by @hellendag[dagit] "Remove all" tab button to clear Launchpad tabs (#9981) by @hellendag[dagit] Add polling to Overview pages (#9996) by @hellendagReturn each Python PackageSpec's distribution (#9889) by @jmsanders[dagster-airbyte] Support union types while generating normalization tables (#9937) by @benpankow[dagster-airbyte] Add option to specify custom API request params to Airbyte resource (#10000) by @benpankowView Notebook button opens notebook as link if it's a url (#9894) by @jamiedemariaIO manager concept doc improvements (#9987) by @sryza[dagster-airbyte] Add optional connection name filter when generating assets (#9975) by @benpankow[docs] Update deployment settings reference with SSO default role (#9984) by @benpankow[docs] - dbt-focused intro tutorial (#9853) by @jamiedemariaConfigure tokens -> Tokens (#9999) by @salazarmadd a link to discuss.dagster.io on README (#10002) by @yuhan1.0.13 changelog (#10010) by @yuhan[fix] fix docs bk error (#10014) by @benpankowOnly add buildkite steps for affected changes (#9897) by @jmsanders[dagit] Add daemon alerts to Overview schedules/sensors pages (#9972) by @hellendag[dagit] Make asset catalog toolbar sticky (#9974) by @hellendag[dagit] Update workspace flag label (#9994) by @hellendagfix code example in create_databricks_job_op (#10012) by @sryzaFixup setup paths (#10019) by @jmsandersSkip Python checks if no Python files change (#10016) by @jmsandersSkip package steps instead of excluding them (#10018) by @jmsandersDon't raise an exception when changing the EcsRunLauncher's container name to a new name (#10026) by @gibsondan[event log tests] add origin to run (#10017) by @alangenfeldmove the big honkin asset graph to latest asset APIs (#10025) by @sryzaConditionally skip helm steps (#10031) by @jmsanders[dagit] Fix run tab counts not updating with poll interval (#9929) by @hellendagAutomation: versioned docs for 1.0.13 by @elementl-devtoolsAlso run helm on merges to main (#10038) by @jmsanders[dagit] Split asset graphs onto a new “Plots” tab (#9735) by @bengotow[dagit] Fetch isAssetJob in WorkspaceContext, rm Launchpad tab flicker (#9770) by @bengotowWorkaround for upstream snowflake-sqlalchemy issue (#10049) by @gibsondan[dagster-airbyte] Generate schema metadata at load time when loading from project or instance (#9939) by @benpankow[cacheable-assets] Enable use of with_resources, with_prefix_or_group on cacheable assets (#9978) by @benpankow[docs] Fix for asset preview image next to code block (#9881) by @benpankowfix credential helper links and volume path (#10046) by @gibsondanRefactor build python package skipping (#10037) by @jmsandersreplace tag joins with subquery over tag intersection queries (#10036) by @prhaAlso correctly skip dagster_buildkite (#10053) by @jmsanderspass tags to asset reconciliation sensor (#10032) by @jamiedemariainfer graph input types from inner input types (#9658) by @sryzaAdd hook for launch pad root execution button (#9976) by @salazarmMake the default_job_io_manager overridable via env (#9950) by @johannkm[dagit] Jest cleanup for missing canvas context (#10035) by @hellendag[easy] fix incorrect cli link (#10058) by @gibsondanSkip integration tests (#10051) by @jmsandersconsistent capitalization in LaunchAssetChoosePartitionsDialog (#10033) by @sryzaFix package skipping for dagster-test (#10063) by @jmsandersfix graph type inference with fan-in (#10064) by @sryzaFix runs yielded error for multi asset sensor (#10059) by @clairelin135[dagit] Add "Materialize" action item to asset action menu (#10065) by @hellendag[dagit] Update Backfill table styles (#10070) by @hellendagRaise if we can't infer distribution (#10066) by @jmsandersfix Dagit execution of partitioned asset jobs with hardcoded config (#10057) by @sryzaSkip grapqhl and mysql checks (#10054) by @jmsanders[windows tests] fix start time == end time issue (#10021) by @alangenfeld[dagster-io/ui] Calculate available width for MiddleTruncate (#10052) by @hellendag[dagit] Add Shift+click to expand/collapse all repos in run timeline and tables (#10076) by @hellendag[dagit] Fix repo row expanded icon (#10077) by @hellendagAllow passing in task definition config to the EcsRunLauncher instead of just a task definition ARN (#10044) by @gibsondanbump test_execute_schedule_on_celery_k8s to 3m (#10088) by @alangenfeldExpose permissions loading state (#10093) by @salazarmRevert "Make the default_job_io_manager overridable via env (#9950)" by @johannkmAdd helm vals for scheduler threading (#10094) by @dpeng817[dagit] Shift-clicking Materialize should show asset launchpad even if assets are partitioned (#10047) by @bengotow1.0.14 changelog (#10106) by @dpeng8171.0.14 by @elementl-devtools</details>
AssetMaterialization now has a metadata property, which allows accessing the materialization’s metadata as a dictionary.
AssetMaterialization now has a metadata property, which allows accessing the materialization’s metadata as a dictionary.DagsterInstance now has a get_latest_materialization_event method, which allows fetching the most recent materialization event for a particular asset key.RepositoryDefinition.load_asset_value and AssetValueLoader.load_asset_value now work with IO managers whose load_input implementation accesses the op_def and name attributes on the InputContext.RepositoryDefinition.load_asset_value and AssetValueLoader.load_asset_value now respect the DAGSTER_HOME environment variable.InMemoryIOManager, the IOManager that backs mem_io_manager, has been added to the public API.multi_asset_sensor (experimental) now supports marking individual partitioned materializations as “consumed”. Unconsumed materializations will appear in future calls to partitioned context methods.build_multi_asset_sensor_context testing method (experimental) now contains a flag to set the cursor to the newest events in the Dagster instance.TableSchema now has a static constructor that enables building it from a dictionary of column names to column types.dagster run migrate-repository which lets you migrate the run history for a given job from one repository to another. This is useful to preserve run history for a job when you have renamed a repository, for example.DagsterCloudOperator and DagsterOperator now support Airflow 2. Previously, installing the library on Airflow 2 would break due to an import error.execute_in_process, no error would be raised. Now, a DagsterMaxRetriesExceededError will be launched off.load_assets_from_...(..., use_build=True), AssetObservation events would be emitted for each test. These events would have metadata fields which shared names with the fields added to the AssetMaterialization events, causing confusing historical graphs for fields such as Compilation Time. This has been fixed.load_assets_from_... was generated in a way which was non-deterministic for dbt projects which pulled in external packages, leading to errors when executing across multiple processes. This has been fixed.dagster_airflow.hooks. Thanks @bollwyvl!dagster-gcp now supports google-api-python-client 2.x. Thanks @amarrella!build_asset_reconciliation_sensor.multi_asset_sensor and kicking off subsequent partitioned runs.https://github.com/dagster-io/dagster/compare/1.0.12...1.0.13
<details><summary>See All Contributors</summary>
[dagit] Run timeline: reduce scheduled tick width, reduce chunk min width (#9913) by @hellendag[dagster-airflow] Add DagsterOperator and associated airflow abstractions (#9780) by @Ramshackle-Jamathonpartition_key and upstream_output.asset_key in load_asset_value (#9914) by @sryzaPin dask-kubernetes until we switch KubeCluster (#9918) by @jmsandersFix executor test (#9919) by @gibsondanAutomation: versioned docs for 1.0.12 by @elementl-devtoolschange log for 1.0.12 (#9923) by @sryzarespect DAGSTER_HOME in AssetValueLoader (#9922) by @sryza[dagit] Create Overview root (#9907) by @hellendagfix 1.0.12 changelog (#9925) by @sryza[dagit] Bucketed virtualized tables for Jobs, Schedules, Sensors (#9909) by @hellendag[Feature] Add possibility to change request timeout value when calling airbyte (#9906) by @FransDelasset selection diff apidoc (#9917) by @sryzaadd InMemoryIOManager to public API (#9882) by @sryzaadd SDAs to fs_io_manager docstring examples (#9872) by @sryzaExplicitly error when retries are exceeded if raise_on_error is set (#9934) by @dpeng817add cli command to migrate job runs from one repo to another (#9376) by @prhaadd empty init.pyto makedagster_airflow.hooks, .links importable (#9932) by @bollwyvlAdd metadata hooks for making grpc client calls (#9825) by @gibsondanTableSchema.from_name_type_dict (#9926) by @sryzalinting fixups for dagster-airflow (#9948) by @Ramshackle-Jamathonadd name and op_def to asset value load context (#9942) by @sryza[dagster-io/ui] Middle truncation (#9933) by @hellendagUnpin google dependencies (#9319) by @amarrella[dagster-dbt] Fix dbt asset op name (#9963) by @OwenKephartAdd asset_selection arg to execute_job (#9876) by @dpeng817Convert definitions tests to use graph/job/op APIs (#9736) by @dpeng817make it easier to fetch asset materialization metadata (#9951) by @sryzaData pipeline smoke test example (#9945) by @sryzaremove dagster-dbt deps on pandas and dagster-pandas (#9953) by @sryzaAdd skipped events to multi asset sensor context (#9903) by @clairelin135[dagstermill] update DagsterTranslator to support newer versions of papermill (#9901) by @tizz98[dagster-io/ui] Test and comments for middle truncation search (#9955) by @hellendag[dagster-dbt] fix dbt test metadata (#9965) by @OwenKephartShow noteable logo on noteable backed assets/ops (#9916) by @jamiedemariaFlag to set cursor to latest materializations on build_multi_asset_sensor_context (#9814) by @clairelin135[docs] asset reconciliation sensor concept page (#9912) by @jamiedemariasupport asset keys and asset selection for multi asset sensors (#9954) by @jamiedemaria[docs] - Partitioned multi asset sensor examples (#9722) by @clairelin135Update multi asset sensor docstring (#9971) by @jamiedemariaClarify with_resources error and update docs (#9784) by @clairelin135Add threading to scheduler daemon (#9885) by @dpeng817Ignore warnings sent from the dagster module (#9577) by @dpeng817[dagster-airflow] remove default param for parent init (#9966) by @Ramshackle-JamathonFix incorrect secrets_tags docs (#9980) by @gibsondanDocument cloud Docker credential helpers (#9982) by @jmsanders[dagster-dbt] boldly ignore type hints (#9989) by @OwenKephartIncrease timeout in asset sensor tests (#9990) by @jamiedemaria[dagster-dbt] make dbt cli resource methods public (#9973) by @OwenKephartduckdb integration library (#9869) by @jamiedemariaFix materialization count by partition (#9979) by @clairelin135[dagit] Turn on timeline run bucketing for everyone (#9993) by @hellendag[dagster-airbyte] Support union types while generating normalization tables (#9937) by @benpankow[dagster-airbyte] Add option to specify custom API request params to Airbyte resource (#10000) by @benpankow[dagster-airbyte] Add optional connection name filter when generating assets (#9975) by @benpankow[docs] Update deployment settings reference with SSO default role (#9984) by @benpankow[docs] - dbt-focused intro tutorial (#9853) by @jamiedemaria1.0.13 changelog (#10010) by @yuhanDon't raise an exception when changing the EcsRunLauncher's container name to a new name (#10026) by @gibsondan1.0.13 by @elementl-devtools</details>
Previously, some invocations within the Dagster framework would result in warnings about deprecated metadata APIs. Now, users should only see warnings…
multi_asset_sensor (experimental) now accepts an AssetSelection of assets to monitor. There are also minor API updates for the multi-asset sensor context.AssetValueLoader, the type returned by RepositoryDefinition.get_asset_value_loader is now part of Dagster’s public API.RepositoryDefinition.load_asset_value and AssetValueLoader.load_asset_value now support a partition_key argument.RepositoryDefinition.load_asset_value and AssetValueLoader.load_asset_value now work with I/O managers that invoke context.upstream_output.asset_key.dagster.yaml as follows:code_servers:
local_startup_timeout: 120
load_assets_from_airbyte_instance function which automatically generates asset definitions from an Airbyte instance. For more details, see the new Airbyte integration guide.DagsterCloudOperator and DagsterOperator , which are airflow operators that enable orchestrating dagster jobs, running on either cloud or OSS dagit instances, from Apache Airflow.port configuration in the airbyte_resource was marked as not required, but if it was not supplied, an error would occur. It is now marked as required.load_assets_from_dbt_project or load_assets_from_manifest_json. This has been fixed.sqlalchemy.exc.TimeoutError now retryredshift_resource no longer accepts a schema configuration parameter. Previously, this parameter would error whenever used, because Redshift connections do not support this parameter.LazyPysparkResource that only initializes a spark session once it’s accessed (thank you @zyd14!)build_asset_reconciliation_sensor function accepts a set of software-defined assets and returns a sensor that automatically materializes those assets after their parents are materialized.RepositoryDefinition now exposes a load_asset_value method, which accepts an asset key and invokes the asset’s I/O manager’s load_input function to lo
RepositoryDefinition now exposes a load_asset_value method, which accepts an asset key and invokes the asset’s I/O manager’s load_input function to load the asset as a Python object. This can be used in notebooks to do exploratory data analysis on assets.PartitionKeyRange now exist on the op execution context and input/output context.@multi_asset decorator now respects its config_schema parameter.define_asset_job is now prefilled in the modal that pops up when you click the Materialize button on an asset job page, so you can quickly adjust the defaults.DagsterDbtCliErrors produced from the dagster-dbt library would contain large serialized objects representing the raw unparsed logs from the relevant cli command. Now, these messages will contain only the parsed version of these messages.deploy_ecs example didn’t work when built and deployed on an M1 Mac.resync_parameters configuration on the fivetran_resync_op is now optional, enabling triggering historical re*syncs for connectors. Thanks @dwallace0723!https://github.com/dagster-io/dagster/compare/1.0.10...1.0.11 <details><summary>See All Contributors</summary>
[dagster-dbt] fix star issue for asset input names (#9763) by @OwenKephartapi docs for snowflake resource (#9717) by @jamiedemaria[dagit] Hide hidden asset group job from Instance Overview (#9742) by @hellendag[dagit] Workspace Overview page (#9744) by @hellendag[dagit] Virtualized table for assets (#9759) by @hellendag1.0.10 Changelog (#9771) by @OwenKephartadd api doc for run_request_for_partition (#9645) by @sryza[fixit] Add library versions to docs (#9768) by @smackeseyAutomation: versioned docs for 1.0.10 by @elementl-devtoolsRemove unused workspace args from schedule wipe command (#9753) by @gibsondan[dagster-fivetran] Optional Fivetran Historical Resync Parameters (#9774) by @dwallace0723Helm template tests support raw dict (#9773) by @johannkm[dagit] Prefill default job config when materializing assets (#9769) by @bengotow[dagit] Multi-colored run batch backgrounds (#9775) by @hellendag[dagit] Virtualized graphs table, reuse ops view (#9778) by @hellendag[dagster-dbt] remove logs and raw output from dbt errors (#9779) by @OwenKephartstarlette TestClient deps (#9791) by @alangenfeldExtend ECS stub to include new cpu/mem (#9786) by @jmsandersGet asset partition keys from IOManager and Op Contexts (#9776) by @clairelin135[dagit] Fix lint (#9798) by @hellendag[dagit] Top tooltip for backfill segments (#9783) by @hellendag[dagit] Add reload button to WorkspaceHeader (#9789) by @hellendag[dagit] Add top-level polling to virtualized table pages (#9797) by @hellendagfix 4xx in docs.dagster.io CLOUD-1843 (#9802) by @yuhan[scheduler] dont clean auto running states for error locations (#9805) by @alangenfeld[perf] resolve lru_cache usage issues (#9782) by @alangenfeldA few tweaks to concept docs (#9793) by @sryzaSpecify platform to build in deploy_ecs example (#9815) by @gibsondanAdd way to build and deploy the deploy_ecs project locally (#9760) by @gibsondanrm dead code in GrpcServerRepositoryLocation (#9811) by @alangenfeldRevert "remove dagster cli api subcommand from docs (#9165)" (#9740) by @gibsondanload asset values outside of a run (#9792) by @sryza[dagit] Make asset group row clickable (#9810) by @hellendag[dagit] Update homepage and top nav for new workspace flag (#9819) by @hellendag[dagit] Align virtualized table cells to top (#9809) by @hellendag[dagit] Hover/active state for top nav items (#9816) by @hellendaghandle None outputs in snowflake IO manager (#9818) by @sryza[docs] - simplify multi-asset sensor examples and fix formatting (#9754) by @sryzamark dbt outputs as Nothing (#9822) by @sryzamake methods of PartitionMapping public (#9747) by @sryzaMake alembic pin much less restrictive (#9830) by @gibsondan[dagit] Export the new Workspace grid for Cloud use (#9824) by @hellendagfix config schema on multi-asset (#9828) by @sryza1.0.11 by @elementl-devtools</details>
Run status sensors can now monitor all runs in a Dagster Instance, rather than just runs from jobs within a single repository. You can enable this beh
monitor_all_repositories=True in the run status sensor decorator.run_key argument on RunRequest and run_request_for_partition is now optional.multi_asset_sensor where the cursor would fail to update, and materializations would be returned out of order for latest_materialization_records_by_partition.%Y-%m-%d.foo == None to foo is None (thanks @chrisRedwine!).__ASSET_JOB name, rather than a comprehensible set of asset keys. This has been fixed.k8s_job_op would sometimes fail if the Kubernetes job that it creates takes a long time to create a pod.k8s_job_executor now uses environment variables in place of CLI arguments to avoid limits on argument size with large dynamic jobs.https://github.com/dagster-io/dagster/compare/1.0.9...1.0.10
<details><summary>See All Contributors</summary>
[dagster-airbyte] Add config to avoid pulling/forwarding Airbyte logs to compute log (#9649) by @benpankow[dagster-airbyte] Support representing normalization-created tables as Assets (#9655) by @benpankowisolate backfill partition status from partition status (#9698) by @prha[dagster-airbyte] Add ability to generate Airbyte assets from YAML files (#9664) by @benpankow[grpc] deferred snapshot support (#9630) by @alangenfelddocstring updates for build_op_context (#9690) by @sryzatags argument on build_schedule_from_partitioned_job (#9699) by @sryza[dagit] Fix Run Timeline support for multiple jobs with the same name (#9684) by @bengotow[dagit] Defensively pretty-print JSON in run logs (#9682) by @bengotowreplace run count with a run status indicator (#9700) by @prhaAdd asset selection flag to run_request_for_partition (#9679) by @clairelin135[dagster-dbt] fix missing select when using dbt_cli_resource (#9680) by @OwenKephart[dagit] remove mode and graphName from workspace context (#9701) by @alangenfeld[dagster-databricks] fix library install version (#9696) by @OwenKephart[dagit] Fix run.assets returning duplicate asset keys, tags appearing twice (#9681) by @bengotowEnable step retries on docker executor (#9675) by @johannkm[docs] - Clean up Guides sidenav + category page (#9247) by @erinkcochran87[docs] - Dagster Cloud full deployment docs (#9643) by @erinkcochran87[grpc] include timeout length in timeout error (#9492) by @alangenfeld1.0.9 Changelog (#9704) by @smackeseyAutomation: versioned docs for 1.0.9 by @elementl-devtoolsrun status sensor that can monitor the whole instance (#9666) by @jamiedemariaimprove dagster debug help text (#9712) by @alangenfeld[dagit] Use workspace-level repo filtering in virtualized jobs table (#9691) by @hellendag[dagster-graphql] dont batch if only 1 target (#9710) by @alangenfeld[dagit] Virtualized schedules table (#9706) by @hellendagFixes for multi_asset_sensor (#9708) by @clairelin135Retry while waiting for the k8s_job_op job to have pods (#9709) by @gibsondan[dagit] Virtualized sensor table (#9718) by @hellendagstop populating output_description on ExternalAssetNode (#9721) by @OwenKephart[docs] - Graph-backed asset subsetting docs (#9695) by @clairelin135fix repeat file import (#9719) by @alangenfeld[docs] - Fix dbt > dbt Cloud in docs sidenav (#9720) by @erinkcochran87remove unused modes from factory floor query (#9724) by @gibsondanmaking it possible to skip debug log within polling loop (#9716) by @zyd14[dagit] Add unloadable alert to virtualized schedule/sensor pages (#9725) by @hellendag[dagit] Avoid skipping subscription for compute log panel (#9734) by @hellendag[dagit] Show ad hoc asset materializations in run timeline (#9726) by @hellendagConvert singleton comparisons from equality to identity (#9587) by @chrisRedwinemodernize dynamic_tests (#9732) by @alangenfeld[dagit] Allow deleting a run from the Run page itself (#9729) by @hellendag[dagit] Don't link to nowhere on Backfill history table (#9733) by @hellendagk8s executor pass args via env var (#8564) by @johannkm[docs] - Fix IS_BRANCH_DEPLOYMENT docs examples (#9730) by @gibsondan[dagit] Allow collapsing the asset event row that is expanded by default (#9683) by @bengotow[dagit] Repair some spacing on requested runs dialog (#9746) by @hellendagmake run keys optional on run requests (#9748) by @sryzafix time window partition mapping with offset and lossy format (#9751) by @sryza[dagit] Avoid showing hidden asset jobs on the backfill page (#9737) by @bengotow[dagster-dbt] fix star issue for asset input names (#9763) by @OwenKephart1.0.10 Changelog (#9771) by @OwenKephart[fixit] Add library versions to docs (#9768) by @smackesey1.0.10 by @elementl-devtools</details>
The multi_asset_sensor (experimental) now has improved capabilities to monitor asset partitions via a latest_materialization_records_by_partition meth
multi_asset_sensor (experimental) now has improved capabilities to monitor asset partitions via a latest_materialization_records_by_partition method.dagstermill.get_context to be ignoredk8s_job_opdocker_executorlist_objects method to S3FakeSession!AirbyteResource, allowing users to disble forwarding of Airbyte logs to the compute log, which can be expensive for long-running syncs.With the new cron_schedule argument to TimeWindowPartitionsDefinition, you can now supply arbitrary cron expressions to define time window-based parti
cron_schedule argument to TimeWindowPartitionsDefinition, you can now supply arbitrary cron expressions to define time window-based partition sets.AssetsDefinition.from_graph(my_graph, can_subset=True).RunsFilter is now exported in the public API.dagster-user-deployments.deployments[].schedulerName Helm value for specifying custom Kubernetes schedulers will now also apply to run and step workers launched for the given user deployment. Previously it would only apply to the grpc server.grpcio in dagster to address an issue with the recent 0.48.1 grpcio release that was sometimes causing Dagster code servers to hang.cron_schedule now also accepts a sequence of cron strings. If a sequence is provided, the schedule will run for the union of all execution times for the provided cron strings, e.g., ['45 23 * * 6', '30 9 * * 0] for a schedule that runs at 11:45 PM every Saturday and 9:30 AM every Sunday. Thanks @erinov1!install_default_libraries to databricks_pyspark_step_launcher . It allows to run Databricks jobs without installing the default Dagster libraries .Thanks @nvinhphuc!container_config, pod_template_spec_metadata, pod_spec_config, job_metadata, and job_spec_config) to the experimental k8s_job_op that can be used to add additional configuration to the Kubernetes pod that is launched within the op.Several updates to the Dagit run timeline view: your time window preference will now be preserved locally, there is a clearer “Now” label to delineate
ingress.labels is now available in the Helm chart. Any provided labels are appended to the default labels on each object (helm.sh/chart, app.kubernetes.io/version, and app.kubernetes.io/managed-by).GraphDefinition manually, InputMapping and OutputMapping objects should be directly constructed.with_resources alongside source assets.InputMapping and OutputMapping constructors have changed.[dagit] nbconvert is now installed as an extra in Dagit.
multi_asset_sensor (experimental).config argument of define_asset_job now works if the job contains partitioned assets.RunRequests from sensors, you can now optionally supply an asset_selection argument, which accepts a list of AssetKeys to materialize from the larger job.load_assets_from_dbt_project and load_assets_from_dbt_manifest now support the exlude parameter, allowing you to more precisely which resources to load from your dbt project (thanks @flvndh!)select parameter on your dbt_cli_resource , this would not get passed into the corresponding invocations of certain context.resources.dbt.x() commands. This has been fixed.Nothing published for this version
Assets can now be materialized to storage conditionally by setting output_required=False. If this is set and no result is yielded from the asset, Dags
output_required=False. If this is set and no result is yielded from the asset, Dagster will not create an asset materialization event, the I/O manager will not be invoked, downstream assets will not be materialized, and asset sensors monitoring the asset will not trigger.JobDefinition.run_request_for_partition can now be used inside sensors that target multiple jobs (Thanks Metin Senturk!)DAGSTER_GRPC_TIMEOUT_SECONDS now allows for overriding the default timeout for communications between host processes like dagit and the daemon and user code servers.dagster module has been reduced, by approximately 50% in initial measurements.AssetIn now accepts a dagster_type argument, for specifying runtime checks on asset input values.execute_query method of the snowflake resource now accepts a use_pandas_result argument, which fetches the result of the query as a Pandas dataframe. (Thanks @swotai!)load_assets_from_dbt_project and load_assets_from_dbt_manifest now support the exclude parameter. (Thanks @flvndh!)select parameter was configured on the dbt_cli_resource, it would not be passed into invocations of context.resources.dbt.run() (and other similar commands). This has been fixed.dagster_ge_validation_factory and dagster 1.0 has been fixed.DagstermillExecutionContext were not exposed. This has since been fixed.Failure now has an allow_retries argument, allowing a means to manually bypass retry policies.
Failure now has an allow_retries argument, allowing a means to manually bypass retry policies.dagstermill.get_context and dagstermill.DagstermillExecutionContext have been updated to reflect stable dagster-1.0 APIs. pipeline/solid referencing arguments / properties will be removed in the next major version bump of dagstermill.TimeWindowPartitionsDefinition now exposes a get_cron_schedule method.key argument to GCSFileManager methods to set the GCS blob key, thank you!When the workpace is updated, a notification will appear in Dagit, and the Workspace tab will automatically refresh.
Field.__init__ has been typed, which resolves an error that pylance would raise about default_valuedagster_type_materializer and dagster_type_loader expected functions to take a context argument from an internal dagster import. We’ve added DagsterTypeMaterializerContext and DagsterTypeLoaderContext so that functions annotated with these decorators can annotate their arguments properly.dagster_slack documentation examples. Thanks @ssingh13-rms!Fixed an issue where Dagster libraries would sometimes log warnings about mismatched versions despite having the correct version loaded.
In 1.0.0, a large number of previously-deprecated APIs have been fully removed. A full list of breaking changes and deprecations, alongside instructio…
dagster project CLI contains commands for bootstrapping new Dagster projects and repositories
dagster project scaffold creates a folder structure with a single Dagster repository and other files such as workspace.yaml. This CLI enables you to quickly start building a new Dagster project with everything set up.dagster project from-example downloads one of the Dagster examples. This CLI helps you to quickly bootstrap your project with an officially maintained example. You can find the available examples via dagster project list-examples.default_executor_def argument has been added to the @repository decorator. If specified, this will be used for any jobs (asset or op) which do not explicitly set an executor_def.default_logger_defs argument has been added to the @repository decorator, which works in the same way as default_executor_def.execute_job function presents a Python API for kicking off runs of your jobs.RunRequests, allowing you to kick off a job in response to the status of another job.input_manager_key argument to AssetIn and In.In 1.0.0, a large number of previously-deprecated APIs have been fully removed. A full list of breaking changes and deprecations, alongside instructions on how to migrate older code, can be found in MIGRATION.md. At a high level:
solid and pipeline APIs have been removed, along with references to them in extension libraries, arguments, and the CLI (deprecated in 0.13.0).AssetGroup and build_asset_job APIs, and a host of deprecated arguments to asset-related functions, have been removed (deprecated in 0.15.0).EventMetadata and EventMetadataEntryData APIs have been removed (deprecated in 0.15.0).dagster_type_materializer and DagsterTypeMaterializer have been marked experimental and will likely be removed within a 1.x release. Instead, use an IOManager.FileManager and FileHandle have been marked experimental and will likely be removed within a 1.x release.configured in Dagit. Up through this point, values provided to configured have not been sent anywhere outside the process where they were used. This change will mean that, like other places you can supply configuration, configured is not a good place to put secrets: You should not include any values in configuration that you don't want to be stored in the Dagster database and displayed inside Dagit.fs_io_manager, s3_pickle_io_manager, and gcs_pickle_io_manager, and adls_pickle_io_manager no longer write out a file or object when handling an output with the None or Nothing type.custom_path_fs_io_manager has been removed, as its functionality is entirely subsumed by the fs_io_manager, where a custom path can be specified via config.typing_type of a DagsterType is now typing.Any instead of None.databricks_pyspark_step_launcher the events sent back to the host process are now compressed before sending, resulting in significantly better performance for steps which produce a large number of events.load_assets_from_dbt_project while loading your repository, the error message in Dagit will now display additional context from the dbt logs, instead of just DagsterDbtCliFatalRuntimeError.group_name argument to AssetsDefinition.from_graph when a key_prefix argument is also present.None return type annotation are now given the Nothing type instead of the Any type.AssetsDefinition.from_graph and from_op to fail when invoked on a configured op.materialize function, which is not experimental, no longer emits an experimental warning.databricks_pyspark_step_launcher, and the external step failed to start, a RESOURCE_DOES_NOT_EXIST error would be surfaced, without helpful context. Now, in most cases, the root error causing the step to fail will be surfaced instead.Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
MetadataEntry static methods are now marked as deprecated in the docs.
dicts.OpDefinition constructor now accept ins and outs arguments, to make direct construction easier.define_dagstermill_op accepts ins and outs in order to make direct construction easier.RunRequests returned from run_status_sensors caused the sensor to error.define_asset_job, an error would occur when selecting most asset subsets. This has been fixed.500 http status codes for GraphQL requests that encountered an unexpected server error.day_offset, hour_offset, or minute_offset parameters were set on the asset’s partitions definition.dagster-k8s/config didn’t actually override the command.acryl-datahub to avoid build error.JobDefinition objects now accept a config argument, and the preset_defs argument has been removed.DagsterPipelineRunMetadataValue has been renamed to DagsterRunMetadataValue. DagsterPipelineRunMetadataValue will be removed in 1.0.MetadataEntry static methods are now marked as deprecated in the docs.PartitionMappings are now included in the API reference.[dagit] The explorer sidebar no longer displays “mode” label and description for jobs, since modes are deprecated.
DagsterRun now has a job_name property, which should be used instead of pipeline_name.TimeWindowPartitionsDefinition now has a get_partition_keys_in_range method which returns a sequence of all the partition keys between two partition keys.OpExecutionContext now has asset_partitions_def_for_output and asset_partitions_def_for_input methods.AssetsDefinition objects with the same key are provided to the same repository.build_output_context now accepts a partition_key argument that can be used when testing the handle_output method of an IO manager.asset_key set.@asset and @multi_asset decorators no longer have a top-level “assets” entry in their config schema. This entry was unused.load_assets_from_dbt_manifest with a select parameter that included sources would result in an error. This has been fixed.@repository decorated function expects parameters. Thanks @roeij!examples/hacker_news/, has been removed, because it hadn’t received updates in a long time and had drifted from best practices. The asset version is still there and has an updated README. Check it out herehttps://github.com/dagster-io/dagster/compare/0.15.6...0.15.7 <details><summary>See All Contributors</summary>
Correct check for pickle s3 io manager (#8834) by @ripplekhera[dagit] Always show “Materialize” instead of “Rematerialize” based on status (#8711) by @bengotow[dagster-dbt] make group configurable for load_assets_from_dbt (#8863) by @OwenKephartasset_partitions_def on InputContext and OutputContext (#8858) by @sryza[dagster-dbt] refactor the dbt asset integration (#8793) by @OwenKephartPartitionMappings when non-partitioned assets depend on partitioned assets (#8866) by @sryza[dagster-dbt] seeds and snapshots are assets when using dbt build (#8794) by @OwenKephartDocument valid names for asset keys (#8765) by @jamiedemaria[docs] Dagster + dbt guide (#8714) by @OwenKephart0.15.6 changelog (#8876) by @yuhanprovide description for MAP ConfigType (#8824) by @JiafiRetrieve minimal set of asset records for assetsLatestInfo (#8835) by @bengotowerror when duplicate asset keys on a repository (#8874) by @sryza[docs] - Add Airflow Operator to Op Docs (#8875) by @clairelin135dagster-datahub Rest and Kafka Emitter integration (#8764) by @JiafiAutomation: versioned docs for 0.15.6 by @elementl-devtools[1.0] move solid to dagster.legacy (#8843) by @dpeng817Extract ECS task overrides (#8842) by @jmsanders[graphql] tolerate empty runConfigData (#8886) by @alangenfeld[dagit] Fix edge case where “ “ launchpad config is not coerced to an empty object (#8895) by @bengotowFix ScheduleRootQuery typo (#8903) by @johannkmunloadable shit (#8887) by @prhaChange base image for OSS release builds (#8902) by @gibsondanchange deprecation warnings to 1.0 (#8892) by @dpeng817update README for hacker news assets example (#8904) by @sryza[hacker news] add missing key prefix to activity analytics python assets (#8817) by @sryza[buildkite] Specify internal branch used for compatibility pipeline (#8881) by @smackesey[dagit] Remove “mode” label and description in explorer sidebar (#8907) by @bengotowremove the non-asset version of the hacker news example (#8883) by @sryzaError when @repository-decorated function has arguments (#8913) by @roeij[docs] - Correct snippets for dbt (#8923) by @erinkcochran87[bug] fix input loading regression (#8885) by @OwenKephart[docs] - graph backed assets doc fix (#8927) by @jamiedemariasilence system-originated experimental warning for PartitionMapping (#8931) by @sryzaAdd partition key to build_output_context, add documentation for partition_key on build_op_context (#8774) by @dpeng817fix dimensions of screenshot on connecting ops tutorial page (#8908) by @sryzattv: remove undocumented/legacy example - user in loop (#8934) by @yuhan[docs] - Clean up graph-backed asset example, put under test (#8893) by @dpeng817[docs] - Fix garbled sentence in ops.mdx (#8935) by @schrocknenable getting asset partitions def from op context (#8924) by @sryzaIncrease test_docker_monitoring timeout (#8906) by @johannkmPartitionsDefinition.get_partition_keys_in_range (#8933) by @sryzaMove pipeline to dagster.legacy (#8888) by @dpeng817[dagit] Rename search open event (#8954) by @hellendag[dagit] Adjust shift-selection behavior in asset graphs (#8950) by @bengotow[dagit] Clean up code around the graph sidebar (#8914) by @bengotowadd a job_name property to PipelineRun (#8928) by @sryzaremove partition entries from asset op config schema (#8951) by @sryzaavoid pipelines in run status sensor doc snippets (#8929) by @sryza[bug] Fix issue where 'invalid' asset metadata resulted in an error (#8947) by @OwenKephart[dagster-dbt] fix tagged source asset loading (#8943) by @OwenKephartfix black in run status sensor docs example (#8974) by @sryza[known state] fix build_for_reexecution bug (#8975) by @alangenfeldDocument deprecation of MetadataEntry static constructors (#8984) by @smackeseychangelog (#8986) by @jamiedemaria0.15.7 by @elementl-devtools</details>
The Hacker News example now uses stable 0.15+ asset APIs, instead of the deprecated 0.14.x asset APIs.
default_logger_defs argument has been added to the @repository decorator. Check out the docs on specifying default loggers to learn more.AssetsDefinition.from_graph and AssetsDefinition.from_op now both accept a partition_mappings argument.AssetsDefinition.from_graph and AssetsDefinition.from_op now both accept a metadata_by_output_name argument.define_asset_job now accepts an executor_def argument.gql in dagster-graphql.@multi_asset decorator, either by supplying a group_name argument (which will apply to all of the output assets), or by setting the group_name argument on individual AssetOuts.InputContext and OutputContext now each have an asset_partitions_def property, which returns the PartitionsDefinition of the asset that’s being loaded or stored.build_schedule_from_partitioned_job now raises a more informative error when provided a non-partitioned asset jobPartitionMapping, IdentityPartitionMapping, AllPartitionMapping, and LastPartitionMapping are exposed at the top-level dagster package. They're currently marked experimental.PartitionMapping.PartitionMappings on AssetIn.frame-ancestors restriction.load_assets_from_dbt_project and load_assets_from_dbt_manifest now support a node_info_to_group_name_fn parameter, allowing you to customize which group Dagster will assign each dbt asset to.runtime_metadata_fn when loading dbt assets, this metadata is added to the default metadata that dagster-dbt generates, rather than replacing it entirely.use_build_command=True, seeds and snapshots will now be represented as Dagster assets. Previously, only models would be loaded as assets.DockerRunLauncher would sometimes use Dagit’s Python environment as the entrypoint to launch the run, even if that environment did not exist in the container.Output object is used to type annotate the return of an op, an Output object must be returned or an error will result.PickledObjectS3IOManager in run logs and Asset view. Thanks @danielgafnihttps://github.com/dagster-io/dagster/compare/0.15.5...0.15.6
<details><summary>See All Contributors</summary>
Fold asset_defs submodule into main dagster structure (#8446) by @smackeseyOp that runs a kubernetes job (#8161) by @gibsondanadd validation for graph backed asset graphs (#8754) by @OwenKephartchore: mark snapshots as generated (#8758) by @rexledesma[op] fix empty list output bug (#8763) by @alangenfeld[dagster-dbt] Allow SDAs generated with load_assets_from_dbt* to be partitioned (#8725) by @OwenKephartdocs: update config schema descriptions for default executors (#8757) by @rexledesmaRestore sensor daemon yielding when evaluating sensors synchronously (#8756) by @prhabypass bucketed queries for mysql versions that do not support it (#8753) by @prha[dagster-dbt] Fix error that occurs when generating events for tests that depend on sources (#8775) by @OwenKephartSpecifying executor docs examples (#8530) by @dpeng817prevent multiple sensor evaluations from multithreaded race conditions (#8720) by @prhaFix config case for default executor (#8777) by @dpeng817Ensure graph inputs/outputs are included in all_dagster_types (#8736) by @smackeseyimprove error for build_schedule_from_partitioned_job with non-partitioned asset job (#8776) by @sryza[dagit] Bring back the global asset graph as an “all asset groups” view (#8709) by @bengotowfix source asset regression (#8784) by @smackeseyfix issue with repos and partitioned scheduled asset jobs (#8779) by @sryza0.15.5 Changelog (#8781) by @prhachangelog (#8788) by @prhaOption to hide daemon heartbeat timestamp in Dagit (#8785) by @johannkmFix bug with how resources are applied in materialize (#8790) by @dpeng817Add default_logger_defs arg to repository (#8512) by @dpeng817update hackernews tests to use asset invocation and materialize_to_memory (#8592) by @dpeng817Add MetaDataEntry.path to PickledObjectS3IOManager (#8732) by @danielgafniAutomation: versioned docs for 0.15.5 by @elementl-devtoolsadd define_asset_job to __all__ (#8791) by @sryzaeliminate incorrect SDA warnings (#8769) by @sryzaupdate hacker news assets example for post-0.15.0 APIs (#7904) by @sryzapartition mappings on graph-backed assets (#8768) by @sryzaSnowflake IO Manager handles pandas timestamps (#8760) by @jamiedemariaAdd Python 3.10 testing to BK and other image adjustments (#7700) by @smackeseyOption to skip daemon heartbeats with no errors (#8670) by @johannkmAssorted type annotations (#8356) by @smackeseyBump urllib3 (#8808) by @dependabot[bot]Bump rsa (#8807) by @dependabot[bot]Bump pyyaml (#8806) by @dependabot[bot]Change default local grpc behavior to send back "dagster" as the entry point to use, rather than dagit's python environment (#8571) by @gibsondanmove Metadata and Tags concept page under jobs section (#8813) by @sryzaupdates to multi-assets docs page (#8814) by @sryzaUpdate asset ID to contain repository location and name (#8762) by @clairelin135unpin gql (#8822) by @prharemove unused old partitions ui (#8796) by @prhafix broken asset deps in hacker news example (#8809) by @sryza[dagit] Bump TS version (#8704) by @hellendagfix contributing docs (#8789) by @prhaBetter support for nested causes in dagit (#8823) by @gibsondan[easy] Fix docs link for RetryPolicy (#8830) by @gibsondanRemove the "cronjobs" permission from the helm chart (#8827) by @gibsondanfix gql resolver for graph-backed assets resources (#8825) by @smackeseyrefactor run storage to enable backfill status queries (#8695) by @prharefactor backfill / partition pages to stop run fetching (#8696) by @prhaadd multi_or_in_process_executor to __all__ (#8831) by @smackeseyavoid apollo cache collision for partition/backfill status (#8841) by @prhadistinguish between [] and None for asset queries (#8838) by @prhaoverride batch loader to use asset records instead of legacy event materialization method (#8839) by @prha[dagit] Add analytics.group (#8832) by @hellendag[dagster-io/ui] Fix disabled Button (#8844) by @hellendagFix issue where partitioned assets with resources fail materialization in dagit (#8837) by @smackesey[dagit] Tweak analytics function sigs (#8851) by @hellendag[asset-defs] allow multi assets to have group names (#8847) by @OwenKephartRefactor op return checking code (#8755) by @dpeng817[dagit] Remove frame-ancestors restriction (#8850) by @hellendagadjust error messages (#8853) by @dpeng817[dagit] Update CRA, simplify CSP (#8854) by @hellendagkey_prefix for AssetsDefinition from_graph and from_op (#8859) by @jamiedemariaeasy: fix dagster pandas link (#8862) by @yuhanexecutor_definition on define_asset_job (#8856) by @sryzainclude airflow_operator_to_op in apidoc (#8860) by @sryzaadd metdata_by_output_name (#8861) by @OwenKephart[dagster-dbt] make group configurable for load_assets_from_dbt (#8863) by @OwenKephartasset_partitions_def on InputContext and OutputContext (#8858) by @sryza[dagster-dbt] refactor the dbt asset integration (#8793) by @OwenKephart[dagster-dbt] seeds and snapshots are assets when using dbt build (#8794) by @OwenKephartPartitionMappings when non-partitioned assets depend on partitioned assets (#8866) by @sryza[docs] Dagster + dbt guide (#8714) by @OwenKephart0.15.6 by @elementl-devtools</details>
Removed the deprecated dagster-daemon health-check CLI command
materialize that would cause required resources to not be applied correctly.build_schedule_from_partitioned_job and define_asset_job were used together.FROM_FAILURE strategySTARTING and SUCCESS status.default_executor_def argument on repository where asset jobs that defined executor config would result in errors.databricks_pyspark_step_launcher now allows you to configure the following (Thanks @Phazure!):
aws_attributes of the cluster that will be spun up for the step.[dagster-k8s] Added k8s_job_op to launch a Kubernetes Job with an arbitrary image and CLI command. This is in contrast with the k8s_job_executor, which runs each Dagster op in a Dagster job in its own k8s job. This op may be useful when you need to orchestrate a command that isn't a Dagster op (or isn't written in Python). Usage:
from dagster_k8s import k8s_job_op
my_k8s_op = k8s_job_op.configured({
"image": "busybox",
"command": ["/bin/sh", "-c"],
"args": ["echo HELLO"],
},
name="my_k8s_op",
)
[dagster-dbt] The dbt asset-loading functions now support partitions_def and partition_key_to_vars_fn parameters, adding preliminary support for partitioned dbt assets. To learn more, check out the Github issue!
https://github.com/dagster-io/dagster/compare/0.15.4...0.15.5
<details><summary>See All Contributors</summary>
Remove unused check_heartbeats arg (#8673) by @johannkmdocs: use dagster brand colors for README (#8660) by @rexledesmafix: use absolute url for README images (#8676) by @rexledesmaExpose TimeWindow in dagster package (#8643) by @nvinhphuchold shift to force asset config modal (#8668) by @smackeseyadd helm values for configuring instance sensor config (#8657) by @prha[dagit] If you have no jobs, prefer routing to asset group over asset catalog (#8613) by @bengotow[dagit] Add control for graph depth on the Asset Lineage page, default to 5 (#8531) by @bengotow[assets] Fix issue with graph backed assets + partitions (#8682) by @OwenKephart[dagster-dbt] rework dagster dbt logging, cleanup (#8681) by @OwenKephartYield run requests from run status sensors (#8635) by @jamiedemariafix docs build (#8688) by @OwenKephartapidoc for AssetSelection and AssetsDefinition (#8618) by @sryzaMaterialize has resources arg, materialize_to_memory sets mem_io_manager for all io managers (#8659) by @dpeng817Load asset launchpad for assets with configurable resources (#8677) by @smackeseydocs: update external links for github issues (#8661) by @rexledesmadocs: convert github issue templates to forms (#8663) by @rexledesmaswitch unloadable states to dedupe by selector id (#8656) by @prha0.15.3 changelog (#8690) by @dpeng817Automation: versioned docs for 0.15.3 by @elementl-devtoolsdocs: remove extra cruft from issue form (#8701) by @rexledesmadocs: improve left nav for items with children DREL-359 (#8693) by @yuhandocs: fix prev/next pagination (#8697) by @yuhandocs: docs test should capture Next Image broken links and fix broken links (#8702) by @yuhan[dagit] Display last asset key component on DAG rather than truncated full path (#8692) by @bengotow[dagit] Collapsed DAG rendering of multiple edges between the same ops (#8479) by @bengotow[dagit] Add Analytics context (#8674) by @hellendagorder the backfill partitions before creating (#8703) by @prhaskip threadpool sensor daemon tests (#8717) by @prhaskip threaded sensor tests in py36 (#8726) by @prhaAllow run status sensors to support unresolved asset jobs (#8689) by @smackesey[dagster_databricks] - support configuration of job / cluster permissions (#8683) by @Phazure[dagster_databricks] support aws_attributes (#8684) by @Phazure[Job Log perf] Use rAF to call throttleSetNodes (#8735) by @salazarm[dagster_databricks] support arbitrary env variables (#8685) by @Phazureminor changes to make dev_install (#8745) by @smackeseyRemove deprecated daemon health-check cli (#8751) by @johannkmAdd reexecution strategy to auto run retries (#8718) by @johannkmFix for blocks_fn option (#8448) by @clairelin135Automation: versioned docs for 0.15.4 by @elementl-devtoolsImprove race condition in run monitor (#8729) by @brad-alexanderAdd get_daemon_statuses instance method (#8752) by @johannkm0.15.4 changelog here (#8766) by @prhaadd retention helm values (#8724) by @prhaOp that runs a kubernetes job (#8161) by @gibsondan[op] fix empty list output bug (#8763) by @alangenfeld[dagster-dbt] Allow SDAs generated with load_assets_from_dbt* to be partitioned (#8725) by @OwenKephartadd validation for graph backed asset graphs (#8754) by @OwenKephartdocs: update config schema descriptions for default executors (#8757) by @rexledesma[dagster-dbt] Fix error that occurs when generating events for tests that depend on sources (#8775) by @OwenKephartRestore sensor daemon yielding when evaluating sensors synchronously (#8756) by @prhabypass bucketed queries for mysql versions that do not support it (#8753) by @prhaprevent multiple sensor evaluations from multithreaded race conditions (#8720) by @prhaFold asset_defs submodule into main dagster structure (#8446) by @smackeseyFix config case for default executor (#8777) by @dpeng817Ensure graph inputs/outputs are included in all_dagster_types (#8736) by @smackesey[dagit] Bring back the global asset graph as an “all asset groups” view (#8709) by @bengotowfix source asset regression (#8784) by @smackeseyimprove error for build_schedule_from_partitioned_job with non-partitioned asset job (#8776) by @sryzafix issue with repos and partitioned scheduled asset jobs (#8779) by @sryza0.15.5 Changelog (#8781) by @prhaFix bug with how resources are applied in materialize (#8790) by @dpeng8170.15.5 by @elementl-devtools</details>
Reverted sensor threadpool changes from 0.15.3 to address daemon stability issues.
https://github.com/dagster-io/dagster/compare/0.15.3...0.15.4
<details><summary>See All Contributors</summary>
Automation: versioned docs for 0.15.3 by @elementl-devtoolsRevert "bump timeout for large sensor test (#8671)" by @johannkmRevert "Add a threadpool to the sensor daemon (#8642)" by @johannkm0.15.4 by @elementl-devtools</details>
[dagster-databricks] Fixed an issue where an exception related to the deprecated prior_attempts_count field when using the databricks_pyspark_step_lau…
input_manager_key argument to AssetIn and Indagster.yaml that enables the automatic removal of sensor/schedule ticks after a certain number of days.dagster.yaml that enables sensor evaluations to happen in a thread pool to increase throughput.materialize_to_memory and materialize now both have the partition_key argument.Output and DynamicOutput objects now work with deep equality checks:Output(value=5, name="foo") == Output(value=5, name="foo") # evaluates to True
RunRequest can now be returned from run status sensorsresource_defs argument to AssetsDefinition.from_graph. Allows for specifying resources required by constituent ops directly on the asset.dbt-core installed. dbt-core is now also added as a dependency to the library.0.15.1 that caused Dagit to interpret datetime strings as datetime objects and octal strings as integers.prior_attempts_count field when using the databricks_pyspark_step_launcher.databricks_pyspark_step_launcher is now emitted at the DEBUG level instead of INFO.fs_io_manager (or other similar io managers).--log-format json flag. In some cases, this may cause dbt to report incorrect or misleading error messages. As a workaround, it is now possible to disable this behavior by setting the json_log_format configuration option on the dbt_cli_resource to False.materialize_to_memory erroneously allowed non-in-memory io managers to be used. Now, providing io managers to materialize_to_memory will result in an error, and mem_io_manager will be provided to all io manager keys.https://github.com/dagster-io/dagster/compare/0.15.2...0.15.3
<details><summary>See All Contributors</summary>
</details>
Fixed an issue where asset dependency resolution would break when two assets in the same group had the same name
https://github.com/dagster-io/dagster/compare/0.15.1...0.15.2
<details><summary>See All Contributors</summary>
Automation: versioned docs for 0.15.1 by @elementl-devtoolsfix asset dep resolution bug when two assets in group have same name (#8609) by @sryza0.15.2 by @elementl-devtools</details>
Updated deprecation warnings to clarify that the deprecated metadata APIs will be removed in 0.16.0, not 0.15.0.
AssetsDefinition.from_graph() now accepts a group_name parameter. All assets created by from_graph are assigned to this group.AssetsDefinition.from_op. Dagster will infer asset inputs and outputs from the ins/outs defined on the @op in the same way as @graphs.default_executor_def argument. The default executor definition will be used for all op/asset jobs that don’t explicitly define their own executor.JobDefinition.run_request_for_partition now accepts a tags argument (Thanks @jburnich!)@multi_asset now accepts a resource_defs argument. The provided resources can be either used on the context, or satisfy the io manager requirements of the outs on the asset.define_asset_job and to_job now can now accept a partitions_def argument and a config argument at the same time, as long as the value for the config argument is a hardcoded config dictionary (not a PartitionedConfig or ConfigMapping)k8s_job_executor and docker_executor would sometimes return the same event lines twice in the command-line output for the step.@op decorator (Thanks Milos Tomic!)UnresolvedAssetJobDefinition now supports the run_request_for_partition method.AssetOut and AssetInhttps://github.com/dagster-io/dagster/compare/0.15.0...0.15.1
<details><summary>See All Contributors</summary>
[docs] - Asset grouping [CON-295] (#8375) by @erinkcochran87Run retries docs (#8367) by @johannkm[dagit] Update the linking between asset groups + jobs (#8377) by @bengotow[docs] - New Jobs & Graphs structure [CON-289] (#8035) by @erinkcochran87remove old asset lineage from docs (#8382) by @sryzafix docs lint (#8387) by @gibsondanPatch op definition resolution for assets in GQL (#8384) by @smackeseyRemove broken/unused examples from dbt guide (#8383) by @erinkcochran87chore(graphql): remove description linter (#8376) by @rexledesmaMake asset invocation error if resources conflict (#8390) by @dpeng817materialize_in_process -> materialize_to_memory (#8391) by @dpeng817apidoc for AssetOut and AssetIn (#8388) by @sryzaFix problems from "remove old asset lineage from docs (#8382)" (#8389) by @sryzaChangelog 0.15.0 (#8395) by @clairelin135[docs] - Update config docs with assets (#8370) by @smackesey[dagit] Fix launch parameters when an asset is partitioned and a graph (#8393) by @bengotowAutomation: versioned docs for 0.15.0 by @elementl-devtoolsMigration guide 0.15.0 (#8392) by @smackeseyfix type error (#8379) by @salazarmadd tags in run_request_for_partition (#8344) by @jburnichAdd example asset groups (#8371) by @clairelin135[docs] - Update types to contain assets (#8341) by @clairelin135[dagit] Change compute log op when selecting in Gantt (#8397) by @hellendagdocs: default to master version when vercel env is not prod (#8396) by @yuhandocs: when gh discussion dont use Link and open in a new tab (#8402) by @yuhanAdd redirect (#8412) by @erinkcochran87[ui] Add optional joined prop for buttons (#7491) by @benpankowFix deserialization of RunsFilter (#8415) by @johannkmdocs: fix slack hooks example (#8403) by @rexledesmaHandle errors with an empty stack trace in dagit error viewer (#8427) by @gibsondan[dagster-io/ui] Move ConfigEditor to ui (#8413) by @hellendag[dagster-io/ui] Release v1.0.5 (#8433) by @hellendag[ui] Ensure JoinedButtons works with nested Buttons (#8419) by @benpankowbump target deprecation versions (#8386) by @sryza[docs] - Add SDA upgrade guide to sidenav (#8437) by @erinkcochran87swap string run config parser from JSON to YAML (#8436) by @gibsondan[dagit] Send YAML insead of parsed JSON (#8443) by @hellendagfix some grammar (#8435) by @prhaadd types-proto pin (#8447) by @gibsondan[docs] - Clarify the relationship between ops and assets on op concept page (#8409) by @sryza[dagit] Repair loading state on Instance Overview (#8450) by @hellendagfix typo (#8451) by @clairelin135Update runtime type checks in resource definition invocation (#8432) by @gibsondanremove dagster io repo mention (#8459) by @yuhanUpdate docs/content/concepts/configuration/configured.mdx (#8464) by @wenhoujxfix(dagster/decorators): op_decorator documentation update (#8179) by @mict0[dagit] “Canvas” dots on the DAGs 🎨 (#8455) by @bengotow[dbt-python-assets] demo repository (#8460) by @OwenKephart[dagit] Fix UI issues around graph backed assets (#8458) by @bengotow[dagit] Repair empty config case in Launchpad (#8483) by @hellendag[dagster-io/ui] MaybeTooltip (#8445) by @hellendagadd backfills for jobs (#8496) by @prhafix lint error in types concepts page (#8495) by @sryzapost-0.15.0 docs fixups (#8470) by @sryza[hopefully easy] annotations of resource_defs become mapping (#8501) by @dpeng817remove unsupported python version for python dbt example (#8503) by @sryzaAccept a group_name in AssetsDefinition.from_graph() (#8406) by @shalabhcClarify points in direct operation section (#8497) by @erinkcochran87[dagit] Remove code for a disabled layout feature (#8478) by @bengotow[dagit] Loosen the state machine expectations around run steps (#8480) by @bengotowAdd constant for default io manager key (#8506) by @dpeng817annotations of logger_defs become mapping (#8502) by @dpeng817[dagit] Add timezone and 24h format to humanCronString (#8520) by @hellendagFix module structure on deploying docs examples (#8511) by @dpeng817Make default_executor_def on repo work on jobs (#8490) by @dpeng817refactor stephandler API to support the same yield+write pattern as other executors (#8357) by @gibsondangraphql test case for a memoization job (#8442) by @gibsondan[dagit] Collapse assets in Run header if many of them (#8533) by @hellendagFallback to a placeholder event on a new event type that we don't recognize instead of raising an exception (#8542) by @gibsondansolid to op in graph error (#8539) by @sryzanew typed events for step process start/end and resource init/teardown (#8368) by @gibsondanUse status column for reading runs from sql storage (#8528) by @johannkm[ui] Add ability to supply TokenizingField with raw tokens (#8444) by @benpankowresources_init mypy (#8536) by @dpeng817fix executor test (#8566) by @gibsondanAssetsDefinition.from_op (#8508) by @clairelin135Add resource_defs arg to multi_assets (#8529) by @dpeng817Add run_request_for_partition to UnresolvedAssetJobDefinition (#8441) by @smackesey[docs] - Update screenshots in tutorials (#8494) by @erinkcochran87group-based asset dependency resolution (#8517) by @sryzaenable setting partitions_def and config at the same time (#8581) by @sryzachangelog for 0.15.1 (#8582) by @sryza0.15.1 by @elementl-devtools</details>
Previously, this behavior was opt-in. In most cases, this will not be a breaking change, but in less common cases where a user code deployment was run…
from dagster import asset
@asset(config_schema={"iterations": int})
def my_asset(context):
for i in range(context.op_config["iterations"]):
...
AssetsDefinition.from_graph:@graph(out={"asset_one": GraphOut(), "asset_two": GraphOut()})
def my_graph(input_asset):
...
graph_asset = AssetsDefinition.from_graph(my_graph)
execute_in_process and GraphDefinition.to_job now both accept an input_values argument, so you can pass arbitrary Python objects to the root inputs of your graphs and jobs.from dagster import Output, op
@op
def my_op() -> Output[int]:
return Output(5, metadata={"a": "b"})
This release marks the official transition of software-defined assets from experimental to stable. We made some final changes to incorporate feedback and make the APIs as consistent as possible:
fs_asset_io_manager in favor of merging its functionality with fs_io_manager. fs_io_manager is now the default IO manager for asset jobs, and will store asset outputs in a directory named with the asset key. Similarly, removed adls2_pickle_asset_io_manager, gcs_pickle_asset_io_manager , and s3_pickle_asset_io_manager. Instead, adls2_pickle_io_manager, gcs_pickle_io_manager, and s3_pickle_io_manager now support software-defined assets.@asset decorator and AssetIn has been deprecated. Users should use key_prefix instead.define_assets_job (replacing AssetGroup.build_job), and arbitrary sets of assets can be materialized using the standalone function materialize (replacing AssetGroup.materialize).outs property of the previously-experimental @multi_asset decorator now prefers a dictionary whose values are AssetOut objects instead of a dictionary whose values are Out objects. The latter still works, but is deprecated.OpExecutionContext called output_asset_partition_key is now deprecated in favor of asset_partition_key_for_outputget_event_records method on DagsterInstance now requires a non-None argument event_records_filter. Passing a None value for the event_records_filter argument will now raise an exception where previously it generated a deprecation warning.events_for_asset_key and get_asset_events, which have been deprecated since 0.12.0.dbt_assets = load_assets_from_dbt_project(..., node_info_to_asset_key=lambda node_info: AssetKey(node_info["name"]).prior_attempts_count parameter is now removed from step-launching APIs. This parameter was not being used, as the information it held was stored elsewhere in all cases. It can safely be removed from invocations without changing behavior.FileCache class has been removed.A new define_asset_job function allows you to define a selection of assets that should be executed together. The selection can be a simple string, or an AssetSelection object. This selection will be resolved into a set of assets once placed on the repository.
from dagster import repository, define_asset_job, AssetSelection
string_selection_job = define_asset_job(
name="foo_job", selection="*foo"
)
object_selection_job = define_asset_job(
name="bar_job", selection=AssetSelection.groups("some_group")
)
@repository
def my_repo():
return [
*my_list_of_assets,
string_selection_job,
object_selection_job,
]
[dagster-dbt] Assets loaded with load_assets_from_dbt_project and load_assets_from_dbt_manifest will now be sorted into groups based on the subdirectory of the project that each model resides in.
@asset and @multi_asset are no longer considered experimental.
Adds new utility methods load_assets_from_modules, assets_from_current_module, assets_from_package_module, and assets_from_package_name to fetch and return a list of assets from within the specified python modules.
Resources and io managers can now be provided directly on assets and source assets.
from dagster import asset, SourceAsset, resource, io_manager
@resource
def foo_resource():
pass
@asset(resource_defs={"foo": foo_resource})
def the_resource(context):
foo = context.resources.foo
@io_manager
def the_manager():
...
@asset(io_manager_def=the_manager)
def the_asset():
...
Note that assets provided to a job must not have conflicting resource for the same key. For a given job, all resource definitions must match by reference equality for a given key.
A materialize_to_memory method which will load the materializations of a provided list of assets into memory:
from dagster import asset, materialize_to_memory
@asset
def the_asset():
return 5
result = materialize_to_memory([the_asset])
output = result.output_for_node("the_asset")
A with_resources method, which allows resources to be added to multiple assets / source assets at once:
from dagster import asset, with_resources, resource
@asset(required_resource_keys={"foo"})
def requires_foo(context):
...
@asset(required_resource_keys={"foo"})
def also_requires_foo(context):
...
@resource
def foo_resource():
...
requires_foo, also_requires_foo = with_resources(
[requires_foo, also_requires_foo],
{"foo": foo_resource},
)
You can now include asset definitions directly on repositories. A default_executor_def property has been added to the repository, which will be used on any materializations of assets provided directly to the repository.
from dagster import asset, repository, multiprocess_executor
@asset
def my_asset():
...
@repository(default_executor_def=multiprocess_executor)
def repo():
return [my_asset]
The run_storage, event_log_storage, and schedule_storage configuration sections of the dagster.yaml can now be replaced by a unified storage configuration section. This should avoid duplicate configuration blocks with your dagster.yaml. For example, instead of:
# dagster.yaml
run_storage:
module: dagster_postgres.run_storage
class: PostgresRunStorage
config:
postgres_url: { PG_DB_CONN_STRING }
event_log_storage:
module: dagster_postgres.event_log
class: PostgresEventLogStorage
config:
postgres_url: { PG_DB_CONN_STRING }
schedule_storage:
module: dagster_postgres.schedule_storage
class: PostgresScheduleStorage
config:
postgres_url: { PG_DB_CONN_STRING }
You can now write:
storage:
postgres:
postgres_url: { PG_DB_CONN_STRING }
All assets where a group_name is not provided are now part of a group called default.
The group_name parameter value for @asset is now restricted to only allow letters, numbers and underscore.
You can now set policies to automatically retry Job runs. This is analogous to op-level retries, except at the job level. By default the retries pick up from failure, meaning only failed ops and their dependents are executed.
[dagit] The new repository-grouped left navigation is fully launched, and is no longer behind a feature flag.
[dagit] The left navigation can now be collapsed even when the viewport window is wide. Previously, the navigation was collapsible only for small viewports, but kept in a fixed, visible state for wide viewports. This visible/collapsed state for wide viewports is now tracked in localStorage, so your preference will persist across sessions.
[dagit] Queued runs can now be terminated from the Run page.
[dagit] The log filter on a Run page now shows counts for each filter type, and the filters have higher contrast and a switch to indicate when they are on or off.
[dagit] The partitions and backfill pages have been redesigned to focus on easily viewing the last run state by partition. These redesigned pages were previously gated behind a feature flag — they are now loaded by default.
[dagster-k8s] Overriding labels in the K8sRunLauncher will now apply to both the Kubernetes job and the Kubernetes pod created for each run, instead of just the Kubernetes pod.
docker_executor to run each step of a job in a different Docker container.https://github.com/dagster-io/dagster/compare/0.14.0...0.15.0
<details><summary>See All Contributors</summary>
add fallback error state for snapshot types (#6671) by @prhaGetting Started and Basic Tutorial fixes (#6673) by @jmsandersrun timeline blank state (#6674) by @prha[multiproc] default to spawn (#6676) by @alangenfeldAsset Observations Doc (#6630) by @clairelin135Restore missing repo.py file (#6677) by @gibsondan[dagster-aws] Fix bug when logging records from pyspark_step_launcher (#6680) by @OwenKephartAutomation: versioned docs for 0.14.0 by @elementl-devtoolsChangelog (#6667) by @clairelin135Fix formatting on schedules feature in changelog (#6686) by @gibsondanPin grpcio-health-checking (#6685) by @johannkmfix changelog page in docs (#6694) by @yuhanredirect ecs page (#6695) by @yuhanRemove crons from our example dockerfiles (#6645) by @gibsondanpin markupsafe (#6713) by @alangenfeldadd cursor label to tick timeline (#6712) by @prhawhitelist_for_serdes WorkerStatus enum (#6716) by @johannkmdocstrings for AssetGroup and AssetGroup.build_job (#6696) by @dpeng8170.14.1 changelog (#6720) by @alangenfeldRemove bad invariant from back when sensor status was a fixed status, not a default status (#6711) by @gibsondanAutomation: versioned docs for 0.14.1 by @elementl-devtoolsAdd a check in run execution that the run actually exists, just like in step execution (#6689) by @gibsondanadd back mutation tests for sensor/schedules with default status (#6721) by @prhaExport build_reconstructable_target to match cragified docs (#6317) by @prhaadd build_run_status_sensor_context (#6543) by @jamiedemariaRename metadata (remove "Event") in graphql/dagit (#6656) by @smackeseySpeed up get_assets_for_run_id when there are a lot of events (#6735) by @gibsondanundefined (#6742) by @alangenfeldFix invariant check in databricks job/pipeline path (#6718) by @iswariyammake Content Gap an issue label instead of part of title (#6745) by @sryza0.14.0 migration.md (#6715) by @clairelin135Move bollinger example to AssetGroup and add README (#6749) by @sryzamove software-defined assets toy to asset collection (#6643) by @sryzarename conditional branching example to nyt and add README (#6757) by @sryza[docs infra] remove old versions from versioned_navigation (#6704) by @yuhanfix typo in ops rst (#6758) by @yuhanupdate error messages for ExternalAssetDependency/ExternalAssetDependedBy (#6748) by @OwenKephart[Docs] Upgrade Next.js to 12.1.0 (#6722) by @keyz[docs infra] fix changelog's On This Page (#6706) by @yuhanfix(helm): remove registry field (#6744) by @rexledesmadocs(helm): update chart metadata (#6778) by @rexledesmarespect default_value in loadable input check (#6771) by @alangenfelddisplay non-sda assets in asset catalog (#6779) by @prhareplace EventMetadata in docs (#6774) by @smackeseyMigrate user event docs to use log_event, various docs cleanups (#6772) by @dpeng817[dagster-dbt] fix issues with dbt asset integration (#6777) by @OwenKephartFilter custom events from stats_for_run query (#6781) by @johannkm[Dagit] Fix missing op name in the asset sidebar (#6765) by @bengotowadd validate_run_config to api docs (#6782) by @prhaadd api doc for op_def, graph_def (#6776) by @prha[examples] dbt -> dbt-core in dbt_example (#6786) by @OwenKephart[dagit] Show full asset paths on details pages, tweak filter interactions (#6764) by @bengotowAdd small toggles to Asset Details graphs, consolidate localStorage-backed state (#6762) by @bengotow[dagster-shell] Fix deadlock with large output (#6435) (#6490) by @kbd[dagster-dbt] pin some stuff (#6791) by @OwenKephartdeflake test_retry_policy (#6644) by @alangenfeld0.14.2 changelog (#6789) by @sryzaadd run_request_for_partition for job definition (#6790) by @prhaAdd a "log framework error" hook to execute_step invocations, similar to the one in execute_run (#6690) by @gibsondanfix up reexecution api example docs (#6787) by @prhareorganize dagster.check module (#6750) by @smackeseyAdjustments/condensing of dagster.check (#6751) by @smackeseyAutomation: versioned docs for 0.14.2 by @elementl-devtoolsfix: use run status to determine success for an in-process result (#6784) by @rexledesmanamedtuple to NamedTuple (1st batch) (#6752) by @smackeseycorrected export message from "~/dagster_home" to ~"/dagster_home" (#6327) by @Proteusiqdocs: remove duplicate entries under integrations (#6724) by @kahnwongnamedtuple to NamedTuple (2nd batch) (#6753) by @smackeseynamedtuple to NamedTuple (3rd batch) (#6767) by @smackeseynamedtuple to NamedTuple (4th batch) (#6785) by @smackesey[docs infra] speed up vercel build with ISR (#6773) by @yuhan[docs infra] no s3 when pulling versioned content (#6705) by @yuhanStill write cursors even when a sensor tick fails (#6807) by @gibsondanDirect invocation of assets for unit testing (#6761) by @jamiedemariaPartition docs updates (#6814) by @jamiedemariafix pandera link on integrations page (#6813) by @smackesey[docs] regenerate yarn.lock (#6815) by @alangenfeld[events] remove message field (#6769) by @alangenfeld[dagster-postgres] improve connection retry (#6831) by @alangenfeldset ErrorSource when retry request limit exceeded (#6806) by @alangenfeldUpdate black, isort (#6714) by @smackeseyExclude materializing run from materialization warning run count (#6692) by @clairelin135rename PipelineRunsFilter => RunsFilter (#6811) by @prhaassorted function type annotations (batch 1) (#6800) by @smackeseyrestore old metadata name deprecation warnings (#6688) by @smackeseyAlso override cpu/memory in containerOverrides (#6836) by @jmsandersmove toys from build_assets_job to AssetGroup (#6801) by @sryzaSimplify IWorkspace API (#6821) by @gibsondan[dagster-aws] Add secretsmanager resources (#6802) by @benpankowchore(daemon): retrieve daemon heartbeats in batch (#6843) by @rexledesmaRevert isort Makefile config to use git ls-files (#6845) by @smackeseyfix: query heartbeats db once (#6854) by @rexledesma[examples] Modern Data Stack + SDA Example (#6862) by @OwenKephartadd table api doc page (#6840) by @smackesey[dagit] Avoid copying definition-time tags into launchpad state (#6851) by @bengotow[dagit] Replace black tag tooltips with as-needed, selectable ones (#6844) by @bengotowdefault to fs_asset_io_manager in AssetGroup (#6859) by @sryzamove slack apidoc example to op/job (#6855) by @sryzaRemove @abstractproperty (#6867) by @johannkmgate bucketing queries on sqlalchemy version (#6841) by @prhaDon't carry forward all container definitions (#6850) by @jmsanderswhen multiple repos have the same asset, have graphql return the non-source one (#6856) by @sryza[dagit] Add a helper for building instance/runs paths, resolved #6847 (#6848) by @bengotow[dagster-fivetranAdd Fivetran Resync Op (#6868) by @dwallace0723[dagit] Use a custom hook to manage query polling (#6805) by @bengotowenable cross-job asset partitions (#6865) by @sryza[dagit] Add a gradient behind the Gantt chart step selector now by @souterjkremove gitignore setting from isort (#6872) by @smackeseyRandom formatting fixes (#6888) by @dpeng817AssetGroup.from_modules (#6884) by @sryzaisort dagster-aws conftest (#6892) by @sryzafix expansion so its shell-neutral (#6894) by @smackeseybuild_assets_job -> AssetGroup in SDA guide (#6879) by @sryzaChangelog (#6908) by @dpeng817add entries to 0.14.3 changelog (#6909) by @sryzaRename build_run_status_sensor_context in changelog (#6904) by @gibsondanmake EventLogEntry.message change safe to downgrade (#6912) by @alangenfeldFor those whome detest wordwrap in vscode (#6887) by @dpeng817Solid error message migration (#6883) by @dpeng817Error when amultiple asset groups are used in one repo, when a job is passed in with the asset group reserved name (#6891) by @dpeng817assorted sensor and schedule fixes (#6759) by @jamiedemaria[examples] For modern_data_stack_assets, more detailed README, helper script (#6914) by @OwenKephartfix bug with subset selection (#6921) by @OwenKephartenable vixie-style cron strings (#6810) by @prhaAutomation: versioned docs for 0.14.3 by @elementl-devtoolsIn run status sensors, snapshot the status in a PipelineRunReaction rather than pulling it from the PipelineRun object (#6931) by @gibsondan[dagster-airbyte][examples] fix bug with empty prefix (#6932) by @OwenKephartRFC: resolve k8s job and ops tag entirely using k8s_model_from_dict (#6205) by @gibsondanrevert stray dagster[lint] for BK mypy (#6936) by @smackeseyMigrate reference to solid in error message (#6935) by @dpeng817dagit-debug fix in-mem daemon heartbeats (#6943) by @alangenfeld[docs] details on mapping dynamic outputs (#6140) by @alangenfeld[docs] op retries concepts section (#6818) by @alangenfeldfix makefile issue with check_black/check_isort (#6944) by @smackeseychange query to be compatible with sqlalchemy 1.3 (#6930) by @prhaadd a blank state message for the asset table (#6792) by @prhafix black by @alangenfeldRemove update_doc_snapshot from root Makefile (#6837) by @smackeseynamedtuple to NamedTuple (5th batch) (#6917) by @smackeseyfunction type annotations (batch 2) (#6933) by @smackeseywhen building AssetGroups from modules, gather lists of assets (#6967) by @sryzaremove legacy version of hacker news schedule (#6797) by @sryzaungate run batching (#6966) by @prhaUse AssetGroup in hacker news demo (#6965) by @sryzaAssetGroup.from_current_module (#6959) by @sryza[Dagit] Nits and polish based on user feedback (#6799) by @bengotowadd support for filtering ticks by status (#6919) by @prha[dagit] Only warn about the backfill daemon when backfills are present (#6846) by @bengotowswitch arg name for metadata value class (#6675) by @smackesey[dagit] Use a virtualized list in <SuggestWIP /> to fix launchpad partition picker perf (#6852) by @bengotowFix missing partition bars in large partition data-sets (#6877) by @souterjkQuote selection to avoid grabbing downstreams with the same name prefix when viewing upstream graph, fix react table unhappy log (#6907) by @souterjkmake all optional params explicit (#6934) by @smackeseyAdds pez popover as requested in #6470 (#6871) by @souterjkfix pylint for modern data stack example (#6975) by @smackeseydev_install tweaks (#6970) by @smackeseypartitioned assets toy (#6960) by @sryzaUpdate create-new-project.mdx (#6898) by @frcodeAdd short-circuit in run start time if run failed to start (#6991) by @gibsondanAllow PathMetadataValue to accept os.PathLike input (#6920) by @abkfenrisRaise run_task errors (#6993) by @jmsanders[dagit] React.FunctionComponent -> React.FC (#7002) by @hellendagFix partitioned asset jobs with double downstream non-partitioned (#6986) by @sryzaadd ipython_genutils as dagit, dagstermill dep (#7016) by @smackeseySet up graphql mutation for setting a sensor cursor value (#6922) by @prha[dagit] Fix warning icon tests, add one for present-but-stopped schedule (#7026) by @bengotowStop building duplicate downstream asset dependencies (#7001) (#7012) by @bengotow[dagit] Add error handling to Asset "Rematerialize Partitions" modal (#7011) by @bengotow[dagit] Fix tooltips in Gantt chart, use monospace font and middle truncation (#7025) by @bengotow[dagit] Fix right Asset Graph panel missing if saved "explorer" state is absent (#7013) by @bengotowFix dagster k8s typo (#7028) by @johannkmAdd sequence and mapping check functions (#7006) by @smackeseychange backcompat pin to nbconvert (#7027) by @smackesey[dagit] Hide the asset group job on the instance overview (#7019) by @bengotow[dagit] When materializing assets, link to run instead of showing it (#7014) by @bengotowAssorted typing additions and adjustments (#7007) by @smackeseyremove unneeded deps from dagit tox file (#7022) by @gibsondanSwitch sensor/schedule view to show tick list instead of run list (#6861) by @prhaupdate AssetGraph dedup logic (#7021) by @smackeseyMake parse_run_config_input more defensive (#7003) by @gibsondanExpose metadata on AssetNode (and source assets) directly (#6900) by @smackeseyadds source asset metadata to dagit (#7015) by @smackeseyAdllow telemetry URL to be overridden with env var (#6946) by @dpeng817Remove space from dbt example notebook path (#7038) by @smackeseyadd tick batching to schedule storage (#6995) by @prhaadd batch tick loader for repository-scoped schedule/sensor ticks (#6997) by @prhaK8s executor filter down to dagster events (#7000) by @johannkmAllow the use of environment variables in k8s_job_executor (#7031) by @johannkm[bug] hacky fix for step launcher behavior (#6866) by @OwenKephartmake resource config available when loading from assets outside job (#7029) by @sryzaRename step jobs 'dagster-step' in k8s and docker (#6982) by @johannkmminor improvements to check (#7036) by @smackeseytest raising exceptions in AssetGroup in deterministic order (#6945) by @jamiedemariaSDA docs fixes (#6905) by @jamiedemariaskip test_giant_external_repository_streaming_grpc (#7049) by @alangenfeldFault tolerance docs (#5432) by @johannkmSilence experimental warnings triggered by internal code (#6873) by @jamiedemariaK8s docs ignore tag and show executor (#7053) by @johannkmAssorted fixes to the hackernews assets demo (#7030) by @sryzaSupport the same Secrets config syntax as ECS (#6985) by @jmsandersfix the sqlite gating logic (#7058) by @prha[dagster-airbyte] [dagster-fivetran] cleanup + tests (#7056) by @OwenKephartReuse ECS task definitions (#7009) by @jmsandersUpdate last_materialization_timestamp to also update on observation (#6885) by @clairelin135Optimize Latest Runs Query (#7066) by @clairelin135[dagit] Remove default InstanceWarning mocks injecting randomness (#7054) by @bengotowfix tag batching with tag-based filters (#7055) by @prhaFix #6512 (#6969) by @petehuntK8s check run health test (#7070) by @johannkmhn local repo that uses duckdb as warehouse (#6968) by @sryzafix bug in fetch_assets.get_asset_nodes_by_asset_key (#7063) by @sryzaClear out 'dependsOn' when creating a default ECS task definition (#6929) by @gibsondan[dagit] Render status page navigation when factory floor loading (#7079) by @benpankowrun mypy on dagster-graphql (#7075) by @prhafix logic for turning schedule ticks into hour boundaries when there's an offset (#7071) by @gibsondanFixes #7082 (#7086) by @smackeseyFix failing check.path test on windows (#7077) by @smackesey[dagit] refactor graphql execute methods (#7065) by @alangenfelddagster-snowflake drop 3.6 support (#7092) by @alangenfeld[dagit] Fix Gantt chart layout hang on certain graph structures #6942 (#7085) by @bengotowLog failed compute log to event log rather than buried in a logging output (#7093) by @gibsondan[dagit] Disallow use of gql from graphql.macro (#7042) by @bengotow[dagit] Add sensors/schedules to the asset details page (#7041) by @bengotow[dagit] Keep user-entered tags when changing presets / partitions (#7068) by @bengotowAdd gitpod.yml (#7088) by @petehunt[dagit] Lower factory floor timeline fidelity to seconds from ms (#7091) by @benpankow[dagit] Show job failures on asset graph, fix in-progress runs on global graph (#7067) by @bengotowOptionally use sidecars (#7087) by @jmsandersFix kwarg case with invocation (#7095) by @dpeng817Return an empty secrets list for task definitions (#7096) by @jmsandersFixup ECS secrets docs (#7097) by @jmsanders0.14.4 changelog (#7099) by @yuhanrefetch the backfill before updating, to avoid clobbering cancels (#7094) by @prhaAutomation: versioned docs for 0.14.4 by @elementl-devtoolsfix perms in dagit (#7115) by @prhaRemove hard failure if missing inputs (#7116) by @dpeng817Fix internal code metadata warnings (#7112) by @smackesey0.14.5 Changelog (#7119) by @jmsandersAutomation: versioned docs for 0.14.5 by @elementl-devtoolsbatch run fetches in sensor daemon (#6950) by @prhagcs asset io manager (#7081) by @jamiedemariaDon't give up if the terminate() call raises an exception during force-termination (#7110) by @gibsondan[dagit] Add optional close button to Alert component (#7107) by @benpankowAdd dagit test to make sure Permission flags stay in sync (#7117) by @prhaexpose compute_kind tag value on gql AssetNode (#7120) by @smackeseyreplace internal uses of MetadataEntry static api (#7126) by @smackeseydynamic out bug fix (#6780) by @alangenfeldCreate oss-issues.yml (#7132) by @yuhanfix docs search: js_render shouldnt be true (#7146) by @yuhanmypy version bump (#7149) by @smackeseydocs(sda): fix typos and edit wording (#7136) by @rexledesmaadd permissions guard for schedule mutations (#7133) by @prhaenable saving run key for ticks that skip runs because of run key idempotence (#7130) by @prhaadd tick tooltip info for skipped ticks due to run key idempotence (#7131) by @prhaRename the InstanceMigratedError to be less pushy about migrating (#7141) by @gibsondan[postgres] share db engine with watcher_thread (#7143) by @alangenfeldAdd Map to config type API docs (#7154) by @gibsondanPass on PythonError handling that should be using PythonErrorFragment (#7152) by @gibsondan[oss telemetry] Get rid of telemetry version (#6760) by @dpeng817only show warning when force termination checkbox is checked (#7157) by @prharename several internal submodules (#7134) by @smackeseyRemove another cron from example dockerfile (#7155) by @gibsondanBe more willing to return serialized errors in schedule/sensor/grpc partition methods (#7164) by @gibsondandocs: fix spelling (#7166) by @antquinonez[multiprocess] tweak preload modules logic (#7142) by @alangenfeldfeat(dagster-k8s): add run id label to run/step workers (#7167) by @rexledesmadocs(logging): remove example about capturing from the root logger (#7168) by @rexledesmadocs: fix typo in job/graph concepts page (#7172) by @antquinonez[docs] fix dynamic graph examples (#7174) by @alangenfeldFix inclusion of tests in our published packages (#7169) by @smackeseyRFC: add partition tags to partitioned config (#7111) by @prhaadd gcs pickle asset manager to api docs (#7177) by @jamiedemaria[dagster-databricks] better retry support for step launchers (#7171) by @OwenKephartfix lint/mypy failures (#7183) by @prhaAutomation: versioned docs for 0.14.6 by @elementl-devtools0.14.6 changelog (#7184) by @jamiedemariaupdate docs on Dict type (#7179) by @jamiedemariadocs: use word "op" instead of "solid" (#7195) by @joe-hdairefactor: rename is_failure to is_failure_or_canceled (#7200) by @rexledesmaTime window partitions with custom minute, hour, day offsets (#7125) by @jamiedemariaFixup ECS docs (#7193) by @jmsandersUpdate version placeholder "dev" to "0+dev" (#7175) by @smackeseyfix: prevent runs filter from accepting an empty list of run ids (#7217) by @rexledesmarefactor: remove screenshots (#7225) by @rexledesmarefactor: remove scala modules (#7226) by @rexledesmaget MetadataValue.dagster_run to show up in apidoc (#7231) by @sryzaAzure asset IO Manager (#7201) by @jamiedemariaPartitionedConfig testing helpers (#7216) by @jamiedemaria[postgres] dont dispose engine in watch thread (#7241) by @alangenfeldfeat(helm): add configuration for Dagster telemetry (#7190) by @rexledesmaadd some type annotations for code loading (#7244) by @sryzafeat: add alert failure event (#7238) by @rexledesma[dagit] Remove the Asset Node context menu (#7151) by @bengotowOnly consider repos defining the asset with a corresponding op for multiple repo notice (#7186) by @bengotow[dagit] Fix Gantt chart layout hang on certain graphs, round 2 #6942 (#7188) by @bengotow[dagit] If re-executing from failure fails, default to from failure again #5019 (#7189) by @bengotow[dagit] Ignore source assets for “Materialize All” button (#7196) by @bengotow[dagit] Load “Launch Asset partitions” modal when it’s opened + every time (#7207) by @bengotow[dagit] Explicitly add the dagster/step_selection tag to asset runs (#7213) by @bengotowRemove redundant k8s launcher event (#7250) by @johannkmAllow asset observations in IO Managers (#6653) by @clairelin135update docs for adls2 asset io manager (#7252) by @jamiedemaria0.14.7 changelog (#7256) by @OwenKephartUpdate CHANGES.md by @prhaAutomation: versioned docs for 0.14.7 by @elementl-devtoolsfix typecheck for In.dagster_type (#7242) by @smackesey[dagit] RunTimeline: Fix overlap with ongoing run (#7245) by @hellendag[dagster-io/ui] Remove WIP suffixes (#7229) by @hellendag[dagit] Modify "Open in Launchpad" from Run (#7263) by @hellendagRFC: Add register_run_asset event (#7098) by @clairelin135Add table to keep track of schedule data migrations 1/5 (#7182) by @prhaadd schema for instigators table, keyed by selector 2/5 (#7185) by @prhadouble-write selector_id to ticks, jobs, instigators 3/5 (#7191) by @prhaadd tick selector index migration (#7198) by @prhaRead instigator state / ticks off of selector_id instead of origin id 5/5 (#7268) by @prha[dagster-io/ui] Declaration files for TS, Rollup for built JS (#7220) by @hellendagEnsure telemetry logging dir is created before using logger (#7192) by @dpeng817cross-repo assets toy (#7210) by @sryzaupdate apidoc for non_argument_deps (#7271) by @clairelin135enable loaded_input metadata entries to display in Dagit (#7255) by @clairelin135[@dagster-io/ui] Cleanup for publish (#7270) by @hellendagRemove empty k8s_job_task file (#7286) by @johannkmAdd MenuLink shim for internal compatibility (#7297) by @hellendagAvoid mentioning pipelines in Dagit empty state (#7288) by @sryzafix invariant in batch tick loader (#7280) by @prha[dagster-airbyte] fix airbyte materializations without streamStats (#7281) by @OwenKephartpoint top-level workspace to latest toys (#6876) by @sryza[dagster-io/ui] Eliminate RR dependency (#7285) by @hellendagfix selector injection for k8s-celery test (#7307) by @prharemove experimental warning for mysql storage (#7290) by @prhamake some edits to changelog (#7264) by @prha[@dagster-io/ui] Clean up deps (#7302) by @hellendag[dagit] Fix config refresh when reloading repo (#7325) by @hellendag[@dagster-io/ui] Prepare for 1.0.3 (#7326) by @hellendagAdd run_id as execute_in_process arg (#7317) by @dpeng817Fixes to root input manager memoization and no context provided (#7316) by @dpeng817add apple m1 instructions to contributor guide (#7279) by @jamiedemariaFix celery docker executor failing on None metadata (#7330) by @jamiedemariareplace old celery docs site (#7331) by @jamiedemaria[dagster-dbt] fix issue w/ conflicting dbt op names for assets (#7311) by @OwenKephartdocs infra: remove github/slack bot from docs site (#7315) by @yuhan[dagit] Fix CodeMirror show-hint error (#7334) by @hellendag0.14.8 Release Notes (#7336) by @clairelin135add email icon (#7346) by @salazarm[dagit] Don't show instigation switch for assets (#7347) by @hellendag[dagit] Add "Copy config" button to "View tags and config" dialog (#7348) by @hellendag[dagit] Allow toggling repos in bulk (#7344) by @hellendag[dagit] Store whitespace state in localStorage (#7350) by @hellendag[dagit] Adjust details in Run header (#7345) by @hellendag[dagit] Add feature flag to collapse the left Jobs navigation by default (#7204) by @bengotowAutomation: versioned docs for 0.14.8 by @elementl-devtoolsupdate README - include github discussion (#7339) by @yuhan[@dagster-io/eslint-config] Create shared config (#7328) by @hellendag[@dagster-io/eslint-config] Fix dependencies (#7354) by @hellendagAdd Slack icon (#7355) by @salazarmsupport container kwargs for celery-docker (#7335) by @jamiedemaria[dagster-dbt] Add /runs method to DbtCloudResourceV2 (#7258) by @kstennettlull[dagster-dbt] add "build" to DBT_RUN_RESULTS_COMMANDS (#7362) by @OwenKephart[dagit] Show timestamps for “failed to start” runs, other metadata tweaks (#7359) by @bengotowFix contention bug in windows (#7353) by @dpeng817fix dagster-ge library (#7369) by @prhahave fs io manager record path metadata entry (#7261) by @sryzaAssetGroup.materialize_in_process (#7260) by @sryzaAdd authenticator field to conn_args (#6983) by @swotaiMake shell ops inherit env vars from outside environment (#6513) by @kbdAllow jobs to be passed in lazily to repository definitions (#7382) by @gibsondan[dagit] Make the “Latest Run” tag on the Job page auto-refresh (#7360) by @bengotow[dagit] Move data fetching for the asset graph into hooks (#7363) by @bengotowautodiscover assets at module scope (#7247) by @sryza[hacker news] pin duckdb (#7390) by @alangenfeldLet InProcessRepositoryLocationOrigin take in multiple repos (#7386) by @gibsondan[dagster-fivetran] Fix format strings (#6436) by @mgasner[dagster-airbyte] Handle 204 reponse in Airbyte Library (#7209) by @HAMZA310run materializations (#7394) by @prha[dagit] Fix default Dagit page in single repo, multiple jobs case (#7368) by @bengotowAdd grpc server timeout config to instance settings (#7387) by @gibsondaninfer resource descriptions from docstrings (#7309) by @sryza[dagit] Async layout of large asset graphs (#7366) by @bengotow[dagit] Align terminology and data structures in asset / op graph layout (#7372) by @bengotow[dagit] Move asset-graph out of workspace dir, non-graph code to /assets (#7373) by @bengotowUpdate AssetKeyTable.last_run_id upon materialization planned (#7319) by @clairelin135asset tutorial (#7269) by @sryzaAdd a field to the now-somewhat-poorly-named RepositoryPythonOrigin that can add 'deployment target' information within a repo location (#6925) by @gibsondanAdd EcsContainerContext (just with secrets for now) (#7176) by @gibsondanAdd K8sContainerContext for configuring k8s pods from the repository location (#7203) by @gibsondanFixed typo in deploying-with-helm.mdx (#7416) by @LeoHuckvale[dagit] Use react-scripts@5.0.2 (#7393) by @hellendag[dagit] Add arrow key and double click interactions to asset graph #6407 (#7374) by @bengotow[dagit] Allow colon in run tag value (#7409) by @hellendagRe-execute run instance method (#7417) by @johannkmskip adls test (#7420) by @jamiedemariaadd open launch pad to run details page (#7304) by @salazarmFix prerequisite typos in docs (#7424) by @johannkm[@dagster-io/eslint-config] Enable object-shorthand (#7423) by @hellendagFilter out asset_materialization_planned event logs client-side (#7397) by @clairelin135Make user repo filters per deployment (#7376) by @salazarm[postgres] urlquote usernames as well (#7430) by @alangenfeld[toys] squelch warnings (#7419) by @alangenfelddocs for gRPC sever timeout flag (#7400) by @gibsondanFix master and add DagsterEventType import (#7435) by @clairelin135avoid extra experimental warning when asset has partitions def (#7431) by @sryzaAdd option to disable max_concurrent_runs (#7327) by @johannkmRFC: Fetch Cross-Repo Asset Deps (#7259) by @clairelin135make k8s container context volumes and volume mounts use snake case, not camel case (#7437) by @gibsondanmove expensive tests out of core_tests (#7436) by @gibsondanallow AssetGroups to have assets with different partitions defs (#7388) by @sryzaUpdate key for saving data in useExecutionSessionStorage (#7333) by @salazarmasset partitioned io manager (#7413) by @sryzaUnbreak stopping unloadable schedules/sensors (#7446) by @gibsondan[dagit] Check for asset group job prefix to support multiple groups per repo (#7418) by @bengotowchangelog for 0.14.9 (#7450) by @sryzaupdate isort comment formatting (#7448) by @smackeseybump black to 22.3.0 (#7449) by @smackeseyAutomation: versioned docs for 0.14.9 by @elementl-devtoolsTypo in the create a new project doc (#7441) by @ascrookesFix issue with blank telemetry instance id file (#7433) by @dpeng817Show repo selector in unloadable schedules/sensors instead of repo location metadata (#7444) by @gibsondanSplit up screenshot specs (#7460) by @sryzaresource dependencies for root input managers (#7459) by @sryzaavoid framework code triggering metadata_entries warning (#7412) by @sryzaallow combining memoization with step selection (#6431) by @sryzarefactor: remove local storage file that was committed (#7440) by @rexledesma[dagster-graphql] remove gevent (#7402) by @alangenfeld[dagit] Apply middle truncation to long asset nodes, hide run info (#7187) by @bengotow[dagit] Use CodeMirror for all config displays (#7467) by @hellendagAdd container_context to gRPC server and Helm chart (#7236) by @gibsondanAdd asset metadata to one of the dagster_test asset groups (#7462) by @bengotowFix back-compat for new helm chart param for container context (#7476) by @gibsondan[graph] use the correct input definition for type checks (#7453) by @alangenfeld[dagit] Repair async graph layout for path-prefix (#7480) by @hellendagAdd docs to k8s docs about includeConfigInLaunchedRuns (#7477) by @gibsondanAcquire leases when using ADLS (#7410) by @jamiedemariaUpdate Materialization Warning (#7265) by @clairelin135[dagit] Fix Suggest (#7489) by @hellendagMake the scheduler/sensor daemons key the schedules that it inspects by selector ID, not origin ID (#7492) by @gibsondanAdd right of search bar prop to top nav (#7500) by @salazarmadd flag argument to backfill all partitions in launch backfill graphql mutation (#7499) by @prha[dagit] Fix job header “View assets” link, add missing graphQL types (#7493) by @bengotowfix sqlite gating logic for batch tick queries (#7505) by @prha[dagster-census] Census Integration Library (#7249) by @dehume[dagit] Show a better error on invalid run filters (#7494) by @hellendagAdd log message to grpc health check (#7506) by @johannkmrefactor: remove duplicate solids in event log test (#7511) by @johannkmcorrect workspaces icon (#7504) by @salazarm[dagit] More cleanup of query callsites performing background polling (#7508) by @bengotow[dagit] Avoid resetting hidden repos on each page load #7519 (#7520) by @bengotow[dagit] Allow disabling keyboard shortcuts (#7515) by @hellendagUpdate pylint and associated config (#6517) by @smackesey0.14.10 Changelog (#7521) by @johannkmfix asset partitions runtime check (#7525) by @smackesey[dagit] Tiny fix for “asset graph search, dropdown stops showing when ">" character is used” (#7514) by @bengotow[dagit] Move yarn analyze to packages/app (#7523) by @hellendag[dagit] Clean up lodash imports (#7526) by @hellendag[dagit] Display repositories in a stable order (#7518) by @bengotowAutomation: versioned docs for 0.14.10 by @elementl-devtools[hooks] fix resource reqs in nested graphs (#7529) by @alangenfeld[instigator] dont throw in start/stop if already in desired state (#7483) by @alangenfeld[dagit] Fix InstigationTick "Skipped" message if zero runs (#7527) by @hellendagGet rid of mode in JobDefinition constructor (#7497) by @dpeng817Fix issue where we were calling the partition function n times, where n is the number of partitions returned by the function (#7539) by @gibsondan[bugfix] Check that oldData is defined before trying to migrate (#7537) by @salazarmAssorted tox updates (#6971) by @smackesey0.14.11 changelog (#7543) by @gibsondanAutomation: versioned docs for 0.14.11 by @elementl-devtools Reexecute run mutation using just parent run (#7510) by @johannkmUpdated changelog for 0.14.12 (#7545) by @gibsondanRevert "[bugfix] Check that oldData is defined before trying to migrate (#7537)" and "Update key for saving data in useExecutionSessionStorage (#7333)" (#7551) by @gibsondan[graphql] subscription handle_graphql_errors (#7482) by @alangenfeldAutomation: versioned docs for 0.14.12 by @elementl-devtools[dagit] Add bulk re-execution dialog to Runs page (#7451) by @hellendagDowngrade tox pip for Python 3.6 (#7547) by @smackeseyannotate dagster.builtins.Nothing with correct type (#7546) by @smackeseyPylint: Add encoding to open() (#7548) by @johannkmasset op tags (#7472) by @sryza[dagit] Show asset “compute kind” in the global asset graph (#7516) by @bengotow[dagit] Hide __asset_group partition sets from search bar (#7556) by @bengotowAdd typing-extensions >=3.10 as dependency. (#7555) by @smackeseyvalidate tags in partition sets (to turn dicts into strings) (#7554) by @gibsondan[dagit] Feature flag for disabling WebSocket usage (#7557) by @hellendag[dagit] Add opNames field to AssetNode (#7565) by @hellendagadd DEFAULT_PYTHON_VERSIONS env var for BK (#7553) by @smackeseyadd DEFAULT_PYTHON_VERSIONS env var for BK (#7553) by @smackesey[1/n] Interop Stack: Use AssetJobInfo at runtime instead of OutputDefinition (#7473) by @OwenKephart[2/n] Interop Stack: Use AssetJobInfo to construct ExternalAssetNodes (#7475) by @OwenKephart[dagit] Introduce sticky table headers (#7568) by @hellendag[dagit] Truncate global search result list (#7569) by @hellendagTest test_create_reexecuted_run_from_failure (#7566) by @johannkmTag behavior option for reexecute method (#7574) by @johannkmadd setuptools as dep (#7576) by @smackeseyfix errors (#7577) by @smackeseyRegister a new task definition for IAM changes (#7564) by @jmsandersImprove typing of schedule/sensor and hooks (#7560) by @smackeseyAll steps option for rexecute method (#7575) by @johannkm[docs] fix multi asset sensor example (#7583) by @alangenfeldCreate runs during event log tests (#7502) by @johannkm[dagit] Refactor ExecutionSessionStorage (#7559) by @hellendagfix(helm): support numeric type image tags (#7579) by @jrouly[dagit] Add bulk re-execution of all steps (#7591) by @hellendagResourceDefinition.none_resource instead of no_step_launcher (#7381) by @sryzaRemove unused imports from event log tests (#7592) by @johannkm[dagit] Fix asset graph navigation edge cases (#6955, #7208) (#7532) by @bengotowfullbuild in branch name for full BK build (#7595) by @smackeseydocument partitioned assets (#7466) by @sryzafix secretsmanager example doc (#7593) by @prhaAdd ConfigSchema type alias (#7596) by @smackeseylint dagster_tests (#7594) by @alangenfeldadd dialect-specific update logic (#7572) by @prhafix volumes example for docker run launcher (#7607) by @gibsondan[tests] set platform on docker build (#7603) by @alangenfeldUse explicitly set env vars rather than autoenvvar prefixes for the grpc command (#7611) by @gibsondanFixes for running the user-code-deployment helm chart in a different namespace than the system namespace (#7597) by @gibsondanstandardize additional_message kwarg in check methods (#7605) by @smackesey[3/n] Interop Stack: Remove asset key from inputs/outputs (#7550) by @OwenKephartfix(helm): allow max concurrent runs to be 0 (#7618) by @rexledesma[4/n] Interop Stack: node_def on AssetsDefinition can be graph (#7573) by @OwenKephartAsset key to node handle mapping (#7599) by @clairelin135[dagster-aws] update emr pyspark step launcher (#7604) by @OwenKephartMake dagster-user-deployments service account set up a role and role binding by default, like the main dagster chart service account (#7622) by @gibsondanAdd resources to K8sContainerContext (#7619) by @gibsondan[dagit] Add "shared key path" outlines, experimental asset graph flag (#7608) by @bengotow[@dagster-io/ui] Separate tsconfig for build (#7584) by @hellendagFixup XXXSource docs (#7629) by @gibsondanChangelog 0.14.13 (#7631) by @dpeng817AssetGroup.prefixed (#7395) by @sryzaAssetsDefinition.from_graph (#7620) by @clairelin135[Testing] Support for resolvers in ApolloTestProvider (#7612) by @salazarm[dagit] Show default value for config (#7598) by @hellendag[docker] improve test time (#7589) by @alangenfeldUpdate mypy config and bump version (#7625) by @smackesey[dagster-ge] drop 3.6 (#7638) by @alangenfeldAutomation: versioned docs for 0.14.13 by @elementl-devtoolsUnify all alembic scripts into single directory, creating single history (#7411) by @prhaenable mypy checking on dagit (#7626) by @smackesey[dagit] Add dummy graphName field to AssetNode (#7637) by @hellendag[RFC] lighter weight pull request template (#7538) by @alangenfeld[dagit] AssetView: Don't show historical view message if it's not (#7639) by @hellendagallow flexible types for SourceAsset key arg (#7633) by @sryzaadd graphql fields to quickly query partition status (#7614) by @prhaadd option to GraphQueryInput to apply changes without hitting enter (#7635) by @prhaRefactors the PartitionGraph component to be divorced from the actual graphql query (#7616) by @prhaAdds a new partition page behind a feature flag (#7617) by @prhaenable adding asset groups together (#7634) by @sryzaFix mypy config for dagster main package (#7644) by @smackeseyallow multiple asset groups on a repository (#7649) by @sryzarefactor: remove airline demo (#7653) by @rexledesmato_source_assets (#7643) by @sryzaadding a Terminate Run method for in-progress execution to the Python GraphQL client (#7443) by @Javier162380fix apidoc for fs io manager (#7671) by @sryzaFix celery docker jobs that involve writing directly to command-line output (#7665) by @gibsondanFix docs lib links (#7680) by @johannkmFix configmaps that need to be manually set when running the user deployments helm chart in a different namespace (#7660) by @gibsondanAdd all repos to hacker_news __init__.py (#7677) by @gibsondanremove primitive types from apidoc (#7674) by @sryzaAdd py.typed to dagster and all extension libs (#7561) by @smackesey[eslint-config] Bump dependencies (#7681) by @hellendag[dagster-airbyte] terminate airbyte sync w python process (#7687) by @OwenKephart[dagster-dbt] remove annoying color formatting strings from log output (#7688) by @OwenKephartPull out PostgresEventWatcher into its own module and parameterize it more (#7666) by @gibsondangraph and job apidoc fixes (#7673) by @sryzadocs: fix example for multiprocess run config (#7693) by @rexledesmafinish dagster-fivetran types (#7563) by @smackeseyfinish dagster-airbyte types (#7562) by @smackeseychore(graphql): add linter to ensure docstrings on graphene graphql objects (#7669) by @rexledesmadocs(graphql): add docstrings to mutations.py (#7691) by @rexledesmaMove EventSpecificData out of TYPE_CHECKING (#7697) by @smackeseyAdd ability to set mapping key on op/solid invocation context (#7364) by @dpeng817Make Output generic (#7202) by @dpeng817update fake adls resource to work with leases (#7587) by @jamiedemariaadd core partition status storage query (#7662) by @prhadocs: specify the correct mysql event log module (#7703) by @rexledesmaRevert "Make Output generic (#7202)" (#7715) by @dpeng817Add bool metadata type (#7694) by @clairelin135Add platform arg and other improvements to dagster-docker CLI (#7698) by @smackeseyAdd a guard around dagit's JSON parsing of incoming requests (#7714) by @gibsondanSwitch new partition page to use more efficient partition status query (#7663) by @prha[docs] retry policy invocation example (#7716) by @alangenfelddocs: fix example with lazy loading repository (#7704) by @rexledesmaupdate slack api call in op hook docs (#7712) by @jamiedemariaImprove Buildkite test version specification API (#7699) by @smackeseyuse ">" for multi-component selection in AssetGroup.build_job (#7661) by @sryzafinish dagster-pagerduty types (#7668) by @smackeseyenable providing asset_key to build_output_context (#7696) by @sryza[dagit] Support special cron strings (#7717) by @hellendagsolid -> op in dagster-slack (#7684) by @sryzaTyping additions (#7039) by @smackesey[instance] rm get_addresses_for_step_output_versions (#7601) by @alangenfeldAdd run tags for repository/location names (#6893) by @prhaSurface retried error in Dagit (#7692) by @johannkmRFC: Keep firing hooks even if a framework exception is raised mid-execution (#7652) by @gibsondancombine validate_tags and check_tags to JSONify nested tags (#7720) by @gibsondantest dynamic_output output for node (#7718) by @clairelin135[postgres] dont use urlquote_plus (#7723) by @alangenfeld[docs] fix jobs from graphs example (#7722) by @alangenfeldMake output generic (#7719) by @dpeng817Missed changes for Dagit surface retry error (#7731) by @johannkmChange head_bucket to list_objects. (#7485) by @trevenrawrRFC: include schema in default dbt asset keys (#7645) by @sryzapopulate op names and graph name for ExternalAssetNode (#7721) by @OwenKephartadd extra sensor state fetch to minimize chance of clobber state (#7738) by @prhaWorkaround for mypy cache bug (#7732) by @smackeseyfix run list for new partitions view (#7742) by @prha0.14.14 changelog (#7743) by @prhaMake Output and DynamicOutput no longer be tuple types (#7740) by @dpeng817[dagit] Use a CSP header instead of meta tag (#7727) by @hellendagAdd a test with various wait/act use cases (#7728) by @hellendagAdd job/op equivalents to execution context (#7734) by @johannkmRename ReexecutionPolicy -> ReexecutionStrategy (#7746) by @johannkm[dagit] Update tsconfig to es2022, update browserslist (#7749) by @hellendag[dagit] Use Array flat (#7754) by @hellendagremove usable_as_dagster_type from integrations (#7682) by @sryzaAutomation: versioned docs for 0.14.14 by @elementl-devtoolsenable returning lists of run requests from sensor/schedule evaluation functions (#7755) by @prharemove usable_as_dagster_type from types concept page (#7758) by @sryza[easy] fix missing space in error message for util function (#7761) by @gibsondan[dagit] Add more security headers (#7764) by @hellendagAdditional asset graph improvements (#7707) by @bengotow[dagit] Add Reload All button to the asset catalog, remove repo filter (#7708) by @bengotow[dagit] Better indentation guide in our CodeMirrors (#7765) by @hellendagAllow python objects to be passed as top-level inputs to job (#7032) by @dpeng817Add a static method on DefaultRunLauncher that launches a run without a workspace (#7777) by @gibsondanRevert "Allow python objects to be passed as top-level inputs to job (#7032)" (#7779) by @dpeng817Allow repositories to contain asset definitions and source assets for the same asset key (#7781) by @sryzafix error message when can't find upstream asset for dep (#7648) by @sryzaAllow TextInput to have a type of number (#7778) by @salazarmfix error with inferring description from empty docstring (#7788) by @sryza[dagit] Add hover actions to run Tags (#7751) by @hellendagFixes to the apidocs page (#7729) by @sryza[dagit] Show asset nodes on Asset Details (#7689) by @hellendag[dagit] Make log filter input clearable (#7805) by @hellendag[eslint-config] Add recommended jest lint (#7807) by @hellendagpin xmltodict to fix aws test failures, until moto 3.1.9 (#7806) by @prhaupdate s3 sensor docs to use context.cursor instead of context.last_run_key (#7748) by @prhaAdd namespaces / prefixes to the hacker news assets demo (#7782) by @sryzatoposort frozenset workaround (#7793) by @smackeseyIncrease executor event log poll interval (#7803) by @johannkmAdd a few __init__.py in test packages (#7809) by @smackeseyremove TableSchema experimental warnings (#7799) by @smackeseysnowflake io manager (#7726) by @sryzaChange the fake repo that simulates an import error while loading dagster code (#7816) by @gibsondanremove jinja / nbconvert pin (#7819) by @prha[dagit] Use /instead of> for displaying asset paths (#7818) by @bengotowfix snowflake io manager tests on python 3.7 (#7824) by @sryzalink to examples in concepts pages (#7753) by @jamiedemaria[docs] job execution (#7776) by @alangenfeld[dagit] Clean up my todos (#7810) by @hellendag[dagit] Fix global search for repeated item keys (#7827) by @hellendagsys.meta_path import mapping layer (#7040) by @smackeseyAllow passing posargs to tox commands (#7822) by @smackeseyRename check > _check (#7808) by @smackeseycontext.partition_time_window (#7795) by @sryzatake out airline demo from make dev_install (#7839) by @sryza[dagit] Make schedule/sensor tags more prominent in RunTags (#7834) by @hellendagadd BoolMetadataValue to __all__ in dagster/__init__.py (#7838) by @sryza[dagit server] guard on async websocket send (#7833) by @alangenfeld[top-level inputs 1/2] Move InvalidSubsetError try-catch up a level (#7780) by @dpeng817docs design update (#7531) by @yuhanRemove test-connection pod (#7842) by @gibsondanremove validate_asset_key_string (#7811) by @sryzapartitioned assets from graphs (#7837) by @sryzafallback logic for resolvers (#7766) by @OwenKephartmigrate concept docs code snippet paths to graph/job/op (#6775) by @sryza[rfc] generic + returnable dynamic outputs (#7744) by @dpeng817[dagster-dbt] dbt build + AssetObservations from tests (#7783) by @OwenKephart[dagit] New “folder grid” asset view behind experimental flag (#7767) by @bengotowHandle backcompat asset observation (#7831) by @clairelin135[dagit] Remove search item key (#7830) by @hellendaguse generic Output type annotations in hacker news (#7600) by @sryzachangelog 0.14.15 (#7850) by @yuhan[dagit] add log-level flag (#7853) by @alangenfeld[changelog][skip ci] dagit line and autofmt (#7857) by @alangenfeld[dagit] tweak websocket disable (#7860) by @alangenfeldLimit pods per run with k8s_job_executor (#7846) by @johannkmadditions to the 0.14.15 changelog (#7856) by @sryzafix asset key prefixes in MDS assets example (#7855) by @sryza[helm] dagit.logLevel (#7862) by @alangenfeldwarn for instance.get_event_records calls without an event type filter (#7848) by @prha[top-level inputs 2/2] top level inputs on job and execute_in_process (#7786) by @dpeng817Automation: versioned docs for 0.14.15 by @elementl-devtoolsrm duplicate changelog entry from navigation (#7873) by @gibsondanFix error message assertions in Helm tests (#7858) by @johannkmToxfile adjustments (adding mypy) (#7867) by @smackesey[resources on repos 1/n] Reorganize job/pipeline/graph duplication error logic in repository (#7817) by @dpeng817docs: fix vercel build (#7876) by @yuhanenable @asset-decorated functions to accept kwargs (#7871) by @sryzafix type error (#7887) by @smackeseydagster-dbt types (#7878) by @smackeseyAdd health check for ECS tasks (#7695) by @jamiedemaria[cloud dagit] Add optional nav tabs parameter for settings root page (#7892) by @benpankowfeat(helm): support custom configmap for workspace (#7882) by @johannkmadd data migration for run repo tags (#7815) by @prhamake docker_compose_cm a contextmanager rather than a fixture (#7905) by @gibsondan[@dagster-io/eslint-config] v1.0.4 (#7913) by @hellendagdocs: fix flash white box (#7877) by @yuhanInputContext.upstream_output is missing key when source asset (#7919) by @sryzaremove handle_schema_errors that wrap db errors with schema outdated exceptions (#7886) by @prhaEnable asset partitioning support for @multi_asset defined assets (#7908) by @aroigupdate multiple dynamic outs example (#7917) by @jamiedemariadagster-databricks mypy (#7879) by @smackesey[1/n] Subsetting Stack: use subset_selector for AssetGoup.build_job (#7796) by @OwenKephartDon't call it a 'framework error' when a run worker unexpectedly restarts (#7885) by @gibsondanchore(helm): remove local from compute log manager options (#7924) by @rexledesmaExecutor and dagster-docker typing (#7881) by @smackeseyremove markupsafe pin (#7898) by @bollwyvl[2/n] Subsetting Stack: AssetsDefinition subsetting (#7797) by @OwenKephartfix docstring (#7948) by @OwenKephartRFC: Better error handling when an ExternalRepository grpc call fails (#7929) by @gibsondanUse correct configured link in resources (#7949) by @gibsondanadd CLI command to print the storage schema version (#7910) by @prha[dagit] Present location reload errors after “Workspace > Reload All” (#7907) by @bengotow[dagit] Asset details: Graph/op links (#7655) by @hellendagFix detection of parent process death (#7914) by @aroigMerge identical get_location and get_repository_location methods (#7952) by @gibsondanadd missing check to AssetsDefinition.from_graph (#7960) by @sryzaFix issue where azure IO manager was sometimes failing on recursive deletes (#7956) by @gibsondanmake input defs deterministic (#7957) by @clairelin135[events] can_load mitigation (#7955) by @alangenfeldfix slack image link on Getting Started (#7964) by @yuhanTyping for automation package (#7812) by @smackeseymake StepLauncher and friends public (#7945) by @smackeseyfeat(helm): bump minimum supported kubernetes version to 0.19 (#7925) by @rexledesmaAsset Subselection (#7835) by @clairelin135various fixes for new partition page (#7950) by @prha[dagster-airbyte] don't cancel completed syncs (#7888) by @OwenKephart[dagster-dbt] small tweaks (#7967) by @OwenKephartError rather than warn when an event log query comes in that tries to use an int cursor on an event log DB that needs a RunShardedEventsCursor (#7970) by @gibsondanStill make cursor editable if it is not set (#7969) by @gibsondan[daemon] tweak per-thread instance/workspace setup (#7965) by @alangenfeldRevert "feat(helm): bump minimum supported kubernetes version to 0.19 (#7925)" (#7968) by @rexledesma0.14.16 Changelog (#7976) by @johannkmfix reexecution (#7980) by @clairelin135Automation: versioned docs for 0.14.16 by @elementl-devtools[dagit] Fix SearchBootstrapQuery to be lazy (#7981) by @hellendagsplit graphql query for the backfill page (#7986) by @prhaRemove can_terminate from run launchers and run coordinators, use a status check instead in graphql (#7983) by @gibsondanstyle(helm): remove unnecessary pylint suppressions (#7923) by @rexledesmaprovide job_timeout_in_seconds in dataproc resource config (#7941) by @3cham[dagit] Replace opName with opNames everywhere (#7977) by @hellendagSet default hour of day and minute of hour in build_schedule_from_partitioned_job based on the offsets of the parittioned job (#7954) by @gibsondanWIP: Don't fetch every single run in the InstanceBackfillsQuery (#7985) by @gibsondan[dagit] Show assets on run pages in more scenarios (#7874) by @bengotow[dagit] Do not display the partition_set, step_selection tags on asset group runs (#7953) by @bengotow[dagit] WebSocketProvider: Time out and fall back to disabled (#7978) by @hellendagCoerce asset_key on AssetIn (#8009) by @aroigFix issue where we added the run ID repeatedly to the runs for the tick during scheduler failure recovery (#8003) by @gibsondanLoad fewer backfills on each page (#7998) by @gibsondanadd loading indicator for job backfills (#8004) by @prhaRemove duplicate count_resume_run_attempts method (#7915) by @johannkmMake asset related checks more robust (#8008) by @aroigFix relative path for pytest fixture in backcompat tests (#7999) by @dpeng817feat(helm): allow name override for Dagit deployment (#8005) by @rexledesmaAdd a __main__.py to dagster/daemon (#8012) by @gibsondandagster-buildkite refactor (#7813) by @smackeseyFix unsightly scrollbar in custom alert (#8018) by @gibsondancreate get_records_for_run for event log storage, using an opaque string cursor (#7973) by @prhaFix error when dagit passes in a non-dict string to run config valiation (#8020) by @gibsondan[dagster-io/ui] Fix Dialog header/footer alignment (#7975) by @hellendag[dagit] Disable unloadables if no permissions (#8021) by @hellendaguse mkdir -p in migration guide by @johannkm[dagit] Sectioned left nav (#8017) by @hellendagHandle InvalidSubsetError in launch run results (#8014) by @gibsondanUse dagster-postgres in alembic migration guide (#7992) by @johannkmGenerate buildkite headers inside dagster-buildkite (#7987) by @smackeseybug fix: should allow re-executing all dynamic steps generated from mapper step (#7979) by @yuhanrefactor: has_index for migrations (#8034) by @johannkmIn-progress indicator for graph-backed assets (#8015) by @clairelin135resource defs on asset def (#7918) by @dpeng817Load all code artifacts on grpc server startup, not just pipelines/jobs (#8040) by @gibsondanAccept string values for non_argument_deps (#8023) by @shalabhcadd example Python incompatibilities on Py 3.6 (#8036) by @smackeseyAdd missing deps for docs-snippets and skip 36 in BK (#8048) by @smackeseydocs: update readme with social links (#8046) by @rexledesmaOpExecutionContext.output_asset_key (#7961) by @sryzaAdd missing method to SnowflakePandasTypeHandler (#8051) by @gibsondan[dagit] Flip section arrow in left nav (#8056) by @hellendag[dagster-io/ui] Make disabled+checked Switch state more obvious (#8033) by @hellendag[dagit] Enable sectioned left nav by default (#8039) by @hellendag[3/n] Subsetting Stack: dbt assets can be subset (#7798) by @OwenKephartRaise error upon incomplete graph-backed asset subset (#8041) by @clairelin135throw error for empty asset key (#8069) by @smackesey[dagit] Use dialog for multiple schedules/sensors in left nav (#8065) by @hellendagremove dynamic mapping and collect section from jobs concepts page (#7844) by @sryzagrammar (#7984) by @dwinstonPass in engine rather than connection in SnowflakePandasTypeHandler (#8070) by @gibsondan[dagit] Launchpad: Show disabled "Scaffold" and "Remove" buttons instead of hiding them (#8066) by @hellendagchore(buildkite): mention user in private channel (#8071) by @rexledesma[dagster-dbt] allow for static manifest.json-based selection (#8047) by @OwenKephart[asset-resources 2/n][rfc] io manager defs directly on asset defs (#7920) by @dpeng817adding a FromSourceAsset StepInputSource (#7942) by @OwenKephartAdd protobuf pin to dagster (#8078) by @gibsondanSkip flaky snowflake+pandas tests (#8081) by @gibsondandocs: revamp the README (#8052) by @rexledesma0.14.17 changelog (#8083) by @smackeseyFix upstream context handling in fs_asset_io_manager (#8007) by @aroigKnownState.ready_outputs (#8016) by @alangenfeldAutomation: versioned docs for 0.14.17 by @elementl-devtoolschore: mark FileCache for deprecation in 0.15.0 (#7922) by @rexledesmaremove step stats query (#8089) by @clairelin135Note truncated.
Nothing published for this version
[dagster-aws] Added an env_vars field to the EcsRunLauncher that allows you to configure environment variables in the ECS task for launched runs.
env_vars field to the EcsRunLauncher that allows you to configure environment variables in the ECS task for launched runs.env_vars field on K8sRunLauncher and k8s_job_executor can now except input of the form ENV_VAR_NAME=ENV_VAR_VALUE, and will set the value of ENV_VAR_NAME to ENV_VAR_VALUE. Previously, it only accepted input of the form ENV_VAR_NAME, and the environment variable had to be available in the pod launching the job.IOManager.load_input was called to load an asset that was not being materialized as part of the run, the provided context would not include the metadata for that asset. context.upstream_output.metadata now correctly returns the metadata on the upstream asset.list[str]) as the type of an input would raise an exception.https://github.com/dagster-io/dagster/compare/0.14.19...0.14.20
<details><summary>See All Contributors</summary>
0.14.20rc0 by @elementl-devtoolsFixes for asset graphql tests to make them easier to generalize and call with other graphql context fixtures (#8199) by @gibsondanbring back source asset metadata (#8195) by @sryzafix is_subclass bug where issubclass(list[str], DagsterType) throws a surprising exception (#8287) by @gibsondanAdd max_retries to user editable tags (#8285) by @johannkmDerive origin from pipeline run instead of the arg to ExecuteRunArgs (#8156) by @gibsondanadd an "environment" key to EcsRunLauncher / EcsContainerContext that sets env vars (#8243) by @gibsondanFix upgrade story for new scheme field in postgres (#8220) by @gibsondanAdd image pull secrets to k8s container context (#8221) by @gibsondanextract event connection to top-level graphql query (#8077) by @prhaCreate unified storage configuration for dagster.yaml (#7283) by @prha[dagster-dbt] Fix bug where a dbt invocation that did not successfully start could emit materialization events. (#8293) by @OwenKephartMove config editor to core so we can reuse in admin portal (#8237) by @salazarmMake dagster/reexecution_strategy tag editable (#8286) by @johannkmonly return config field for solids (#8278) by @clairelin135clean up create_pg_connection (#8165) by @alangenfeld0.14.20 Changelog (#8301) by @johannkm0.14.20 by @elementl-devtools</details>
Nothing published for this version
FileCache is now marked for deprecation in 0.15.0.
metadata parameter) and viewed in dagit. You can use it to track code owners, link to docs, or add other useful information.config_schema. If you attempt to materialize an asset with a config schema in Dagit, you'll be able to enter the required config via a modal.k8s_job_executor where ops with long names sometimes failed to create a pod due to a validation error with the label names automatically generated by Dagster.fs_asset_io_manager has been removed in favor of merging its functionality with fs_io_manager. fs_io_manager is now the default IO manager for asset jobs, and will store asset outputs in a directory named with the asset key.k8s_job_executor’s max_conccurent configuration. Thanks @fahadkh!fs_io_manager to incorrectly handle assets associated with upstream assets. Thanks @aroig!https://github.com/dagster-io/dagster/compare/0.14.17...0.14.19
<details><summary>See All Contributors</summary>
Automation: versioned docs for 0.14.17 by @elementl-devtoolsRevert "throw error for empty asset key (#8069)" (#8093) by @gibsondan[dagit] Launchpad: Show disabled "Scaffold" and "Remove" buttons instead of hiding them (#8066) by @hellendagchore(buildkite): mention user in private channel (#8071) by @rexledesma[asset-resources 2/n][rfc] io manager defs directly on asset defs (#7920) by @dpeng817docs: revamp the README (#8052) by @rexledesma0.14.17 changelog (#8083) by @smackeseyFix upstream context handling in fs_asset_io_manager (#8007) by @aroigKnownState.ready_outputs (#8016) by @alangenfeldchore: mark FileCache for deprecation in 0.15.0 (#7922) by @rexledesmaremove step stats query (#8089) by @clairelin135migrate from deprecated sqlalchemy methods (#7864) by @alangenfeldfix typos (#8090) by @OwenKephartAdd skip for flaky grpc server test (#8097) by @gibsondanchore(buildkite): ignore notifications on canceled builds (#8099) by @rexledesma[dagit] Break apart LaunchpadSessionContainer (#8101) by @hellendag[dagit] Small changes to the asset catalog (#7993) by @bengotow[dagit] Track partition set sort order for Launchpad (#8104) by @hellendagLint rule to make sure queries requiring QueryVariables have them (#8102) by @salazarmMake dagster-images build work when it is called outside of a git repo (#8088) by @gibsondanFix configuration schema for k8s executor (#8107) by @fahadkh[dagit] Clean up some yarn peer deps (#8108) by @hellendagAdd latestRun resolver to AssetsLatestInfo (#8072) by @clairelin135Handle op outputs in default asset IO manager (#8074) by @clairelin135[dagit] Add last materialization, latest run columns to the asset table (#7996) by @bengotowfix(mypy): refine types (#8129) by @rexledesmafix(helm): allow numeric quoted strings as image tags (#8120) by @rexledesmadocs: add a button to copy/paste code snippets (#8106) by @yuhan[asset-resources 4/n][rfc] Refactor resource requirement checking code (#7947) by @dpeng817fix(helm): use templated comment (#8137) by @rexledesmadocs(helm): add doc hint for dagster-user-deployments.imagePullSecrets (#8112) by @ceefourAdded group_name to asset (#8110) by @shalabhcFix invocation on ops that use generic dynamic outputs (#8133) by @dpeng817[dagit] Show more information for last run on Schedules/Sensors (#8130) by @hellendagKnownState parent run info (#8030) by @alangenfeldadd metadata to jobs (#7849) by @jamiedemariafix dagit-debug (#8148) by @alangenfeldadd kwargs to pipeline snapshot from storage (#8149) by @jamiedemariaFix label sanitization for strings that end in a period (#8151) by @gibsondan[dagit] Fix duplicate styled-components (#8144) by @hellendagBasic asset config (#7590) by @smackeseychore(helm): christen the code server service port name as grpc (#8142) by @calebfornarifeat(helm): allow the postgresql scheme to be configurable (#8126) by @peayAvoid launching ECS runs with large overrides (#8152) by @jmsanders[dagit] Remove clear-site-data header (#8134) by @hellendagfix(helm): use pre-2022 bitnami repository (#8166) by @rexledesmaAsset config gql resolver (#8163) by @smackeseyMerge branch 'release-0.14.18' of https://github.com/dagster-io/dagster into release-0.14.18 by @OwenKephartchanges (#8169) by @OwenKephart[dagit] asset Config (#8154) by @smackesey0.14.18 by @elementl-devtools0.14.18rc5 by @elementl-devtools0.14.18rc6 by @elementl-devtools[easy] 0.14.18 => 0.14.19 in changelog (#8180) by @gibsondan0.14.19 by @elementl-devtools</details>
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →