Release 2.1.168 (2026-08-04)¶
Features¶
-
per-kind CI-gate cardinality (#2559) Introduce a language-agnostic per-kind gate cardinality concept so a check kind can emit either one required check per version (the existing default) or a single check keyed to the primary version.
-
languages.py: add a Cardinality enum (PER_VERSION/ONCE) and a per-kind cardinality mapping on Language, defaulting to empty; add check_cardinality() resolving to PER_VERSION for any unknown/None/undeclared kind so the five existing languages are unchanged.
- github_config.desired_ci_gates_ruleset: emit once-kinds as a single gate keyed to ci.versions[0] and per-version kinds per version, preserving the exact ordering and naming of the existing output.
-
Tests: cardinality defaults and overrides; once-kind yields one gate while a coexisting per-version kind yields N; a parametrized snapshot pinning each of the five languages' generated gates byte-identical.
-
add cpp primary-language + [cpp] block (#2560) Add "cpp" to the primary-language enum and parse a new [cpp] block with single-string std and stdlib keys (epic vergil-project/.github#207 T4).
std/stdlib default to the v1 pins (c++20, libstdc++) when the block is absent. std accepts c++17/c++20/c++23 (a free build flag); stdlib accepts only libstdc++ since libc++ is on the spec deferral ledger, so a bogus or deferred value is rejected rather than silently dropped into the build.
Update repo-init menu-index tests for the new alphabetical language order (python shifts from index 3 to 4).
CI Evidence: All gates passed — full audit bundle available. Download →