What
We should reorganize our repo to be easier to understand the viability of the headers and conform to other modules layout.
Proposed layout:
score/mw/lm
├── health_monitoring_lib
│ └── public_header.hpp <- visibility = ["//visibility:public"]
├── launch_manager
│ ├── component_one
│ │ ├── details
│ │ │ └── private.hpp <- visibility = ["//score/mw/lm/launch_manager/component_one:__subpackages__"]
│ │ └── internally_visible.hpp <- visibility = ["//score/mw/lm/launch_manager:__subpackages__"]
│ └── component_two
│ ├── details
│ │ └── private.hpp
│ └── internally_visible.hpp
└── lifecycle_client
└── public_header.hpp
Here component_two can use <component_one/internally_visible.hpp> but cannot use <component_one/details/private.hpp>
So the layout has the following rules:
<namespace>/<component>/*.hpp are public
<namespace>/<component>/<sub-component>*.hpp is public to the component
<namespace>/<component>/sub-component>/details/*.hpp is visible only to the sub-
- All *.cpp shall be along side the hpp file.
For ease of use we can use strip_include_path of <namespace>/<component>/<sub-component> units as these are not visible to the user and so stripping shouldn't confuse.
Acceptance Criteria (DoD)
Repo restructured to follow the proposed solution
How
No response
What
We should reorganize our repo to be easier to understand the viability of the headers and conform to other modules layout.
Proposed layout:
Here
component_twocan use<component_one/internally_visible.hpp>but cannot use<component_one/details/private.hpp>So the layout has the following rules:
<namespace>/<component>/*.hppare public<namespace>/<component>/<sub-component>*.hppis public to the component<namespace>/<component>/sub-component>/details/*.hppis visible only to the sub-For ease of use we can use strip_include_path of
<namespace>/<component>/<sub-component>units as these are not visible to the user and so stripping shouldn't confuse.Acceptance Criteria (DoD)
Repo restructured to follow the proposed solution
How
No response