Skip to content

Restructure Repository to Align with API #210

@MaciejKaszynski

Description

@MaciejKaszynski

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
├── health
│   ├── details
│   └── health_monitor.hpp <- <score/mw/health/health_monitor.hpp>
├── launch_manager
│   ├── other_component
│   │   ├── details
│   │   │   └── private.hpp
│   │   └── internally_visable.hpp
│   └── some_component
│       ├── details
│       │   └── private.hpp
│       └── internally_visable.hpp
└── lifecycle
    ├── control_client
    │   ├── control_client.cpp
    │   ├── control_client.hpp <- <score/mw/lifecycle/control_client.hpp>
    │   └── details
    └── lifecycle_client
        ├── details
        ├── lifecycle_client.cpp
        └── lifecycle_client.hpp <- <score/mw/lifecycle/lifecycle_client.hpp>

Note that some path striping is required for the lifecycle_client and control_client to not duplicate the path

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

Metadata

Metadata

Labels

No labels
No labels

Type

No fields configured for Task.

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions