Skip to content

Update dependency dlt to >=1.10,<1.29#857

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/dlt-1.x
Open

Update dependency dlt to >=1.10,<1.29#857
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/dlt-1.x

Conversation

@renovate

@renovate renovate Bot commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
dlt >=1.10,<1.28>=1.10,<1.29 age adoption passing confidence

Release Notes

dlt-hub/dlt (dlt)

v1.28.1

Compare Source

dlt 1.28.1 Release Notes

Python 3.9 EOL

  1. Dropped Python 3.9 support (#​4074 @​Travior) — Python 3.9 reached end-of-life on 2025-10-31. dlt no longer tests against or advertises support for 3.9. The ruff/mypy target versions were bumped accordingly. Users still on 3.9 must upgrade to 3.10+ to use this release.

Highlights

  • Dataset browser shown by default in the dltHub dashboard (#​4068 @​lis365b) — The dashboard now opens directly on the dataset browser (no entry page, no toggle), auto-selecting the most recently used pipeline. Empty-state copy was made generic so it reads correctly both locally and in the dltHub runtime. Resolves product_backlog#153.

Core Library

  • Dataset browser by default in the dashboard (#​4068 @​lis365b) — see Highlights.
  • Fix: connectorx temporal-column precision on newer connectorx (#​3996 @​tetelio) — Newer connectorx returns timestamps as timestamp[ns] and times as time64[ns] (via the arrow_stream return type) instead of date64 (ms). dlt now normalizes all connectorx temporal columns to microsecond precision (the renamed cast_connectorx_temporal_columns), truncating ns→us losslessly since source DBs carry no nanoseconds.
  • Fix: ISO week/year in detect_datetime_format so week-date cursors round-trip (#​4061 @​yashs33244) — Week-date formats (YYYY-Www) were detected as %Y-W%W, which disagrees with ISO weeks at year boundaries. "2026-W01" parsed to 2025-12-29 and re-rendered as "2025-W52", silently corrupting saved incremental cursors. Now emits %G-W%V / %G-W%V-%u.
  • Fix: remove 0x0 characters from postgres INSERT strings (#​4086 @​rudolfix) — Postgres escaping allowed null (0x0) characters through; they are now stripped in the escape function. INSERT statements are also split by \n only.
  • Fix: metadata caching in sql_database (#​4067 @​rudolfix) — User-passed metadata is now correctly consulted for cached tables in both eager and deferred reflection. Fixes #​4066.
  • Fix: cap codex skill descriptions at 1024 chars on ai init (#​4072 @​lis365b) — Codex silently drops skills whose description frontmatter exceeds 1024 chars. The Codex install path now truncates the installed SKILL.md description to the cap (with a warning) so workbench skills like dlthub-router load correctly.

Docs

Chores

  • Faster CI testing + Python 3.14 on CI (#​3996 @​tetelio) — Splits monolithic test_common.yml into 27 parallel focused jobs (3 per OS/Python combo) so wall-clock is roughly max(suite) instead of sum(suites), moves runners to blacksmith-* variants, and enables Python 3.14 in CI (running the full suite, with 3.14-gated deps snowflake-connector-python>=4.4.0 and cffi>=1.18). Also includes job/workflow renames; one functional reduction — lance_s3 non-essential tests now run only on full-suite triggers.
  • Fix: pin airflow smoke-test installs with the airflow constraints file (#​4069 @​Travior) — Adds a script that fetches the latest airflow version and builds the matching constraint file, as airflow recommends for application installs.

New Contributors

v1.28.0

Compare Source

dlt 1.28.0 Release Notes

Breaking Changes

  1. refresh="drop_data" on Delta and persistent-catalog Iceberg no longer frees storage (#​4051 @​rudolfix) — Truncation is now a transactional delete that keeps the table, schema, version history, and data files (retained for time travel until vacuum). Previously the files were deleted. This corrects prior erroneous behavior, but pipelines relying on drop_data to reclaim disk space will no longer see storage freed without an explicit vacuum.
  2. replace now fully truncates empty and orphaned tables (#​4010 @​rudolfix) — Tables belonging to a replace resource that receive no data in a run (including nested tables, dynamic-name and variant tables) are now consistently truncated. Previously these tables could be left orphaned with stale rows surviving the reload, leaving the dataset in an inconsistent state. Pipelines that implicitly relied on that leftover data will now see those tables emptied.

Highlights

  • Lance destination write optimizations (#​4051 @​rudolfix) — Namespace/session pooling shares one LanceNamespace + lance.Session across job clients; atomic single-commit-per-table writes uncommitted fragments in parallel and commits them in one version (Append/Overwrite/upsert). replace is now a single Overwrite commit so readers never see a partially-replaced table, and the namespace pool rebuilds handles on credential rotation to avoid ExpiredToken on long loads. Also fixes #​3800 (Iceberg 409 Table already exists after drop_sources).
  • Reliable replace / refresh truncation (#​4010 @​rudolfix) — replace resources now consistently truncate all participating tables even when a load carries no data (nested tables, dynamic names, variants included), and drop_data refresh truncates correctly on append and survives non-existent tables. refresh is now the recommended way to do a full refresh — the replace switch is deprecated. Also fixes #​3998 and #​4017.
  • Configurable CSV encoding (#​4045 @​AstrakhantsevaAA) — New write_encoding option lets you choose the encoding of CSV files dlt writes (default utf-8), e.g. utf-8-sig for Excel BOM or latin-1/cp1252 for legacy importers. Set via [normalize.data_writer] write_encoding="latin-1".
  • Refreshable cloud credentials for long-running loads (#​4056 @​tderk) — Default credential-chain credentials are now passed to external consumers (fsspec, rust crates, fileio) consistently and as refreshable where supported, instead of being frozen once. Fixes ExpiredToken failures on long-held connections (#​4003).

Core Library

Features

  • Prune duplicate deps from launcher groups (#​4044 @​rudolfix) — Deps already present in user requirements are eliminated; numpy/pandas removed from rows→arrow conversion and dashboard deps. Row conversion uses a pure-arrow fast path (up to ~2x faster) or a Python zip path as good as pandas.
  • CDN marimo launcher (#​4049 @​tetelio) — Serve marimo frontend assets from jsDelivr CDN via configurable --asset-url. Launcher path resolution uses find_spec instead of import_module so notebooks aren't executed before marimo run / streamlit run (~1–1.5s faster port readiness).

Fixes

  • Fix: duckdb refreshes credential_chain secrets to survive temp-token expiry (#​4021 @​0ywfe) — Adds REFRESH auto so long-held sql_client connections no longer die with ExpiredToken once temporary AWS tokens rotate. Fixes #​3987.
  • Bump duckdb to 1.5.3, ducklake to 1.0 (#​4055 @​rudolfix)
  • Fix: Retry-After: 0 no longer triggers an immediate retry loop (#​4043 @​AstrakhantsevaAA) — Values ≤ 0 are treated as no actionable hint, letting tenacity's exponential backoff take over. Fixes #​4036.
  • Fix: clickhouse insert file quoting (#​4018 @​rudolfix) — Also bumps the driver version. Fixes #​4014.
  • Fix: incremental merge truncates destination on no-data runs (#​4000 @​burnash) — Port of the 1.27.2 hotfix (#​3998) to devel with a regression test.
  • Fix: databricks emits foreign key only when create_indexes is enabled (#​4011 @​burnash) — Avoids Unity Catalog UC_REFERENTIAL_CONSTRAINT_DOES_NOT_EXIST failures when the matching primary/unique key isn't created.
  • Fix: DuckLake DuckDB-backed catalog attach incorrectly applied META_TYPE 'sqlite' (#​3871 @​Analect) — Splits the duckdb/sqlite branch so a duckdb:///catalog.duckdb catalog URI attaches cleanly instead of failing on PRAGMA journal_mode=WAL.
  • Fix: mssql ingests parquet row-groups individually to bound ADBC driver memory (#​3947 @​wtfashwin) — Prevents OOM on parquet files larger than available memory. Closes #​3915.

Docs

Chores

  • Retry flaky databricks and motherduck remote tests (#​4046 @​burnash) — Adds pytest-rerunfailures, scoped to just those two transient destinations via --only-rerun.
  • Fix Arrow string-width assumptions in pandas 3 CI (#​4025 @​Travior) — Updates deltalake/filesystem reader tests for pandas 3's Arrow-backed string columns. Fixes #​4024.
  • Increase marimo cell re-render timeout in dashboard tests (#​3991 @​burnash) — Bumps 15s → 30s to stop test_multi_schema_selection flaking on slow CI.
  • master → devel merge after hotfixes (#​4019 @​rudolfix)

New Contributors


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants