Michael Rabinovich Cursor commited on
Commit ·
ec67f32
1
Parent(s): 04e4262
Pin VTK stack (pyvista 0.48.4 / vtk-osmesa 9.3.1) for reproducible builds
Browse filesThe last rebuild floated pyvista (pulled transitively by cadgenbench) and the
headless vtk-osmesa swap to latest, producing a mismatched pair that failed at
import (libvtkWrappingPythonCore3.12.so not found) and broke the Space. Pin both
to the known-good versions.
Co-authored-by: Cursor <cursoragent@cursor.com>
- Dockerfile +4 -1
- requirements.txt +6 -0
Dockerfile
CHANGED
|
@@ -58,9 +58,12 @@ RUN pip install --no-cache-dir \
|
|
| 58 |
# CPU software rasteriser, self-contained, no display server required).
|
| 59 |
# This is the canonical PyVista headless-Docker recipe; the wheel
|
| 60 |
# comes from Kitware's index, not PyPI proper.
|
|
|
|
|
|
|
|
|
|
| 61 |
RUN pip uninstall -y vtk \
|
| 62 |
&& pip install --no-cache-dir \
|
| 63 |
-
--extra-index-url https://wheels.vtk.org vtk-osmesa
|
| 64 |
|
| 65 |
# Drop privileges. HF Spaces conventionally run as uid 1000 with
|
| 66 |
# WORKDIR /home/user/app.
|
|
|
|
| 58 |
# CPU software rasteriser, self-contained, no display server required).
|
| 59 |
# This is the canonical PyVista headless-Docker recipe; the wheel
|
| 60 |
# comes from Kitware's index, not PyPI proper.
|
| 61 |
+
# Pinned to match pyvista==0.48.4 (vtk 9.3.1). An unpinned vtk-osmesa floats
|
| 62 |
+
# to the latest build, which mismatches the pinned pyvista on rebuild and
|
| 63 |
+
# fails at import (libvtkWrappingPythonCore3.12.so not found).
|
| 64 |
RUN pip uninstall -y vtk \
|
| 65 |
&& pip install --no-cache-dir \
|
| 66 |
+
--extra-index-url https://wheels.vtk.org "vtk-osmesa==9.3.1"
|
| 67 |
|
| 68 |
# Drop privileges. HF Spaces conventionally run as uid 1000 with
|
| 69 |
# WORKDIR /home/user/app.
|
requirements.txt
CHANGED
|
@@ -23,3 +23,9 @@ requests>=2.31
|
|
| 23 |
# input_files) to build the Task-browser tab. Pinned explicitly even
|
| 24 |
# though it rides in transitively via gradio/huggingface_hub.
|
| 25 |
pyyaml>=6.0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 23 |
# input_files) to build the Task-browser tab. Pinned explicitly even
|
| 24 |
# though it rides in transitively via gradio/huggingface_hub.
|
| 25 |
pyyaml>=6.0
|
| 26 |
+
# Pin the VTK stack so image rebuilds are reproducible. pyvista is pulled
|
| 27 |
+
# transitively by cadgenbench (unpinned); without an explicit pin a rebuild
|
| 28 |
+
# floats to the latest pyvista/vtk, which then mismatches the headless
|
| 29 |
+
# `vtk-osmesa` swap in the Dockerfile (ImportError: libvtkWrappingPythonCore
|
| 30 |
+
# *.so not found). 0.48.4 / vtk 9.3.1 is the known-good pair.
|
| 31 |
+
pyvista==0.48.4
|