From d0c6dd6c2142f29c07487ed6dd24d88c774c2d86 Mon Sep 17 00:00:00 2001 From: Gordon Murray Date: Wed, 10 Jun 2026 20:00:27 +0100 Subject: [PATCH] feat: add LanceDB 0.33.0 image and make it the recommended version 0.33.0 is the current stable lancedb release; the newest image in the matrix was 0.29.2 from February. Adds a constraints file pinning lancedb==0.33.0 with pyarrow>=16,<25, a seventh entry in the build and test matrices, and moves the canonical-version tag rules (latest, stable, v{version}), the Dockerfile default, and the README recommendation from 0.29.2 to 0.33.0. Intermediate releases (0.30.x, 0.32.0) are skipped on purpose: each matrix entry costs two CI jobs per run and their data is readable with the 0.33.0 image. Fixes #53 --- .github/workflows/release.yml | 10 +++++----- CHANGELOG.md | 1 + README.md | 27 ++++++++++++++------------- backend/constraints-0.33.0.txt | 3 +++ docker/Dockerfile | 4 ++-- 5 files changed, 25 insertions(+), 20 deletions(-) create mode 100644 backend/constraints-0.33.0.txt diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a425355..50c9711 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -20,7 +20,7 @@ jobs: packages: write strategy: matrix: - lancedb: ["0.3.1", "0.3.4", "0.5", "0.16.0", "0.24.3", "0.29.2"] + lancedb: ["0.3.1", "0.3.4", "0.5", "0.16.0", "0.24.3", "0.29.2", "0.33.0"] steps: - name: Checkout repository @@ -50,10 +50,10 @@ jobs: type=ref,event=branch,suffix=-lancedb-${{ matrix.lancedb }} type=ref,event=pr,suffix=-lancedb-${{ matrix.lancedb }} type=semver,pattern=app-{{version}}_lancedb-${{ matrix.lancedb }} - type=semver,pattern=v{{version}},enable=${{ matrix.lancedb == '0.29.2' && startsWith(github.ref, 'refs/tags/') }} + type=semver,pattern=v{{version}},enable=${{ matrix.lancedb == '0.33.0' && startsWith(github.ref, 'refs/tags/') }} type=raw,value=lancedb-${{ matrix.lancedb }} - type=raw,value=latest,enable=${{ matrix.lancedb == '0.29.2' && github.ref == 'refs/heads/main' }} - type=raw,value=stable,enable=${{ matrix.lancedb == '0.29.2' && startsWith(github.ref, 'refs/tags/') }} + type=raw,value=latest,enable=${{ matrix.lancedb == '0.33.0' && github.ref == 'refs/heads/main' }} + type=raw,value=stable,enable=${{ matrix.lancedb == '0.33.0' && startsWith(github.ref, 'refs/tags/') }} - name: Build and push Docker image uses: docker/build-push-action@v5 @@ -74,7 +74,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - lancedb: ["0.3.1", "0.3.4", "0.5", "0.16.0", "0.24.3", "0.29.2"] + lancedb: ["0.3.1", "0.3.4", "0.5", "0.16.0", "0.24.3", "0.29.2", "0.33.0"] steps: - name: Checkout repository uses: actions/checkout@v4 diff --git a/CHANGELOG.md b/CHANGELOG.md index e3fb502..d70f74e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] ### Added +- LanceDB 0.33.0 support with a matching container image tag. 0.33.0 is now the recommended version and carries the `latest`, `stable`, and `v{version}` tags (#53). - API endpoint test suite (pytest + FastAPI TestClient) covering all six endpoints, pagination, column filtering, value serialization, and corrupted-dataset handling. The CI test job now runs it against every supported Lance version (#28). ### Fixed diff --git a/README.md b/README.md index a7a5898..f2bb7da 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ Browse Lance tables from your local machine in a simple web UI. No database to set up. Mount a folder and go. -Images are published for six LanceDB versions, so you can pick the one that matches your data format. +Images are published for seven LanceDB versions, so you can pick the one that matches your data format. ![Lance Data Viewer Screenshot](lance_data_viewer_screenshot.png) @@ -12,7 +12,7 @@ Images are published for six LanceDB versions, so you can pick the one that matc ```bash # Modern stable version (recommended for new projects) -docker pull ghcr.io/lance-format/lance-data-viewer:lancedb-0.29.2 +docker pull ghcr.io/lance-format/lance-data-viewer:lancedb-0.33.0 ``` 2. **Make your data readable (required)** @@ -27,7 +27,7 @@ chmod -R o+rx /path/to/your/lance ```bash docker run --rm -p 8080:8080 \ -v /path/to/your/lance:/data:ro \ - ghcr.io/lance-format/lance-data-viewer:lancedb-0.29.2 + ghcr.io/lance-format/lance-data-viewer:lancedb-0.33.0 ``` 4. **Open the UI** @@ -48,8 +48,9 @@ Choose the container that matches your Lance data format: | Container Tag | Lance Version | PyArrow | Use Case | |--------------|---------------|---------|----------| -| `lancedb-0.29.2` | 0.29.2 | >=16, <22 | **Recommended** - Latest stable version | -| `lancedb-0.24.3` | 0.24.3 | 21.0.0 | Modern stable version | +| `lancedb-0.33.0` | 0.33.0 | >=16, <25 | **Recommended** - Latest stable version | +| `lancedb-0.29.2` | 0.29.2 | >=16, <22 | Modern stable version | +| `lancedb-0.24.3` | 0.24.3 | >=16, <22 | Modern stable version | | `lancedb-0.16.0` | 0.16.0 | 16.1.0 | Anchor stable for older datasets | | `lancedb-0.5` | 0.5.0 | 14.0.1 | Legacy support | | `lancedb-0.3.4` | 0.3.4 | 14.0.1 | Legacy support | @@ -71,7 +72,7 @@ docker run --rm -p 8080:8080 \ ghcr.io/lance-format/lance-data-viewer:lancedb-0.3.4 ``` -**Tip**: If you're unsure which version to use, start with `lancedb-0.29.2` and if you get compatibility errors, try progressively older versions. +**Tip**: If you're unsure which version to use, start with `lancedb-0.33.0` and if you get compatibility errors, try progressively older versions. ### Features @@ -99,7 +100,7 @@ For pipelines or multi-container setups where lance-data-viewer shares a data vo ```yaml services: lance-viewer: - image: ghcr.io/lance-format/lance-data-viewer:lancedb-0.29.2 + image: ghcr.io/lance-format/lance-data-viewer:lancedb-0.33.0 environment: DATA_PATH: /data volumes: @@ -116,7 +117,7 @@ All images are on the GitHub Container Registry: `ghcr.io/lance-format/lance-dat | Tag | Meaning | |-----|---------| -| `lancedb-{version}` | Latest build for that Lance version (e.g. `lancedb-0.29.2`) | +| `lancedb-{version}` | Latest build for that Lance version (e.g. `lancedb-0.33.0`) | | `latest` | Latest main-branch build of the recommended Lance version | | `stable` | Most recent tagged release, recommended Lance version | | `v{app version}` | Pin to an app release (e.g. `v0.2.0`) | @@ -125,9 +126,9 @@ All images are on the GitHub Container Registry: `ghcr.io/lance-format/lance-dat ### Build and test locally ```bash -# Build with specific Lance version (default: 0.29.2) +# Build with specific Lance version (default: 0.33.0) docker build -f docker/Dockerfile \ - --build-arg LANCEDB_VERSION=0.29.2 \ + --build-arg LANCEDB_VERSION=0.33.0 \ -t lance-data-viewer:dev . # Build multiple versions for testing @@ -155,13 +156,13 @@ curl "http://localhost:8080/datasets/your-dataset/rows?limit=5" The API tests run without Docker. With Python 3.11: ```bash -pip install -c backend/constraints-0.29.2.txt -r backend/requirements.txt +pip install -c backend/constraints-0.33.0.txt -r backend/requirements.txt pip install pytest "httpx<0.28" cd backend && python -m pytest tests/ -v ``` Swap the constraints file to test against a different Lance version. CI runs -the suite against all six. +the suite against every supported version. ### Development workflow @@ -171,7 +172,7 @@ docker ps -q | xargs docker stop # Rebuild after code changes (with specific Lance version) docker build -f docker/Dockerfile \ - --build-arg LANCEDB_VERSION=0.29.2 \ + --build-arg LANCEDB_VERSION=0.33.0 \ -t lance-data-viewer:dev . # Run in background diff --git a/backend/constraints-0.33.0.txt b/backend/constraints-0.33.0.txt new file mode 100644 index 0000000..5ba6ba7 --- /dev/null +++ b/backend/constraints-0.33.0.txt @@ -0,0 +1,3 @@ +# Constraints for lancedb 0.33.0 +lancedb==0.33.0 +pyarrow>=16,<25 diff --git a/docker/Dockerfile b/docker/Dockerfile index cc3b11e..22e4285 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,7 +1,7 @@ FROM python:3.11-slim-bookworm AS builder # Build arguments for Lance version -ARG LANCEDB_VERSION=0.29.2 +ARG LANCEDB_VERSION=0.33.0 WORKDIR /build @@ -42,7 +42,7 @@ HEALTHCHECK --interval=30s --timeout=10s --start-period=5s --retries=3 \ CMD curl -fsS http://localhost:${PORT}/healthz || exit 1 # Build arguments for labels (redeclare after FROM) -ARG LANCEDB_VERSION=0.29.2 +ARG LANCEDB_VERSION=0.33.0 ARG APP_VERSION=0.0.0-dev LABEL org.opencontainers.image.title="Lance Data Viewer"