Skip to main content
Version: devel View Markdown

Release highlights: 1.23

Breaking changes

  • Legacy Streamlit dashboard removed. The legacy Streamlit-based pipeline dashboard has been removed (#3674). dlt pipeline show now generates and launches the marimo-based workspace dashboard instead, which requires marimo to be installed.

AI Harness for coding agents

The AI Harness ships as the dlthub ai command group, installed with pip install dlt[hub] (#3674). Run dlthub ai init to configure a coding agent (Claude Code, Cursor, or Codex) with dlt rules and skills, install curated toolkits with dlthub ai toolkit, and run a pluggable MCP server with dlthub ai mcp. In the base package, dlt ai redirects here.

pip install "dlt[hub]"
dlthub ai init --agent claude

Iceberg table and namespace properties

Set Iceberg table properties per resource with iceberg_adapter(table_properties=...), or as defaults for every table via iceberg_table_properties on the filesystem destination (#3699). Namespace properties use iceberg_namespace_properties. Properties apply only when the table or namespace is first created, and adapter values win over destination defaults on conflicting keys.

import dlt
from dlt.destinations.adapters import iceberg_adapter

@dlt.resource(table_format="iceberg")
def my_data():
yield [{"id": 1, "value": "a"}]

iceberg_adapter(
my_data,
table_properties={"write.format.default": "parquet"},
)

pipeline = dlt.pipeline("iceberg_props", destination="filesystem")
pipeline.run(my_data)

Faster JSON normalization

dlt's relational normalizer and schema evolution are substantially faster (#3626): the maintainers benchmark roughly 5x on flat data, about 2x on nested REST API data, about 1.8x on wide nested data, and 2 to 3 times faster ISO timestamp parsing. Every pipeline that normalizes JSON benefits automatically.

Databricks notebook compute credentials

When dlt runs inside a Databricks notebook without explicit server_hostname or http_path, it now derives server_hostname from the workspace URL and builds http_path from the notebook's own cluster, instead of defaulting to a SQL warehouse (#3667). Warehouse discovery remains the fallback when no cluster context is available.

Shout-out to new contributors

Big thanks to our newest contributors:

Full release notes

View the 1.23.0 release notes

This demo works on codespaces. Codespaces is a development environment available for free to anyone with a Github account. You'll be asked to fork the demo repository and from there the README guides you with further steps.
The demo uses the Continue VSCode extension.

Off to codespaces!

DHelp

Ask a question

Welcome to "Codex Central", your next-gen help center, driven by OpenAI's GPT-4 model. It's more than just a forum or a FAQ hub – it's a dynamic knowledge base where coders can find AI-assisted solutions to their pressing problems. With GPT-4's powerful comprehension and predictive abilities, Codex Central provides instantaneous issue resolution, insightful debugging, and personalized guidance. Get your code running smoothly with the unparalleled support at Codex Central - coding help reimagined with AI prowess.