New
- The
selection
argument ofdefine_asset_job
now accepts lists ofAssetKey
s orAssetsDefinitions
. RunRequest
now takes astale_assets_only
flag that filters the full set of assets that would be materialized by a job to stale assets only. This can be used in schedules and sensors.- Dagit will now choose a different open port on the local machine to run on when no port is specified to the
dagit
command and the default port 3000 is already in use. - The
grpcio
pin in Dagster to <1.48.1 has been removed for Python versions 3.10 and 3.11. Python 3.7, 3.8, and 3.9 are still pinned to <1.48.1 due to a bug in the grpc library that is causing the process to sometimes hang. - When it is likely that an op process was killed due to running out of memory, a clearer error message is now displayed in Dagit.
- When a sensor tick fails due to taking longer than 60 seconds to execute, a clearer error message is displayed on the sensor timeline in Dagit.
- When you view compute logs on a run in Dagit, we now locally track whether you choose the
stdout
orstderr
tab. The next time you view compute logs, you will see that tab first by default. - The
executor
andloggers
arguments onDefinitions
are no longer experimental. - [dagster-dbt] When
json_log_format
is set toFalse
when using thedbt_cli_resource
, logs will be emitted at the appropriate log level in some situations. Previously, all logs would be emitted at theINFO
level. - [dagster-snowflake] The Snowflake IO Manager and Snowflake Resource now support private key authentication. Thanks Josh Taylor!
- [dagster-airbyte] Users can now specify freshness policies when generating Airbyte assets.
- [dagster-airbyte] When using managed Airbyte ingestion, users can now specify a destination table prefix.
Bugfixes
- Fixed a bug that caused backfills launched from the asset graph page not to work with code locations running versions of Dagster less than 1.1.8.
- Fixed a bug that reverted to the default partition mappings in situations where asset dependencies were resolved based on group instead of asset key.
- The way skips are propagate through the graph when using dynamic outputs are used has been fixed.
- Fixed a bug affecting the download link for cloud-based compute log manager implementations (e.g.
dagster-azure
/dagster-aws
/dagster-gcp
) - Fixed a bug that would cause errors when using
build_asset_reconciliation_sensor
with asset graphs that contained references to source assets without the associatedSourceAsset
objects (which may happen when usingload_assets_from_dbt_*
). - [dagit] Fixed an issue where an error appeared in dagit when a code server stopped and restarted.
- [dagit] Previously, when restarting the dagit process, the Dagit frontend kept cached versions of certain queries even after the code location finished loading. This could lead to display of stale versions of jobs or other code objects. These objects will now be correctly retrieved anew from the backend.
- [dagster-dbt] Fixed a bug with the
DbtManifestAssetSelection
which could result inKeyErrors
when selecting from projects with sources defined. - [dagster-k8s] Fixed a bug where disabling run worker crash recovery by setting maxResumeRunAttempts to 0 in the Helm chart had no effect.
- [dagster-airflow] Fixed a bug where transformed Airflow DAG schedules would always use UTC for their timezone.
Breaking Changes
- [dagit] The
/instance
and/workspace
path prefixes were removed in previous version, but redirects were left in place. These redirects have now been removed.
Community Contributions
- The new
StaticPartitionMapping
enables explicitly defining the dependencies between partitions in twoStaticPartitionsDefinition
s. Thanks Alexander VR! - Fixed a typo in the Dagster Instance documentation header - thanks Cushnir Grigore!
- Fixed a typo in the Dagster Instance documentation body - thanks Chris Zubak-Skees!
- Fixed docstring for static_partitioned_config - thanks Sylvain Lesage!
- Fix dead link in the docs to the Slack community - thanks Emil Christensen!
Documentation
- The Ops and jobs tutorial has been moved to the Guides section. Clicking "Tutorial" in the sidenav will open the Assets tutorial.
All Changes
1.1.9...1.1.10
See All Contributors
docs for new tag_concurrency_limits feature on executor (#11499)
by @gibsondan
[dagster-airflow] warn on airflow dataset (#11498)
by @Ramshackle-Jamathon
Add typehints to snapshot arguments to create_run (#11454)
by @schrockn
Typehint and do invariants for root_run_id, parent_run_id, step_keys_to_execute and execution_plan_snapshot (#11455)
by @schrockn
Typehint and validate tags and status params to create_run (#11456)
by @schrockn
Require kwargs on create_reexecuted_run (#11460)
by @schrockn
Make frozentags inherit from Mapping[str, str] and correctly type _check_execute_external_pipeline_args (#11461)
by @schrockn
Add support for loading cacheable assets from module (#10389)
by @benpankow
enable filtering by asset tag when asset tags table is not present (#11509)
by @sryza
only count materializations within backfill (#11506)
by @sryza
telemetry: add num_assets_in_repo in log_repo_stats metadata (#11513)
by @yuhan
telemetry: add location_name in repo-level metadata (#11514)
by @yuhan
[dagit] Clean up /instance and /workspace redirects (#11503)
by @hellendag
Fix getting partition mappings when asset dependencies are resolved (#11483)
by @sryza
docstring examples for AssetSelection.keys (#11477)
by @sryza
[dagster-airflow] add
make_dagster_definitions_from_airflow_dags_pathand
make_dagster_definitions_from_airflow_dag_bag apis (#11441)
by @Ramshackle-Jamathon
Fix maxResumeRunAttempts being explicitly enabled even if you set it to 0 (#11511)
by @gibsondan
dagster-graphql tests for permissions failures (#11486)
by @gibsondan
Hook for Cloud dagit into PythonErrorInfo (#11467)
by @salazarm
Changelog 1.1.8 (#11526)
by @clairelin135
Add experimental examples directory (#11505)
by @schrockn
[dagster-airbyte] Allow specifying freshness policies on Airbyte assets (#11525)
by @benpankow
Migrate airflow guide to definitions (#11518)
by @petehunt
Automation: versioned docs for 1.1.8
by @elementl-devtools
Remove packaging v22 cap (#11212)
by @smackesey
remove pragmas in docs snippets (#11335)
by @smackesey
update black 22.3.0 -> 22.12.0 and enable --preview (#10900)
by @smackesey
Adopt ruff as linter (#10901)
by @smackesey
Add .git to excludes for ruff in pyproject.toml (#11534)
by @schrockn
chore(ruff): add pre-commit config (#11538)
by @rexledesma
chore(dagit): remove unnecessary dependencies (#11532)
by @rexledesma
docs: 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 @erinkcochran87
disable executing airflow_example_http_operator in tests (#11544)
by @Ramshackle-Jamathon
Add and apply ruff docstring rules (#10907)
by @smackesey
Ruff docstrings D209 (NewLineAfterLastParagraph) (#10993)
by @smackesey
Use 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 @benpankow
add NullMetadataValue (#10969)
by @smackesey
Ruff docstrings D210 (NoSurroundingWhitespace) (#10994)
by @smackesey
[changelog] 1.1.9 round 2 (#11560)
by @benpankow
Make JsonMetadataValue accept lists (#11550)
by @smackesey
Ruff docstrings D212,D214 (MultilineSummaryFirstLine,SectionNotOverIndented) (#10995)
by @smackesey
Automation: versioned docs for 1.1.9
by @elementl-devtools
Ruff docstring D300 (UsesTripleQuotes) (#10996)
by @smackesey
Add a graphql field and API for location-scoped permissions (#11097)
by @gibsondan
[@dagster-io/eslint-config] Remove GraphQL type parameter rule (#11479)
by @hellendag
Ruff 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 @hellendag
Fix 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 @OwenKephart
define_asset_job accept AssetKey and AssetsDefinition selections (#11568)
by @sryza
Ruff docstrings D403,D405 (FirstLineCapitalized,CapitalizeSectionName) (#10997)
by @smackesey
fix remote captured log manager complete check (#11552)
by @prha
misc docs fixes in tutorial / getting started / assets (#11575)
by @gibsondan
docs: fix typo Telementry -> Telemetry (#11571)
by @chriszs
fix docstring for static_partitioned_config (#11535)
by @severo
Add tip when the multiprocess executor hits a likely OOM error (#11570)
by @gibsondan
Ruff docstrings D414 (NonEmptySection) (#10999)
by @smackesey
Ruff docstrings D419 (NonEmpty) (#11000)
by @smackesey
[@dagster-io/ui] Output cjs (#11594)
by @hellendag
Show clearer grpc errors, as well as a custom failure for sensor timeouts in particular since those are so common (#11576)
by @gibsondan
Adds OSS email collection dialog (#11480)
by @salazarm
Ruff docstrings D202 (NoBlankLineAfterFunction) (#10992)
by @smackesey
Ruff docstrings D411,D412 (BlankLineBeforeSection,NoBlankLinesBetweenHeaderAndContent) (#10998)
by @smackesey
Change exclude to extend-exclude in pyproject.toml settings for ruff (#11591)
by @schrockn
refactor(dbt-cloud): remove v2 suffix (#11586)
by @rexledesma
feat(dbt-cloud): allow env vars to be retrieved and set (#11592)
by @rexledesma
Ruff docstrings (misc fixes) (#11002)
by @smackesey
[docs] - Remove accidental comments (#11601)
by @erinkcochran87
docs: fix dead link to Slack community (#11602)
by @EmilRex
Fix 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 @OwenKephart
use Python type annotations in loading-from-config docs examples (#11609)
by @sryza
[dagit] Use updated react-scripts fork for codegen babel plugin (#11583)
by @hellendag
Fall 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 @hellendag
Ruff docstrings D415 (EndsInPunctuation) (#11001)
by @smackesey
[dagster-dbt] allow for non-model nodes to be part of the DbtManifestAssetSelection (#11617)
by @OwenKephart
Update OSS Nux to receive size from iframe via postmessage (#11625)
by @salazarm
[freshness-policies] fix get_non_source_roots (#11619)
by @OwenKephart
remove 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 @hellendag
add example to TimeWindowPartitionMapping apidoc (#11615)
by @sryza
Fix typo in Dagster instance documentation (#11621)
by @GrigoriiKushnir
use run tags instead of asset tags to filter materializations within backfill (#11555)
by @sryza
test fixes for python 3.7 (#11636)
by @gibsondan
Restrict 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 @joshuataylor
Load OSS Nux iframe via https (#11638)
by @salazarm
telemetry: add step start/success/failure event + client timestamp (#11624)
by @yuhan
Add StaticPartitionMapping as a built-in PartitionMapping (#11521)
by @AlexanderVR
[dagster-airbyte] Enable setting a destination table prefix using managed ingestion (#11057)
by @benpankow
telemetry: add is_known_ci_env (#11642)
by @yuhan
stale asset materialization for schedules and sensors (#11516)
by @smackesey
telemetry: avoid race condition of dagit and daemon creating same dir (#11652)
by @yuhan
[Community Nux] Don't use blueprint dialog (#11660)
by @salazarm
fix 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-Jamathon
Revert "test fixes for python 3.7 (#11636)" and "Fall back to a different port when 3000 is in use instead of failing (#11610)" (#11671)
by @gibsondan
Remove community nux for now (#11672)
by @salazarm
Unbreak windows tests (and likely the windows multiprocess executor in general) (#11679)
by @gibsondan
1.1.10
by @elementl-devtools