From 38c4de72548bef5a524c8d86eccb4a64aea71307 Mon Sep 17 00:00:00 2001 From: Simone Carolini Date: Thu, 1 Oct 2026 12:47:59 +0200 Subject: [PATCH] chore(release): 0.8.0 (DuckDB adapter, verified multi-arch release pipeline) Bumps continuo-python-runtime 0.7.0 -> 0.8.0, the only package whose source changed since v0.7.0 (scripts/check_version_bumps.py now passes). continuo-duckdb-adapter 0.1.0 is new. The image-requirements pins, the template Dockerfile and the README engine examples move to 0.8.0 (the README now also names the duckdb image), and [Unreleased] becomes [0.8.0] - 2026-10-01. Co-Authored-By: Claude Sonnet 5.5 Claude-Session: https://claude.ai/code/session_0131xsRkatq65f5x1AW6pahH Signed-off-by: Simone Carolini --- CHANGELOG.md | 6 ++++++ README.md | 13 ++++++++----- image-requirements-duckdb.txt | 2 +- image-requirements-postgres.txt | 2 +- image-requirements-trino.txt | 2 +- pyproject.toml | 2 +- template/Dockerfile | 2 +- uv.lock | 2 +- 8 files changed, 20 insertions(+), 11 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a854e7..2ceba08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). ## [Unreleased] +## [0.8.0] - 2026-10-01 + ### Added - `continuo-duckdb-adapter` 0.1.0: a DuckDB engine adapter on a DuckLake @@ -53,6 +55,10 @@ follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). - `release.yml` waits only for `publish-pypi.yml`, which now covers the images, and selects that tag's own run (a `-test` rehearsal on the same commit no longer shares its lookup). +- `continuo-python-runtime` 0.7.0 → 0.8.0. `continuo-engine-contract`, + `continuo-postgres-adapter` and `continuo-trino-adapter` are unchanged; + `continuo-duckdb-adapter` 0.1.0 is new, and `continuo-python-runtime-duckdb` + is the third engine image published per tag. ### Fixed diff --git a/README.md b/README.md index 68140b9..c3aca8c 100644 --- a/README.md +++ b/README.md @@ -266,18 +266,21 @@ A domain repo picks its warehouse engine by which base image it builds `FROM`: ```dockerfile -FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.7.0 +FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.8.0 # or -FROM ghcr.io/carolsimone/continuo-python-runtime-trino:v0.7.0 +FROM ghcr.io/carolsimone/continuo-python-runtime-trino:v0.8.0 +# or +FROM ghcr.io/carolsimone/continuo-python-runtime-duckdb:v0.8.0 ``` The engine is part of the image **name**; the tag is the bare version, so Continuo's Helm chart can pin an image as `:vX.Y.Z@sha256:`. Each image bakes in exactly one `WarehouseAdapter` for that engine — the -pinned PyPI version of the `continuo-postgres-adapter` or -`continuo-trino-adapter` package built from this repo's `adapters/postgres/` -or `adapters/trino/` source (see the table above) — registered under the +pinned PyPI version of the `continuo-postgres-adapter`, +`continuo-trino-adapter` or `continuo-duckdb-adapter` package built from this +repo's `adapters/postgres/`, `adapters/trino/` or `adapters/duckdb/` source +(see the table above) — registered under the `continuo_engine.adapters` entry-point group (entry names `postgres` / `trino` / `duckdb`). The runtime discovers it via `discover_adapter()` at run time, so a single image serves every node in the service and the release-time diff --git a/image-requirements-duckdb.txt b/image-requirements-duckdb.txt index b9e274f..b6c66fa 100644 --- a/image-requirements-duckdb.txt +++ b/image-requirements-duckdb.txt @@ -1,3 +1,3 @@ -continuo-python-runtime==0.7.0 +continuo-python-runtime==0.8.0 continuo-duckdb-adapter==0.1.0 continuo-engine-contract==0.7.3 diff --git a/image-requirements-postgres.txt b/image-requirements-postgres.txt index f04f941..b61ec8f 100644 --- a/image-requirements-postgres.txt +++ b/image-requirements-postgres.txt @@ -1,3 +1,3 @@ -continuo-python-runtime==0.7.0 +continuo-python-runtime==0.8.0 continuo-postgres-adapter==0.2.2 continuo-engine-contract==0.7.3 diff --git a/image-requirements-trino.txt b/image-requirements-trino.txt index 589f0e5..31ee21a 100644 --- a/image-requirements-trino.txt +++ b/image-requirements-trino.txt @@ -1,3 +1,3 @@ -continuo-python-runtime==0.7.0 +continuo-python-runtime==0.8.0 continuo-trino-adapter==0.2.1 continuo-engine-contract==0.7.3 diff --git a/pyproject.toml b/pyproject.toml index 9a5efde..dc9c82b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "continuo-python-runtime" -version = "0.7.0" +version = "0.8.0" description = "Runtime harness, contract tooling, and CI lint for Continuo python nodes." authors = [{ name = "Simone Carolini" }] maintainers = [{ name = "Simone Carolini" }] diff --git a/template/Dockerfile b/template/Dockerfile index f011708..2ddf939 100644 --- a/template/Dockerfile +++ b/template/Dockerfile @@ -1,5 +1,5 @@ # Tags are v; one image per engine (continuo-python-runtime-postgres / -trino). -FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.7.0 +FROM ghcr.io/carolsimone/continuo-python-runtime-postgres:v0.8.0 COPY contracts/ /app/contracts/ COPY scripts/ /app/scripts/ # COPY every OTHER directory your scripts import from, too. CI folds a script's diff --git a/uv.lock b/uv.lock index 1328c32..d239f80 100644 --- a/uv.lock +++ b/uv.lock @@ -251,7 +251,7 @@ test = [ [[package]] name = "continuo-python-runtime" -version = "0.7.0" +version = "0.8.0" source = { editable = "." } dependencies = [ { name = "boto3" },