[FeatureRequest] Is it possible to skip argument checking in include_launch_description
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 155
- Forks
- 182
- Avg merge
- 2d 14h
- Merged PRs (30d)
- 6
Description
Feature request
Feature description
I would hope to add an argument to skip the argument checking in actions/include_launch_description.py .
Background
include_launch_descriptionnow searches exhaustively for all declared arguments inside a launch file and all of the included files inside it.- For a huge launch system like the one I am testing, the function will search through all the included files (regardless it is included or not by
<group if=false/true>) to check argument validity. But when we go onto the process of the subfiles, the function will again search through all the sub-subfiles. Which essentially leads to a search complexity of at least $O(n^2)$. - More importantly, the search itself is a standalone part of codes that only reports errors but does not contribute to the launch process.
- Without argument checking in
include, eachdeclare_launch_arugmentwill also cleanly throw out an error and cleanly terminate the program when the value is not provided. - The launching process of other parts of the code is now $O(n)$ and more manageable for large system.
Implementation considerations
Experiment: Completely Eliminate the Argument Checking in include_launch_description
Locally I have conducted this experiment.
Commenting out Line 163 - 177.
- Launching with correct arguments: I observed a significant boost of speed in launching our repo.
- Launching with in-complete arguments: the launch will fire up some of the corrected packages in the order of the launch file ->
declare_launch_arugmentthrows error messages about the lack of required argument -> everything quit cleanly including the launched nodes.
Pros: easy to implement and fast.
Cons: Some users may expect the launch system to quit directly before launching up any nodes.
Personal Considerations
I hope this could at least become an optional mechanism by adding arguments to the launch command.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in launch/launch/actions/include_launch_description.py at the argument-checking code around lines 163–177. Investigate how an optional skip mechanism would affect nested launch files and incomplete arguments, then verify behavior with both complete and incomplete arguments; done means the choice is available without breaking normal validation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100