Skip to content

refactor(headers): organize public API by domain - #121

Merged
LimiNode merged 6 commits into
mainfrom
refactor/domain-organize-public-headers
Sep 11, 2026
Merged

refactor(headers): organize public API by domain#121
LimiNode merged 6 commits into
mainfrom
refactor/domain-organize-public-headers

Conversation

@LimiNode

@LimiNode LimiNode commented Sep 11, 2026

Copy link
Copy Markdown
Owner

Organize public headers into domain directories with umbrellas and compatibility forwarders. Add include-policy CTest coverage, update docs/examples/tests/CMake, and verify NTP-enabled and NTP-disabled installs.

Validation:

  • MinGW C++11 Debug, C++14 Debug, and C++17 Release each pass 64/64 tests.
  • NTP-enabled and NTP-disabled install consumers build successfully.
  • GitHub Actions: all 11 CI jobs passed on the latest head.
  • Doxygen generation was not run locally because Doxygen is unavailable.

Group public headers into core, conversions, text, datetime, timezone, astronomy, timers, and NTP domains. Add domain umbrellas and compatibility forwarding headers, update include dependencies and documentation, and enforce include policy in CTest.
Restore the DateTime compatibility path without a case-insensitive filename collision, isolate astronomy legacy aliases, and protect Windows headers from min/max macros. Enforce the domain dependency allow-list and compile each public umbrella independently in the test suite.
Reject cross-domain leaf includes and accidental self-umbrella includes while allowing domain umbrellas to include their own leaves. Keep compatibility and legacy forwarding headers outside the canonical dependency checks.
Enable the IN_LIST operator used by the standalone include-policy script on GitHub Actions and other CMake script-mode invocations.
Remove the redundant time_shield path component from project header guards while preserving unique path-derived names for compatibility and domain headers.
Remove the redundant time_shield path component from MQL5 compatibility header guards while preserving unique project-derived identifiers.
@LimiNode
LimiNode force-pushed the refactor/domain-organize-public-headers branch from 391ba49 to a6c19ec Compare September 11, 2026 14:05
@LimiNode
LimiNode merged commit 231bb8f into main Sep 11, 2026
11 checks passed
@LimiNode
LimiNode deleted the refactor/domain-organize-public-headers branch September 11, 2026 14:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant