Summary
The CI matrix can no longer install LanceDB 0.3.1, 0.3.4, or 0.5. These releases have disappeared from the PyPI project index, and their version-specific JSON endpoints now return 404.
As a result, every new PR fails as soon as a legacy matrix entry reaches the dependency-install step. The build job is then skipped because it depends on the test matrix. A future release would also be unable to rebuild or publish the three legacy image variants.
Observed on 2026-09-01 in the #91 workflow run:
https://github.com/lance-format/lance-data-viewer/actions/runs/33558260185
Typical failure:
ERROR: Could not find a version that satisfies the requirement lancedb==0.3.4
ERROR: No matching distribution found for lancedb==0.3.4
Pinning an older pip does not help because the release files are no longer available from the index.
Local runner issue
testing/run-tests.sh all does not stop when a Docker build fails. If an image with the same tag already exists locally, it runs that cached image and eventually prints All 8 versions passed. This can hide the dependency failure and test stale environments.
Proposed direction
Preserve legacy support without committing large wheel files:
- For 0.3.1, 0.3.4, and 0.5, use the last published GHCR images as the dependency base and layer the current application source and web assets on top.
- Build legacy test images from those published variants, installing only pytest and httpx2.
- Continue clean PyPI installs for releases that remain available.
- Make the local runner stop immediately when an image build fails so cached images cannot produce a false pass.
- Verify that both amd64 and arm64 legacy base images are still published before changing the release build.
The alternative is to archive the original wheels in a durable project-controlled location and install them with pinned hashes. Silently dropping the legacy variants would break the documented compatibility contract.
Summary
The CI matrix can no longer install LanceDB 0.3.1, 0.3.4, or 0.5. These releases have disappeared from the PyPI project index, and their version-specific JSON endpoints now return 404.
As a result, every new PR fails as soon as a legacy matrix entry reaches the dependency-install step. The build job is then skipped because it depends on the test matrix. A future release would also be unable to rebuild or publish the three legacy image variants.
Observed on 2026-09-01 in the #91 workflow run:
https://github.com/lance-format/lance-data-viewer/actions/runs/33558260185
Typical failure:
Pinning an older pip does not help because the release files are no longer available from the index.
Local runner issue
testing/run-tests.sh alldoes not stop when a Docker build fails. If an image with the same tag already exists locally, it runs that cached image and eventually printsAll 8 versions passed.This can hide the dependency failure and test stale environments.Proposed direction
Preserve legacy support without committing large wheel files:
The alternative is to archive the original wheels in a durable project-controlled location and install them with pinned hashes. Silently dropping the legacy variants would break the documented compatibility contract.