github dlt-hub/dlt 1.29.1

5 hours ago

dlt 1.29.1 Release Notes

Core Library

  • Add instance requirement spec for jobs (#4262 @tetelio) — Jobs can now declare runner instance requirements via require.instance (an open Dict[str, Any], e.g. {"size": "medium"}). The legacy machine key is deprecated — it still works and serializes, but now emits a DltDeprecationWarning pointing to instance. Fully backward compatible.
  • Fix: use case-sensitive identifiers in sqlglot schema (#4269 @rudolfix) — sqlglot 30.13.0 began case-folding identifiers in more cases; case folding is now explicitly prevented when building the sqlglot schema.
  • Fix: preserve REST paginator stop conditions on has_more=true (#4227 @mattfaltyn) — An API returning has_more=true can no longer re-enable a paginator that already hit a stop condition (maximum_offset/maximum_page, response total, or a missing cursor), preventing requests past a hard limit or without a valid cursor. Fixes #4225.
  • Fix: handle non-scalar total in REST range paginator (#4186 @anxkhn) — A total_path resolving to a JSON object or array now raises the paginator's clear "not an integer" ValueError instead of escaping as an opaque TypeError.
  • Fix: allow JWT auth without scopes (#4235 @mattfaltyn) — OAuthJWTAuth with the default scopes=None no longer raises TypeError; the scope claim is omitted when no scopes are configured. Fixes #4234.
  • Fix: pass load id column name to remove_columns as a sequence (#4241 @chuenchen309) — add_dlt_load_id_column no longer drops RecordBatch columns whose name is a substring of _dlt_load_id (e.g. id, load), which previously produced silent NULLs or a crash. Fixes #4240.

Docs

  • Replace dead playground link in README with the dlt + Hugging Face marimo notebook demo (#4267 @elviskahoro)
  • Remove an outdated IP address from the docs (#4238 @VioletM)

Chores

  • fix(ci): preserve dependency resolution across test jobs (#4264 @Travior) — Propagates matrix resolution settings via UV_SYNC_ARGS, prevents uv run from resyncing prepared CI environments (UV_NO_SYNC), bumps the GitPython minimum, and keeps the SQLGlot compatibility test green across versions.
  • test(ci): rerun remote destinations on transient connection errors (#4243 @burnash) — Widens pytest-rerunfailures filters so transient ODBC/Azure SQL and Databricks connection errors get retried instead of failing the run, while benign assertion failures still fail fast.

New Contributors

Don't miss a new dlt release

NewReleases is sending notifications on new releases.