Open df7cb opened 4 years ago
Full build log: https://salsa.debian.org/3dprinting-team/trimesh/-/jobs/589222
It does look like it's only a "hard" dependency because dpkg is running all unit tests by default.
What would be the best way to solve this problem?
Make pyembree
an actual soft dependency by import-guarding it? What should the expected behaviour be if it's not found?
try:
from pyembree import __version__ as _ver
except ImportError:
# skip rest of file? provide stubs?
Thanks for the report, and also thanks for the great packaging work! Happy to help and I'd love to get trimesh in to dpkg.
Yeah pyembree
is "soft" in the sense that you can run trimesh
without it. I guess the real question is "should all unit tests pass with only a minimal install" which I think the answer is probably "yes." I'll poke around and try to make that a true statement, though also happy to accept PR's! I'm working on a branch which would unify all of trimesh's CI to Github Actions (from a mix of travis/circle/appveyor), and I can definitely add a step which runs pytest
on a minimal install.
It seems like the "soft" dependencies would align pretty well with the concept of Debian package recommends
? Though interested in your take on that!
To narrow down on the issue from the build logs slightly:
"With a minimal install of trimesh, python -m unittest discover -v
should execute correctly"
Indeed the soft dependencies align pretty well with "Recommends". Thanks for looking into this!
Unfortunately I think pyembree
is the tip of the iceberg here. I was able to fix that failure, but then there are 179 more (out of 349 total tests).
Is there any way to change the test command the Debian build runs? I was testing minimal installs locally with:
FROM python:3.7-slim-buster
# copy and install trimesh
COPY . /tmp/trimesh
RUN cd /tmp/trimesh && pip install . pytest
# run tests in the same way as debian packaging
# RUN cd /tmp/trimesh && python -m unittest discover -v
# run tests with pytest
RUN cd /tmp/trimesh && pytest
Hi, I'm working on getting trimesh packaged for Debian because Cura needs it. The trimesh README says that the pyemtree (which isn't packaged for Debian yet) dependency is optional, but that doesn't seem to be the case:
For reference, the packaging repo is https://salsa.debian.org/3dprinting-team/trimesh.