Skip to content

Conversation

@jf---
Copy link
Contributor

@jf--- jf--- commented Dec 9, 2025

Summary

Updates nanobind bindings for tesseract 0.33.x dependencies.

  • 154 tests pass, 24 skipped, 0 failures
  • All 15 test phases pass via ./run_tests.sh

Changes

  • Update bindings for 0.33.x API changes (ProfileDictionary, collision config, MoveInstruction)
  • Add @pytest.mark.forked to tests affected by C++ plugin factory global state
  • Skip in-process example tests (use subprocess-based test_examples.py instead)
  • Add TesseractContext pattern for consistent object lifetime management
  • Auto-set TESSERACT_* env vars in conftest from ws/src

Documentation

See docs/STATUS_AND_ROADMAP.md for:

  • Current test status breakdown
  • Blocking issues with root causes and fix options
  • Development priorities
  • Upstream contributions needed

See docs/NANOBIND_ISSUES.md for nanobind-specific binding issues.

Test

./run_tests.sh

Dependencies

tesseract: 0.33.0
tesseract_planning: 0.33.1
trajopt: 0.33.0

jf--- added 11 commits December 9, 2025 18:04
- rosinstall: tesseract 0.33.0, tesseract_planning 0.33.1, trajopt 0.33.0
- move Profile/ProfileDictionary to tesseract_common (0.33.x location)
- update motion planner modules to import from tesseract_common
- remove duplicate CollisionEvaluatorType enum from trajopt bindings
- add backwards-compat re-exports in command_language __init__.py
- skip tests for unbound InstructionsTrajectory API

imports work, some tests pass, remaining API compat work needed
…C lifecycle

- add ProfileDictionary.addProfile binding (was missing)
- pin numpy<2.0 for compatibility
- update collision tests to use Environment contact manager (ContactManagersPluginFactory removed)
- fix test fixtures to keep locators alive during teardown
- explicit cleanup order in tests to prevent segfaults
- add context.py with TesseractContext class for LIFO cleanup
- add ctx, abb_env, iiwa_env, simple_env fixtures to conftest.py
- update all test files to use fixtures instead of manual cleanup
- remove tesseract_collision/conftest.py (consolidated)
- kinematics tests use ctx.keep() for all C++ objects (fix segfault)
- trajopt: safety_margin -> collision_margin_buffer (0.33 API)
- executor.run() overload for backwards compat w/ TaskComposerDataStorage
- run_tests.sh phases tests to avoid plugin factory global state issues
- add pytest markers: forked, planning, viewer, basic
- doc KINEMATICS_PLUGIN_FACTORY_ISSUE.md for upstream report
- add @pytest.mark.forked to kinematics/planning tests
- skip in-process example tests (use subprocess-based)
- update run_tests.sh for isolated test phases
- add STATUS_AND_ROADMAP.md with blocking issues
- add NANOBIND_ISSUES.md documenting binding issues
- auto-set TESSERACT_* env vars in conftest
@jf---
Copy link
Contributor Author

jf--- commented Dec 9, 2025

hi @Levi-Armstrong here's a draft PR to update you how the 0.28 -> 0.33 update is progressing.
I was hoping to complete it, but am running into some pretty complex issues.
If you have some time to provide some pointers / to critique || review it, that would be amazing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants