Data and AI releases

548 this month · 176 companies

dlt 1.28.1

UpdateNot yet verified

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.

StreamingData integrationBIObservabilityCoding agents

Read on github.com

Also shipped Jun 19, 2026dltHub in June 2026 →

Railway mobile app, one-click PgBouncer, manage templates in the CLI

Your Railway workspace now fits in your pocket. The [Railway mobile app is now available on the iOS App Store](https://apps.apple.com/us/app/railway-com/id6755712493) (Android beta is coming soon), PgBouncer is available in Priority Boarding with one-click setup for Postgres, and `railway templates` can manage the full template lifecycle from the CLI.

Beta
Source ↗

More from dltEvery dlt 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.

Update
Source ↗

dlt 1.28.2

Core Library This is a patch release that allows 1.28.x dlt to use future versions of dlthub-client

Update
Source ↗

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.

Update
Source ↗

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.

Update
Source ↗

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 .

Update
Source ↗

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.

Update
Source ↗

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.

Update
Source ↗