From 1f45823cfa1ef0fbe4e79a5f04a8168541660d8d Mon Sep 17 00:00:00 2001 From: Peter Corke Date: Fri, 14 Aug 2026 06:59:24 +1000 Subject: [PATCH] ci: install open3d on one leg per supported Python version Completes the remaining part of #46: PR #78 fixed the stale open3d-python package name and added a python_version<3.13 marker, but CI itself never installed open3d, so test_pointcloud.py's and test_bin.py's open3d-guarded coverage kept running skipped/degraded regardless. open3d 0.19.0 ships wheels for cp310-cp312 only (confirmed via PyPI metadata), so install it on ubuntu-latest for python-version 3.10-3.12 (one leg per supported version, opencv-version==5 arbitrarily picked to avoid doubling up -- open3d's behaviour doesn't depend on opencv version). No new matrix axis needed, unlike opencv4-vs-5, since there's no per-OS/version behavioural divergence to hunt for here. Verified locally in an isolated venv: with open3d installed, test_pointcloud.py::test_constructor and test_bin.py's smoke test now genuinely pass (not just unskipped) -- 785 passed/94 skipped vs the 784/95 baseline without open3d, exactly the expected one-test delta, no regressions elsewhere. test_ros.py's open3d-gated pointcloud-publish tests remain skipped in CI -- found during this work that they're also gated behind roslibpy (a separate `ros` extra, also never installed anywhere in CI), which installing open3d alone doesn't unlock. Filed separately as #80 rather than folding into this change. Co-Authored-By: Claude Sonnet 5 --- .github/workflows/ci.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cd5df204..3d0f7221 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,6 +34,10 @@ jobs: pip install "opencv-python==${{ matrix.opencv-version }}.*" "opencv-contrib-python==${{ matrix.opencv-version }}.*" cd packages/mvtb-data && pip install . + - name: Install open3d (one leg per supported Python version) + if: matrix.os == 'ubuntu-latest' && matrix.opencv-version == '5' && matrix.python-version != '3.13' + run: pip install open3d + - name: Run tests env: MPLBACKEND: Agg