-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
cmake helper function and tool to auto generate TreeNodeModel xml files for groot #4903
base: main
Are you sure you want to change the base?
Conversation
Use this to generate tree nodes file for opennav_docking_bt Signed-off-by: Mike Wake <[email protected]>
a751ee4
to
174bd73
Compare
This cmake function takes care of generating and installing TreeNodesModel xml file suitable for use by groot. Signed-off-by: Mike Wake <[email protected]> sq
174bd73
to
685dd25
Compare
@ewak, your PR has failed to build. Please check CI outputs and resolve issues. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some other thoughts:
I remember chatting about this back when the plugins list for BT Navigator had the libraries stored in a similar way (as you've found here) that we weren't sure how to automatically update the groot XML in source as might be necessary for use. That way, we don't need to manually manage it ever again, it automatically updates on commit / merge.
Or, a GitHub Action job runs to run this over and if it detects a problem it fails the job to make a human make the update for their violating PR. Verification is less ideal than automation, but verification is still very useful.
DESTINATION share/${PROJECT_NAME} | ||
) | ||
|
||
#NOTE: Still using manually managed nav2_tree_nodes.xml in source directory |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Should we though? If we removed this, what would be the workflow for using groot?
@@ -0,0 +1,28 @@ | |||
<root BTCPP_format="4"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the other Groot XML in the nav2_behavior_tree package not also needing an update?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. I did not touch the manually managed file yet. I will go all in.
I could can target the source directory location for the output of the generation. And then install it from there. My gut feeling is that the generated file should be the one that is installed and packaged and there should be a ctest to do a comparison between the generated file and one cached in the source directory. It can use I will play around with an option, something like, UPDATE_SRC_CACHE_PATH, to have the generation step go ahead and update the source file if its different. That way the developer gets a changed source file that they can choose when to commit. If they don't the ctest will catch them in CI.
Github Actions are a whole other thing to learn. I'll try out the ctest route. |
Basic Info
Description of contribution in a few bullet points
Description of documentation updates required from your changes
Description of how this change was tested
Future work that may be required in bullet points
For Maintainers: