From 9cba4fdb3a177e163a171b0a55944a6cf681fcf7 Mon Sep 17 00:00:00 2001 From: kert Date: Tue, 27 Oct 2026 13:24:14 -0400 Subject: [PATCH] fix(notebooks): keep the unlocked workspace on duckdb 1.x like the rest of the stack The notebooks image resolves its workspace at build time with no lock, so a rebuild after 2026-10-21 would pull duckdb 2.0.0 while api, llm, bcda and every pipeline run the locked 1.5.x against the same .duckdb files. Cap it at <2 until the stack moves engines together (a Renovate major on uv.lock). --- infra/images/notebooks.Dockerfile | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/infra/images/notebooks.Dockerfile b/infra/images/notebooks.Dockerfile index 185f6b9..f31ba6b 100644 --- a/infra/images/notebooks.Dockerfile +++ b/infra/images/notebooks.Dockerfile @@ -105,6 +105,10 @@ COPY --from=wheel /src/dist/ /tmp/marimo-wheel/ # upload dates, so any exclude-newer filters out every release and the build # fails. uv has no per-package opt-out for date-less indexes. +# duckdb stays on the 1.x line the rest of the stack locks (1.5.x): this +# workspace has no lock, and every service shares the same .duckdb files, +# so a new major here must not be the first engine to touch them. + # Install python + init workspace venv. Use the local wheel for marimo so # the fhirworx frontend ships in the image; no upstream PyPI fetch for # marimo itself. @@ -113,7 +117,7 @@ RUN uv python install ${PYTHON_VERSION} \ && cd workspace \ && MARIMO_WHL=$(ls /tmp/marimo-wheel/marimo-*.whl | head -1) \ && uv add "${MARIMO_WHL}[recommended]" polars cudf-polars-cu12 pandas numpy pyarrow \ - "pyiceberg[s3,pyarrow]>=0.7.0" "duckdb>=1.0.0" "narwhals>=1.0.0" "trino>=0.328.0" \ + "pyiceberg[s3,pyarrow]>=0.7.0" "duckdb>=1.5.4,<2" "narwhals>=1.0.0" "trino>=0.328.0" \ "sqlglot>=26.0.0" \ vega_datasets pyzotero obstore s3fs \ "sqlalchemy>=2.0.0" "psycopg[binary]>=3.2.0" \