Data and AI releases

548 this month · 176 companies

Modal 1.2.0

BetaNot yet verified

In this release, we're introducing the concept of "App tags", which are simple key-value metadata that can be included to provide additional organizational context.

LLMsGovernancePricingDeveloper tools

Read on modal.com

Also shipped Oct 9, 2025Modal in October 2025 →

[Preview] DuckLake 0.3

As we announced earlier this year, MotherDuck now supports DuckLake , an integrated data lake and catalog format. DuckLake 0.3 makes working with DuckLake more robust, including CHECKPOINT for easy maintenance , new paths for Iceberg interoperability, spatial geometry types , and MERGE INTO support .

Preview
Source ↗

Performance improvements

- Sorting is 2x+ faster: Complete rewrite of sorting uses less memory and scales better across threads for ORDER BY, window functions, and list sorting More efficient small writes: Appending small numbers of rows now writes far fewer bytes 5x faster checkpointing: Reuses table metadata when tables aren't altered during checkpoint Parallel connection...

Update
Source ↗

SQL syntax updates

- MERGE INTO statement: Standard SQL upserts without requiring primary keys or indexes FILL() window function: Interpolate missing values in ordered data Python-style macro arguments: Macros accept positional or named arguments for any parameter STRUCT to MAP cast: Direct casting between struct and map types

Update
Source ↗

Parquet improvements

- VARIANT type reading: Read Parquet VARIANT types for faster semi-structured data processing Native geometry type writes: Write native Parquet geometry types Auto-globbing for directories: Automatically treats paths as directories and retries with glob patterns when no file is found Learn more in the official DuckDB Labs announcements for 1.4.0 and 1.4.1 .

Update
Source ↗

More from ModalEvery Modal release →

Modal 1.2.1

- It's now possible to override the default -dev suffix applied to the autogenerated URLs for ephemeral Apps (i.e., when using modal serve) via a new dev_suffix field in the .modal.toml config file, or equivalently with the MODAL_DEV_SUFFIX environment variable.

Update
Source ↗

Modal 1.2.2

- modal.Image.run_commands now supports modal.Volume mounts. This can be helpful for accelerating builds by keeping a package manager cache on the Volume: python cache_vol = modal.Volume.from_name("cache-mount") cmd_using_cache = "..." image = modal.Image.debian_slim().run_commands(cmd_using_cache, volumes={"/cache": cache_vol}) All Modal objects now accept...

Update
Source ↗

Modal 1.2.3

- CPU Functions can now be configured to run on non-preemptible capacity by setting nonpreemptible=True in the @app.function() or @app.cls() decorator. This feature is not currently available when requesting a GPU. Note that non-preemptibility incurs a 3x multiplier on CPU and memory pricing. See the Guide for more information on preemptions.

Update
Source ↗

Modal 1.2.4

- Fixed a bug in modal.Sandbox.exec when using stderr=StreamType.STDOUT (introduced in v1.2.3). Added a new h2_enabled option in modal.forward, which enables HTTP/2 advertisement in TLS establishment.

Update
Source ↗

Modal 1.2.5

- It is now possible to set a custom name= for a Function without using serialized=True. This can be useful when decorating a function multiple times, e.g. applying multiple Modal configurations to the same implementation. It is now possible to start modal shell with a Modal Image ID (modal shell im-abc123).

Update
Source ↗

Modal 1.2.6

- Fixed bug where iterating on a modal.Sandbox.exec output stream could raise unauthenticated errors.

Update
Source ↗

Modal 1.3.0

Modal now supports Python 3.14. Python 3.14t (the free-threading build) support is currently a work in progress, because we are waiting for dependencies to be updated with free-threaded support. Additionally, Modal no longer supports Python 3.9, which has reached end-of-life.

Update
Source ↗

Modal 1.3.1

- We've improved our experimental support for Python 3.14t (free-threaded Python) inside Modal containers. The container environment will now use the Python implementation of the Protobuf runtime rather than the incompatible upb implementation.

Update
Source ↗