Dependency, Build, and CI Governance
This document defines FluxGraph policy for dependency management, preset usage, CI lanes, and versioning.
vcpkg Policy
vcpkg-configuration.jsonis the canonical baseline source.builtin-baselineis not used.- Lockfile pinning is deferred for now; baseline pinning stays in
vcpkg-configuration.json.
Dependency Model Policy
- Governed dependencies are resolved via vcpkg +
find_package(...). - Optional loader behavior is controlled by
FLUXGRAPH_JSON_ENABLEDandFLUXGRAPH_YAML_ENABLED. - Dependency transport changes must not regress OFF/ON loader build combinations.
Python Dependency Policy
- CI installs Python integration dependencies from
requirements-lock.txt. requirements.txtremains a maintainer-facing range file; lockfile is execution source.- Lockfile and range updates must be reviewed together in the same PR.
Versioning Policy
- FluxGraph follows independent SemVer (
MAJOR.MINOR.PATCH). - Public API, schema, or build-surface changes require version-bump decision and changelog note.
CI Lane Tiers
- Required: Linux core build/test lane, Linux diagram-dot lane, Windows core build/test lane, Windows diagram-dot lane, and diagram render smoke lane.
- Advisory/matrix: Linux JSON, YAML, and server-enabled lanes.
- Optional heavy lanes: extended sanitizer/stress/integration runs.
Preset Baseline and Exception Policy
Baseline names:
dev-debug,dev-release,ci-linux-release,ci-windows-release- specialized as supported:
ci-asan,ci-ubsan,ci-tsan,ci-coverage
Rules:
- CI should call presets directly.
- CI-only deviations must be explicit and documented.
- Repo-specific extension presets are allowed for feature matrices.
- Every preset must have an active owner/use-case (CI lane, script default, or documented workflow); remove unreferenced presets.
Dual-Run Policy
During migration of legacy paths:
- run legacy and new paths in parallel,
- minimum 5 consecutive green runs,
- preferred 10 runs before removing legacy paths.