Skip to content

fix(build): migrate off deprecated moveit_studio_common macros - #16

Merged
WillYingling merged 2 commits into
mainfrom
fix/moveit-pro-package-migration
Aug 20, 2026
Merged

fix(build): migrate off deprecated moveit_studio_common macros#16
WillYingling merged 2 commits into
mainfrom
fix/moveit-pro-package-migration

Conversation

@WillYingling

@WillYingling WillYingling commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Two commits: the moveit_pro_package migration, and the CI pin that lets it be
verified at all.

1. fix(build): migrate off deprecated moveit_studio_common macros

Building this package logs a CMake deprecation warning:

CMake Deprecation Warning at .../moveit_studio_common/cmake/moveit_studio_package.cmake:61 (message):
  moveit_studio_package() from moveit_studio_common is deprecated and will be
  removed in MoveIt Pro 10.0.  Update your package to:
  1.  Change <build_depend>moveit_studio_common</build_depend> to
      <buildtool_depend>moveit_pro_package</buildtool_depend>
  2.  Add find_package(moveit_pro_package REQUIRED) to your CMakeLists.txt
  3.  Replace moveit_studio_package() with moveit_pro_package()

The migration exactly as described. moveit_studio_common also leaves
THIS_PACKAGE_INCLUDE_DEPENDS: no source here includes one of its headers, and
leaving it in the list is what pulls moveit_studio_package.cmake back into the
configure — it re-defines moveit_pro_behavior_test() with the deprecated shim,
so a downstream package that already calls the new name still gets warned.
Dropping the dep is what silences that second warning. Also refreshes a stale
comment naming the moveit_studio_behavior package.

2. ci: build against the newest release, not the base branch

CI on this repo was already red before this PR, for an unrelated reason worth
fixing here so the change above can actually be verified.

image_tag resolved to the branch name, so a PR into main pulled
picknikciuser/moveit-studio:main-humble — Pro's unreleased 10.0 line. There
SharedResourcesNode no longer exposes the protected shared_resources_ member;
it is a private behavior_context_ reached through getBehaviorContext(). Every
behavior in this package uses shared_resources_, so colcon build failed in
create_interface_value.cpp and create_dynamic_interface_group_values.cpp
regardless of what a PR touched:

error: 'shared_resources_' was not declared in this scope; did you mean 'SharedResourcesNode'?

Evidence this predates the PR: main's last green CI was 2026-05-08, and
feat/get-joint-limits (2026-07-23) fails the same way.

Now pinned to 9.4.1, the newest release — 9.4.2 / 9.5.0 / 10.0.0 images do not
exist yet, and Pro's v9.4 branch still has
protected: std::shared_ptr<BehaviorContext> shared_resources_;. The
workflow_dispatch override is preserved, so a 10.0 image can still be tried on
demand.

This pin is a deliberate trade-off: it stops CI from being an early-warning
system for upstream API drift. The getBehaviorContext() migration is still owed
before 10.0 — 50 uses of shared_resources_ across 21 files — and the comment
block in CI.yaml says to bump the tag when that happens. If you would rather
keep the canary, the follow-up is a continue-on-error job against main-humble
alongside the pinned one.

Verification

CI green on this branch — all four checks pass (run 32293460729):

image_tag: 9.4.1
docker pull picknikciuser/moveit-studio:9.4.1-humble
Finished <<< experimental_behaviors [1min 44s]
Summary: 1 package finished
Summary: 2 tests, 0 errors, 0 failures, 0 skipped

Zero CMake Deprecation lines and zero stderr in that log, against 7 compile
errors in the previous run.

Also built as part of a downstream autowash_config workspace on 9.3.1
(--packages-up-to autowash_config, build/ + install/ wiped so CMake
reconfigures from scratch): 8 packages finished, no stderr and no warnings from
any of them, where the same build before this change reported
experimental_behaviors under packages had stderr output.

Note for whoever merges

