Submodules Visibility¶
How open-deploy-ws decides which nested submodules to init.
Source of truth
submodules_visibility.conf and ./init_repo.sh. Format is pipe-separated, not INI.
Format¶
Each data line: parent_dir|relative_path|public or private. Blank lines and # comments are ignored.
From the current file (examples, not the full list):
src/robot-descriptions|common|public
src/robot-descriptions|manipulator/Dobot|public
src/robot-descriptions|manipulator/ARX|public
src/robot-descriptions|manipulator/Tianji|private
src/arms_ros2_control|controller/ocs2_wbc_controller|private
src/arms_ros2_control|libraries/ocs2_humanoid|private
src/arms_ros2_control|libraries/lina_planning|private
Hardware-interface nested lines in that file are commented out (they are not active visibility rows).
What ./init_repo.sh does¶
From the open-deploy-ws README:
Nested visibility:
public(external) orprivate(needs internal GitHub access). This only affects nested modules inside each repo.Core module mode: per module
d(GitHub Release.deb) ors(source). Top-levelocs2_ros2,arms_ros2_control, androbot-descriptions/commonare initialized when you pick source.
Then the script inits nested modules according to visibility (skipped if the parent or common is deb), checks out configured branches, runs rosdep on source paths, and installs chosen debs.
Do not git submodule update --init --recursive as the primary path.
Public vs private (this file)¶
Nested path (examples) |
Visibility |
|---|---|
|
|
|
|
|
|
If you need private nested modules, use a workspace/README that documents private access (fa-deploy-ws). Extra flags for that workspace are in its README after access.
Adding a nested submodule (contributors)¶
Add it to the parent
.gitmodules(Git INI).Add one pipe line to
submodules_visibility.conf.Test with
./init_repo.shon a clean clone.