Skip to content

Support loading parameter files for all matching nodes - #1278

Open
sylvesterkaczmarek wants to merge 5 commits into
ros2:rollingfrom
sylvesterkaczmarek:feature-778-param-load-all-nodes
Open

Support loading parameter files for all matching nodes#1278
sylvesterkaczmarek wants to merge 5 commits into
ros2:rollingfrom
sylvesterkaczmarek:feature-778-param-load-all-nodes

Conversation

@sylvesterkaczmarek

@sylvesterkaczmarek sylvesterkaczmarek commented Aug 20, 2026

Copy link
Copy Markdown

Description

Allow ros2 param load PARAMETER_FILE to apply a parameter file to all currently running nodes matched by that file.

The existing ros2 param load NODE_NAME PARAMETER_FILE form is unchanged.

System-wide loading reuses rclpy.parameter.parameter_dict_from_yaml_file() per discovered node, so exact node entries, namespaces, and wildcard rules use the same matching behavior as normal parameter loading. The command also excludes its own temporary direct discovery node from wildcard targets.

Fixes #778.

Is this user-facing behavior change?

Yes. ros2 param load can now omit the node name to load a multi-node parameter file across matching running nodes.

Additional Information

Added focused coverage for the new one-positional CLI form, multi-node matching, unmatched nodes, and the no-match error path.

Did you use Generative AI?

Yes. AI was used to assist with tests.

Allow `ros2 param load PARAMETER_FILE` to apply a parameter file to every running node matched by its node and wildcard entries while preserving the existing node-specific form.

Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
@mergify

mergify Bot commented Aug 20, 2026

Copy link
Copy Markdown

Tick the box to add this pull request to the merge queue (same as @mergifyio queue).

  • Queue this pull request

Comment thread ros2param/ros2param/verb/load.py Outdated
Comment thread ros2param/ros2param/verb/load.py
Comment thread ros2param/test/test_load_all_nodes.py
@fujitatomoya

Copy link
Copy Markdown
Collaborator

DCO is missing.

Comment on lines +50 to +54
if sys.platform.startswith('win'):
pytest.skip(
'CLI tests can block for a pathological amount of time on Windows.',
allow_module_level=True,
)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

why?

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

You're right. There wasn't a repository-backed reason to exclude Windows here, so I removed the Windows-only module skip. The launch test now runs on all supported platforms.

Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
@sylvesterkaczmarek
sylvesterkaczmarek force-pushed the feature-778-param-load-all-nodes branch from 6c1bf9f to 120164e Compare August 30, 2026 19:26
Signed-off-by: Sylvester Kaczmarek <16242628+sylvesterkaczmarek@users.noreply.github.com>
@sylvesterkaczmarek
sylvesterkaczmarek force-pushed the feature-778-param-load-all-nodes branch from 8c7eb64 to cf229bf Compare August 30, 2026 19:29
@sylvesterkaczmarek

Copy link
Copy Markdown
Author

DCO is missing.

Thanks. Fixed now. I added matching Signed-off-by trailers to all follow-up commits, and the DCO check is green on the current head.

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.

No way to load a ros param file for all nodes

2 participants