autowash_config pins this submodule at f62e158 ("Add GetJointLimits
behavior"), which is on feat/get-joint-limits and not on main. So bumping
that pointer to pick this up is not a fast-forward from what it currently tracks —
worth sorting out that divergence at the same time.

🤖 Generated with Claude Code

moveit_studio_package() and everything else in moveit_studio_package.cmake is
deprecated and will be removed in MoveIt Pro 10.0, so a build against 9.x logs a
CMake deprecation warning for this package. Take the documented migration:
buildtool_depend on moveit_pro_package, find_package it, and call
moveit_pro_package().

moveit_studio_common also leaves THIS_PACKAGE_INCLUDE_DEPENDS: no source in this
package includes a moveit_studio_common header, and keeping it in the list is
what pulled moveit_studio_package.cmake back in - it re-defines
moveit_pro_behavior_test() with the deprecated shim, so the test macro warned as
well even though the call site already used the new name.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@WillYingling WillYingling self-assigned this Aug 19, 2026
image_tag resolved to the branch name, so a PR into main pulled
picknikciuser/moveit-studio:main-humble - Pro's unreleased 10.0 line. There,
SharedResourcesNode no longer exposes the protected shared_resources_ member;
it is a private behavior_context_ reached through getBehaviorContext(). Every
behavior in this package uses shared_resources_, so colcon build failed in
create_interface_value.cpp and create_dynamic_interface_group_values.cpp no
matter what a PR touched. main last saw green CI on 2026-05-08, and
feat/get-joint-limits fails the same way.

Pin to 9.4.1, the newest release (9.4.2 / 9.5.0 / 10.0.0 images do not exist
yet), which still has shared_resources_ - confirmed against Pro's v9.4 branch.
The workflow_dispatch override still works, so a 10.0 image can be tried on
demand. Bump this when the package migrates to getBehaviorContext().

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@WillYingling
WillYingling requested a review from nbbrooks August 19, 2026 19:37
@WillYingling
WillYingling marked this pull request as ready for review August 19, 2026 19:39
@nbbrooks

Copy link
Copy Markdown
Member

@coderabbitai fresh review

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

@nbbrooks: I will perform a fresh review of PR #16.

✅ Action performed

Full review finished.

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e6b13942-8f4d-4fc3-a990-161edfe527e4

📥 Commits

Reviewing files that changed from the base of the PR and between 7b8cad3 and ae13207.

📒 Files selected for processing (3)
  • .github/workflows/CI.yaml
  • CMakeLists.txt
  • package.xml

Included review availability: 9 reviews are currently available. Your included PR review attempts over the past 7 days set your current allowance at 10 reviews per hour.


📝 Walkthrough

Summary by CodeRabbit

  • Chores
    • Updated integration testing to use the pinned MoveIt Pro image version 9.4.1 by default.
    • Updated package configuration to use MoveIt Pro packaging and build dependencies.
    • Revised behavior plugin references to align with MoveIt Pro terminology.

Walkthrough

Changes

MoveIt Pro migration

Layer / File(s) Summary
MoveIt Pro package integration
CMakeLists.txt, package.xml
Build configuration and package metadata now use moveit_pro_package. The plugin export comment references moveit_pro_behavior.
Pinned CI image selection
.github/workflows/CI.yaml
Integration tests use the optional image_tag input or default to image tag 9.4.1 instead of selecting a tag from the branch or pull request base.

Possibly related issues

  • PickNikRobotics/moveit_pro#20853 — The package dependency change aligns with the planned removal of the moveit_studio_common shim.

Suggested reviewers: nbbrooks

Merge Risk: ⚪ Minimal · up to ae132

The PR updates the package to the supported build macros and pins CI to a verified release image; the reported build and test checks pass, so no actionable merge-blocking risk remains beyond normal review.

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Description check ✅ Passed The description directly explains the package migration, dependency changes, CI image pinning, and verification results.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Human Review Check ✅ Passed The PR changes one existing CI image tag and keeps the same runner and jobs; no evidence shows increased hosting or runner costs, public API changes, or core behavior changes.

Comment @coderabbitai help to get the list of available commands.

@nbbrooks nbbrooks left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once v10 is released we will need to explore a branch versioning strategy.

@WillYingling
WillYingling merged commit 250b674 into main Aug 20, 2026
9 checks passed
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