dlt 1.29.0
dlt 1.29.0 Release Notes Highlights ClickHouse staging-optimized replace strategy ( #3927 @filipesilva ) , ClickHouse now supports the staging-optimized replace strategy, performing atomic table swaps via EXCHANGE TABLES so a full replace is instantaneous and never leaves the destination in a half-loaded state.
Also shipped Jul 13, 2026dltHub in July 2026 →
BigQuery Apache Iceberg managed tables get partitioning and transactions GA
Table partitioning, multi-statement transactions and advanced runtime are now generally available for Apache Iceberg managed tables in BigQuery.
Cross-cloud Lakehouse now supports Snowflake as a remote catalog provider (Preview)
Cross-cloud Lakehouse now supports Snowflake as a remote catalog provider (Preview). You can configure federated catalogs to query data stored in Snowflake directly from Google Cloud using BigQuery or Apache Spark without migrating data or building complex ETL pipelines. For more information, see Set up cross-cloud Lakehouse for Snowflake .
BigQuery project caps limit slots and concurrency per project in preview
Project caps, also called scheduling policies, limit maximum slots and concurrency for each project within a BigQuery reservation, helping control shared capacity.
BigQuery Overview page is generally available
The BigQuery Overview page is a hub for tutorials, features and resources, with guided paths for users of all skill levels.
BigQuery Migration Service MCP server for SQL translation is GA
The MCP server translates SQL queries into GoogleSQL, generates DDL from input queries and explains SQL translations, letting AI tools drive warehouse migrations.
BigQuery Data Transfer Service incremental Salesforce transfers are GA
Incremental data transfers from Salesforce in the BigQuery Data Transfer Service are now generally available.
More from dltEvery dlt release →
dlt 1.28.2
Core Library This is a patch release that allows 1.28.x dlt to use future versions of dlthub-client
dlt 1.29.1
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 .
dlt 1.28.1
dlt 1.28.1 Release Notes Python 3.9 EOL 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.
dlt 1.28.0
dlt 1.28.0 Release Notes Breaking Changes 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.
dlt 1.30.0
dlt 1.30.0 Release Notes Breaking Changes Failed load packages no longer auto-abort ( #3557 @anuunchin ) , auto_abort_on_terminal_error defaults to False . With raise_on_failed_jobs=True the job is now retried and you get a LoadClientJobTerminalRetry instead of LoadClientJobFailed , and the package stays pending.
dlt 1.27.2
Hotfix: fixes #3998 ( merge with empty data after replace on incremental truncates the destination table). Upgrade for anyone on 1.27.0/1.27.1.
1.27.1: Merge pull request #3986 from dlt-hub/devel
master merge for 1.27.1 release
dlt 1.31.0
dlt 1.31.0 Release Notes Breaking Changes 1. pendulum helpers removed from dlt.common.time; pendulum>=3 required (#4033 @rudolfix) - What changed: the minimum pendulum is now 3.0.0 on all Python versions. dlt still works with pendulum as before. documented usage and pendulum helpers work. Internally pendulum is not used.