Dependency, Build, and CI Governance
This document defines provider-sim policy for dependencies, CI lane tiers, presets, and cross-repo compatibility.
vcpkg Policy
vcpkg-configuration.jsonis the baseline source of truth.- Lockfile pinning is deferred for now.
- Determinism is enforced via baseline pinning plus reviewed
vcpkg.jsonchanges. - Windows builds use pinned MSVC/vcpkg ABI settings via
x64-windows-v143overlay triplet.
Python Dependency Policy
- CI installs from
requirements-lock.txt, not floatingrequirements.txt. requirements.txtdefines ranges for maintainers;requirements-lock.txtis the execution source in CI.- Lockfile updates must be committed in the same PR as dependency range changes.
Versioning Policy
anolis-provider-simfollows independent SemVer (MAJOR.MINOR.PATCH).- Provider public behavior/build-surface changes require version-bump decision and release note.
- Compatibility with runtime is tracked in
anolis/.ci/compatibility-matrix.yml.
CI Lane Tiers
- Required:
- Linux release (
fluxgraph OFF) - Windows release (
fluxgraph OFF) - Linux release (
fluxgraph ON) - Windows release (
fluxgraph ON, build validation)
- Linux release (
- Nightly/optional:
- heavy sanitizer/stress lanes
Dual-Run Policy
During migration to presets/new CI paths:
- run legacy and new paths in parallel,
- minimum 5 consecutive green runs,
- preferred 10 runs before legacy path removal.
Preset Baseline and Exception Policy
Baseline names:
dev-debug,dev-release,ci-linux-release,ci-windows-release- feature extension lanes:
ci-linux-release-fluxgraph,ci-windows-release-fluxgraph
Rules:
- CI jobs should call presets directly.
- CI-only deviations must be explicit and documented.
- Feature-specific extension presets are allowed when documented.
- Every preset must have an active owner/use-case (CI lane, script default, or documented workflow); remove unreferenced presets.
Contributor quick check:
cmake --list-presets
ctest --list-presets
On Windows local development, use dev-windows-* presets.
Cross-Repo Coupling Policy
anolis-protocolis consumed as pinned submodule.- FluxGraph integration remains explicit opt-in (
ENABLE_FLUXGRAPH,FLUXGRAPH_DIR). - No hidden network dependency resolution in normal configure paths.
- FluxGraph CI lanes currently consume floating
mainfrom.ci/dependency-pins.ymlby explicit development policy. - Reproducibility is intentionally relaxed for this lane; each FluxGraph CI lane logs the resolved checked-out SHA.
- Revisit immutable FluxGraph SHA pinning before release hardening.