Package Matrix¶
Status: local packaging hardening surface for the v0.2.0-alpha.0 candidate
line. This matrix documents what can be built and installed locally; it does not
publish a vcpkg port, Conan recipe, PyPI package, system package, or GitHub
Release artifact.
Supported local package forms¶
| Form | Command / target | Evidence gate | Publication status |
|---|---|---|---|
| Runtime-only CMake install | TOPOEXEC_BUILD_YAML=OFF, TOPOEXEC_BUILD_CLI=OFF, TOPOEXEC_BUILD_EXAMPLES=OFF, TOPOEXEC_BUILD_TESTING=OFF |
cmake_runtime_only_options_smoke |
Local only |
| Default source build | cmake -S . -B build -DCMAKE_BUILD_TYPE=RelWithDebInfo |
./scripts/agent_check.sh |
Local only |
| Installed runtime consumer | find_package(topoexec CONFIG REQUIRED) + topoexec::runtime |
cmake_package_runtime_smoke |
Local only |
| YAML/CLI consumer | find_package(topoexec CONFIG REQUIRED COMPONENTS yaml cli) |
package smoke + CLI golden checks | Local only |
| CPack binary/source TGZ | cpack -G TGZ --config build/CPackConfig.cmake and source config |
cmake_cpack_smoke |
Local artifact only |
| Release candidate bundle | ./scripts/release_prepare.sh --version v0.2.0-alpha.0 |
./scripts/goal_check.sh release for dry-run smoke; full script on a clean exact commit |
Human release-owner action only |
| vcpkg draft | packaging/vcpkg/ |
package_draft_smoke |
Draft, not submitted |
| Conan draft | packaging/conan/ |
package_draft_smoke |
Draft, not uploaded |
Dependency boundary by option¶
| Surface | Runtime dependency impact | Package target |
|---|---|---|
topoexec::runtime |
C++20 library only; no YAML, CLI, adapter, Python, or plugin-loader dependency. | Always installed |
topoexec::yaml |
Adds yaml-cpp and nlohmann_json only when YAML is enabled/requested. |
Optional default-on target |
topoexec::topoexec_cli |
Adds CLI11 and YAML/JSON tooling only when CLI is enabled. |
Optional default-on executable target |
topoexec::adapter_sdk |
Header-only dependency-free boundary over runtime observer/result concepts. | Always installed |
topoexec::c_api |
Optional ABI-version-0 preview, default off. | TOPOEXEC_BUILD_C_API=ON |
topoexec::plugin_loader |
Optional trusted-native dynamic-loader preview, default off. | TOPOEXEC_BUILD_PLUGIN_LOADER=ON |
topoexec_adapters::otel / prometheus / ros2 |
Optional dependency-free preview mappings/fake boundary only; no production SDKs. | Adapter options default off |
topoexec_preview |
Optional stdlib-only CLI-backed Python automation preview, not native bindings. | TOPOEXEC_BUILD_PYTHON_PREVIEW=ON |
The CMake option names that define the local package matrix are:
TOPOEXEC_BUILD_YAML
TOPOEXEC_BUILD_CLI
TOPOEXEC_BUILD_EXAMPLES
TOPOEXEC_BUILD_TESTING
TOPOEXEC_BUILD_C_API
TOPOEXEC_BUILD_PYTHON_PREVIEW
TOPOEXEC_BUILD_PLUGIN_LOADER
TOPOEXEC_BUILD_OTEL_ADAPTER
TOPOEXEC_BUILD_PROMETHEUS_ADAPTER
TOPOEXEC_BUILD_ROS2_ADAPTER
Required local checks¶
For package/distribution changes, run:
./scripts/goal_check.sh package
./scripts/goal_check.sh release
./scripts/goal_check.sh compat
Before a human release-owner tag, also run the release runbook on the exact candidate commit. Local dirty-worktree dry runs are only rehearsal evidence.
Registry publication blockers¶
Package registry publication remains deferred until a human release owner opens that scope with exact artifacts and credentials. Before publishing any registry entry, record:
- exact release tag and immutable archive URL;
- checksum updates for vcpkg/Conan/package manager manifests;
- clean-machine install evidence for runtime-only, YAML, CLI, and optional preview profiles;
- owner decision on whether CLI/Python preview ship in library recipes or separate tool packages;
- rollback/fix-forward policy if a package is wrong.