Skip to content

Conversation

@nitbharambe
Copy link
Member

Idea is to make components forward declared to reduce coupling.

This draft PR is created for gathering thoughts and requirements as of now.

Changes proposed in this PR include:

  • Forward declared all components
  • Removed unecessary exception and logging includes.

Signed-off-by: Nitish Bharambe <[email protected]>
@nitbharambe nitbharambe self-assigned this Sep 29, 2025
@nitbharambe nitbharambe added the improvement Improvement on internal implementation label Sep 29, 2025
@figueroa1395
Copy link
Member

I like the cleanup. Now I wonder, should we move all_components.hpp to the component folder? Also seems intuitive to me to rename component.hpp to all_components_fwd.hpp, or somehow homogenize the two.

In addition, can we also include component_list in this "revolution"? Perhaps it now belongs in component.hpp and we try to keep all component related stuff in one location only.

Signed-off-by: Nitish Bharambe <[email protected]>
Signed-off-by: Nitish Bharambe <[email protected]>
Signed-off-by: Nitish Bharambe <[email protected]>
Signed-off-by: Nitish Bharambe <[email protected]>
Signed-off-by: Nitish Bharambe <[email protected]>
@sonarqubecloud
Copy link

@nitbharambe nitbharambe marked this pull request as ready for review January 7, 2026 13:32
@sonarqubecloud
Copy link

sonarqubecloud bot commented Jan 7, 2026

Copy link
Member

@figueroa1395 figueroa1395 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One additional thing is that perhaps #1142 (comment) is still relevant. Also, maybe triggering Copilot for review might be useful since missing things for a human due to the nature of this PR is very easy.

Rest looks good, just minor questions.


WarningsAsErrors: '*'

IgnoreHeaders: 'Eigen/.*'
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm curious. Why was this necessary? If I understand correctly, this prevents clang-tidy from inserting/removing headers in our Eigen dependency?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We would not want eigen to check includes missing within the Eigen library. It is an option only for misc-include-cleaner.

https://clang.llvm.org/extra/clang-tidy/checks/misc/include-cleaner.html

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but what you're doing now is a global configuration, not a configuration for misc-include-cleaner only

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The option name indeed sounded very generic.
But this option is placed under the include cleaner as per https://clang.llvm.org/extra/clang-tidy/checks/misc/include-cleaner.html.
I think it applies to only the include-cleaner because:

Copy link
Member

@mgovers mgovers Jan 9, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The correct syntax for only configuring for a single check is

CheckOptions:
  - key: misc-include-cleaner.IgnoreHeaders
    value: 'Eigen/.*'

Configuring globally is bad practice and even dangerous in the future

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

improvement Improvement on internal implementation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants