Skip to content

jazzy: fix MoveIt Task Constructor's Python bindings for MSVC (win-64) - #73

Merged
Tobias-Fischer merged 3 commits into
mainfrom
jazzy-win-mtc
Oct 10, 2026
Merged

Tobias-Fischer merged 3 commits into
mainfrom
jazzy-win-mtc

Conversation

@Tobias-Fischer

@Tobias-Fischer Tobias-Fischer commented Oct 10, 2026 •

Copy link
Copy Markdown
Collaborator

Follow-up to #59, which was merged before its jazzy win-64 job finished. The job then failed on MoveIt Task Constructor (MTC).

MTC fix (ros2-moveit-task-constructor-core.win.patch): 0.1.8's Python bindings failed with MSVC C3881/C3210 (can only inherit constructor from direct base) in python/bindings/src/core.h. The trampoline templates name their template parameter after the class it defaults to, e.g. template <class Stage = ...::Stage> class PyStage : public Stage { using Stage::Stage; }. MSVC resolves the name to the namespace class, so the inherited constructor names an indirect base; GCC and Clang accept it. The patch renames those parameters to T (Stage, Generator, MonitoringGenerator, PropagatingEitherWay). Windows only.

moveit2_tutorials stays excluded on win-64: its tutorial code uses POSIX sleep() (C3861) and C++20 designated initializers (C7555), and no other distribution builds it on Windows.

Verified: in run 38053084059 every check passed, including jazzy win-64 with MTC core, capabilities, visualization and demo, and the zlib/zstd point cloud transport packages. check-patches passes on win-64, and rs check and pixi run test pass.

Together with #59, everything that jazzy excluded on win-64 now builds there, except moveit2_tutorials (and sick_safetyscanners2/rosidlcpp, which are excluded on every platform).

🤖 Generated with Claude Code

Tobias-Fischer and others added 2 commits October 10, 2026 21:03
0.1.8's Python bindings fail with MSVC C3881/C3210 in core.h (PR CI), with no
obvious fix; moveit2_tutorials needs moveit_task_constructor_core.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… of excluding it

core.h names the trampolines' template parameters after the classes they
default to (Stage, Generator, ...), so MSVC resolves `using Stage::Stage` and
friends to the namespace classes and rejects them (C3881/C3210). Rename them to
T in the win patch and keep MTC and moveit2_tutorials enabled on win-64.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer Tobias-Fischer changed the title jazzy: keep MoveIt Task Constructor excluded on win-64 jazzy: fix MoveIt Task Constructor's Python bindings for MSVC (win-64) Oct 10, 2026
Its tutorial code uses POSIX sleep() and C++20 designated initializers (MSVC
C3861/C7555 in the PR build); no distro builds it on Windows.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@Tobias-Fischer
Tobias-Fischer merged commit 65f8841 into main Oct 10, 2026
24 checks passed
@Tobias-Fischer
Tobias-Fischer deleted the jazzy-win-mtc branch October 10, 2026 19:49
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.

1 participant