feat: add offline launch migration verifier - #1075
Draft
jaagut wants to merge 8 commits into
Draft
Conversation
…ib/better_launch subrepo: subdir: "src/lib/better_launch" merged: "99aea1704" upstream: origin: "https://github.com/dfki-ric/better_launch.git" branch: "main" commit: "99aea1704" git-subrepo: version: "0.4.9" origin: "https://github.com/ingydotnet/git-subrepo" commit: "ea10886"
Ports all bitbots launch files (XML .launch and the existing ROS2 python .launch.py files) to better_launch, replacing the ROS2 launch system entirely. Old launch files are removed; new ones keep the same name with a .launch.py extension and preserve all original arguments, conditionals, includes, and node configuration. Also: - Reorganizes pixi.toml: moves the 5 new better_launch pypi deps (click, docstring_parser, osrf_pycommon, prompt_toolkit, setproctitle) into their alphabetical spots with a comment on why each was added. - Updates setup.py launch-file globs (*.launch -> *.launch.py). - Updates scripts/ros.plugin.sh (rl alias) and scripts/deploy/tasks/launch.py to use the new `bl` CLI instead of `ros2 launch`. - Updates docs referencing `ros2 launch` commands. Packages under src/lib/ are left untouched; their existing ROS2 launch files are included transparently via bl.include(). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Preserve the existing PR commits and better_launch migration while bringing in current main. Carry upstream launch settings into the converted Python launch files and regenerate the lockfile for the combined dependencies. Keep the PR calibration values and kick communication rate where both branches changed the same settings. Retain upstream DSD changes, which already include the PR behavior changes.
Capture native ROS launch and better-launch instructions before process execution in contained workers. Compare finite input matrices with conservative default reduction, cached normalization, and grouped typed diffs. Report unsupported or missing evaluation inputs explicitly.
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.
The ROS launch to better-launch migration needs a way to compare resolved launch instructions without starting robot processes. This adds a disposable verifier that captures native process preparation, component load requests, timers, generated files, and nested launchers in Linux-contained workers, then produces typed, grouped diffs with reproducing inputs and source provenance.
The checker enumerates declared finite domains, merges only supported identical default bindings, and caches repeated process normalization. It does not perform general dependency-based subtree pruning or claim runtime equivalence. Missing resources, unknown executable-default node names, unsupported actions, and preparation failures remain explicit unresolved results. No launch files, imported libraries, or dependency declarations are changed by the verifier commit.
This draft is stacked on #1015 and targets
mainaccording to the repository instructions. The verifier itself is commit 544f8b4; the inherited migration changes should be reviewed in #1015.Validation:
pixi run -e default pytest -q scripts/launch_equivalence/tests— 19 passed, including native capture, typed parameters, include conversion, timers, components, nested launchers, and containment.pixi run -e default ruff check scripts/launch_equivalenceandpixi run -e default ruff format --check scripts/launch_equivalence— passed.Usage, input-domain format, report files, requirements, and coverage limits are documented in
scripts/launch_equivalence/README.md.