Config Keys Reference
Every .abicheck.yml top-level key and block sub-key that abicheck.buildsource.build_config.BuildConfig itself validates, with its exact required YAML type — generated directly from BuildConfig's strict-schema registries (an unknown key or a wrong-typed value is a hard error). "Other recognized top-level keys" below are also accepted but parsed by a sibling module instead, so no type is claimed for them here. See Config File Reference for effective defaults, CLI-override precedence, and a worked example; this page is the exhaustive key/type list for BuildConfig's own schema only.
Blocks
assurance:
| Sub-key |
Type |
require_complete |
bool |
build:
| Sub-key |
Type |
compile_db |
str |
compile_db_filter |
str |
query |
str |
system |
str |
targets |
list[str] (or a single str) |
bundle:
| Sub-key |
Type |
cohorts |
list[str] (or a single str) |
system_providers |
list[str] (or a single str) |
compile:
| Sub-key |
Type |
allow_unsupported_castxml |
bool |
ast_frontend_fallback |
bool |
compiler |
str |
defines |
list[str] (or a single str) |
frontend |
str |
frontend_context |
str |
include_dirs |
list[str] (or a single str) |
lang |
str |
nostdinc |
bool |
options |
list[str] (or a single str) |
std |
str |
sysroot |
str |
debug:
| Sub-key |
Type |
debuginfod |
bool |
debuginfod_url |
str |
dwarf_only |
bool |
format |
str |
pdb_path |
str |
gate:
| Sub-key |
Type |
fail_on_removed_library |
bool |
policy:
| Sub-key |
Type |
overrides |
mapping[str, str] |
python:
| Sub-key |
Type |
abi3_floor |
str |
release:
| Sub-key |
Type |
dso_only |
bool |
include_private_dso |
bool |
support_promise |
str |
resource_limits:
| Sub-key |
Type |
max_bundle_facts_decode_nodes |
int |
scope:
| Sub-key |
Type |
collapse_versioned_symbols |
bool |
dependencies |
list[{name: str, header_roots: list[str]}] |
dependency_evidence |
str ('full') |
exclude_headers |
list[str] (or a single str) |
on_incomplete |
str |
private_headers |
list[str] (or a single str) |
private_namespaces |
list[str] (or a single str) |
public |
bool |
public_header_dirs |
list[str] (or a single str) |
public_symbols |
list[str] (or a single str) |
show_redundant |
bool |
severity:
| Sub-key |
Type |
abi_breaking |
str |
addition |
str |
potential_breaking |
str |
preset |
str |
quality_issues |
str |
source:
sources:
| Sub-key |
Type |
exclude |
list[str] (or a single str) |
graph |
str |
public_headers |
list[str] (or a single str) |
suppression:
| Sub-key |
Type |
require_justification |
bool |
strict |
bool |
Top-level scalar keys
Nested config blocks (parsed via a shared value type)
Parsed by BuildConfig itself, but each embeds a richer, independently-owned value type's own YAML shape wholesale instead of a flat scalar/list subkey set, so it has no row in the ## Blocks tables above:
deployment:
Embeds abicheck.environment_matrix.EnvironmentMatrix's own YAML shape wholesale (compilers, abi_version, libstdcxx_dual_abi, runtime_floors — a mapping of ELF version-node prefix to declared floor version — sycl:, cuda:, target_os, target_arch), parsed via EnvironmentMatrix.from_dict. See that module's own docstring for the exact shape and Environment & Toolchain Drift for the worked example. The former compare --env-matrix FILE flag.
Other recognized top-level keys
Recognized (so they don't trigger the unknown-key warning) but parsed by a sibling module rather than BuildConfig itself — see abicheck/buildsource/CLAUDE.md's module map for which one:
acknowledgment
aggregate
baseline
bundle_variants
bundles
contract
crosschecks
profiles
risk_rules
targets