Michel Hidalgo
Michel Hidalgo
> Sounds fair, but how do you get the return code in the condition? Hmm. Didn't put a lot of thought to it. Temporarily pushing it to `context.locals` is one...
> I would rather let the user pass a callback which takes the return code as its only argument. Right, but that'd make it impossible to leverage the feature from...
@lukicdarkoo will you be moving forward with this?
@lukicdarkoo friendly ping
Thing is that while `launch` logs go through the `logging` module, `rclcpp` and `rclpy` logs go through `rcl` logging (typically `spdlog`). Logging directories indeed do not match, as seen [here](https://github.com/ros2/launch/blob/edcca09e4f80278d1a76e9c30eefbeeece5b33fd/launch/launch/logging/__init__.py#L123)...
This may be due to components having their own configuration separate from that of the container (see [here](https://github.com/ros2/rclcpp/blob/6cc89caa639bc3f5ef543cf7440dafec588dab05/rclcpp_components/src/component_manager.cpp#L150-L171)). https://github.com/ros2/rclcpp/issues/978 is tracking that limitation, though I haven't got around to do...
@joncppl thanks for reporting. I agree that `ExecuteProcess` could do a better job at cleaning things up. Having said that, this is Python code. It may take a good while...
There's a bit of an issue with this change. We're essentially forcing shell-like parsing on otherwise plain command line arguments. And thus, something like `cmd=['ls', 'my/subdir/with spaces/']` would stop working...
~We should probably also support a single string then e.g. `cmd='ls "my/subdir/with spaces/"'`. WDYT?~ That's the original suggestion, nvm.
@fred-apex-ai see [this `rcl` launch test](https://github.com/ros2/rcl/blob/80efa3fa0861da45c1f81622763d06fc1f76f129/rcl/test/rcl/test_two_executables.py.in#L42) for an example on how to wait for fixture processes to end. Note that `launch_testing` won't terminate them gracefully for you if these don't...