CNA-BUG-056: docs/c-api/FEATURE_MATRIX.md and docs/c-api/README.md still present the C ABI as version 0.1.0 while abi.h declares 0.29.0

CNA snapshot 009d40f5  ·  Known Issues › Current bugs  ·  source links pinned to 009d40f5

✓

Evidence basis: source-verified at the pinned commit; tests exist (not executed for this page). Claims on this page were checked by reading the CNA source at commit 009d40f5; unless a sentence says otherwise, nothing here was built or executed. Nothing on this page was executed unless the Evidence section says so.

The release gate now reads its ABI label from abi.h, but the C API feature matrix is titled '0.1 Feature Matrix' with an ABI row of 'Experimental version 0.1.0', and the C API README describes the library as 0.1.0.

Identifier
CNA-BUG-056
Category
Bug
Subsystem
Documentation & release tooling
Status
Narrowed (partially fixed; describes only what survives)
Verified against
CNA 009d40f5 (009d40f5dd085c4e674d3479675fac84b12b3e0a)
Severity
Low (a triage suggestion, not a project priority)
Evidence basis
Source-verified: read at TARGET, not executed
Tests touching this area
Yes: see Current tests
Affected contract
cna_get_abi_version and the ABI identity declared in CNA/C/abi.h (CNA_ABI_VERSION_MAJOR / MINOR / PATCH), as documented under docs/c-api

Expected behaviour

The C ABI version is declared once, in CNA/C/abi.h (0.29.0 at TARGET), and ABI_VERSIONING.md, RELEASE_GATE.md and tools/c-api/abi_baseline.json agree. The product version (0.1.0-alpha.1) and the C ABI version are independent, so a C API document that names an ABI version must name the current one or say that it is history.

Actual behaviour at TARGET

docs/c-api/FEATURE_MATRIX.md is titled "CNA C API 0.1 Feature Matrix", says it "describes the implemented experimental 0.1.0 C ABI", gives the ABI row as "Encoded ABI query through cna_get_abi_version - Experimental version 0.1.0", and has a section "Intentionally unavailable in 0.1". The document is otherwise maintained: it lists routes added long after 0.1.0, up to the CNB bindings. docs/c-api/README.md opens with "Its initial 0.1.0 shared library and public C17 headers provide ..." followed by today's surface. A reader comparing cna_get_abi_version's answer with these documents finds 0.29.0 against 0.1.0, the product-versus-ABI confusion the versioning contract warns about.

Source locations

Evidence

Checked by reading at 009d40f5; not executed. Fixed since this was first reported: the release gate no longer carries a literal version. check_release_gate.py reads the three macros from abi.h (abi_version()) and refuses a release-name template without {abi_version} (release_name(), CBIND-115); tools/c-api/release_gate.json keeps only the template; docs/c-api/RELEASE_GATE.md reads "CNA C ABI 0.29.0, experimental"; the CApiReleaseGate CTest and c-api-release-gate.yml run --check. None of that reads FEATURE_MATRIX.md or README.md.

Focused reproduction

No focused reproduction is known. Nothing has been invented here; the evidence above is what exists.

Current tests

CApiReleaseGate and CApiDocExportCounts (both in cmake/Tests/ModuleProbes.cmake) guard the release record and export counts; no check compares an ABI version named in docs/c-api/*.md with abi.h.

Regression test

A documentation check, next to CApiDocExportCounts, that reads the version from abi.h the way check_release_gate.py already does and fails when a docs/c-api page names a different present-tense ABI version; version-history sections may name older versions explicitly.

Blast radius

C API documentation only. The library reports 0.29.0, and the ABI baseline, release gate and versioning history are correct.

Workaround

Query cna_get_abi_version or read CNA/C/abi.h; use ABI_VERSIONING.md for the history.

The same subject is explained at several altitudes. These are the neighbouring pages at each one.

Known issues
Bug index