Add a New Component

Contributor workflow for Sharp Runtime module ownership, CMake registration, tests and validation.

AdvancedTutorial

1. Create one owner

Place public headers, sources and component tests under one modules/<module>/{include,src,tests} tree with its CMakeLists.

2. Register metadata

Add the directory once in cmake/SharpRuntimeModules.cmake. Register the target as STATIC or INTERFACE and declare public, private and test-only component edges at the narrowest correct visibility.

3. Validate boundaries

python3 scripts/validate_module_boundaries.py
python3 test/validate_module_boundaries_test.py
python3 scripts/generate_component_catalog.py --check

4. Add consumer evidence

Add or update a positive selective fixture for meaningful public use. Add negative fixtures when private or sibling headers must stay inaccessible.

5. Run gates

scripts/check_selective_components.sh
scripts/local_ci_check.sh build
Do not solve cycles with umbrellas

Internal production targets should not depend on Core, Collections or All compatibility umbrellas. Revisit ownership or isolate the optional behavior.