Add a New Component
Contributor workflow for Sharp Runtime module ownership, CMake registration, tests and validation.
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 buildDo 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.