Skip to content

case109 โ€” experimental โ†’ stable graduation (compatible)

Field Value
Verdict ๐ŸŸข COMPATIBLE
Category Addition (Compatible)
Platforms Linux, macOS, Windows
Flags โ€”
Detected ChangeKinds experimental_graduated, func_added
Source files browse on GitHub

What this case demonstrates

A template / header-only library publishes a feature first under an experimental:: namespace and later promotes it to the stable lib:: namespace, keeping the experimental alias as a friendly forward.

v1 declares v2 declares
lib::experimental::sort lib::sort and lib::experimental::sort

Why abicheck fires

Without the dedicated detector the diff is just a func_added for lib::sort โ€” a silent compatible change that gives no hint that the library is signaling readiness for migration.

EXPERIMENTAL_GRADUATED makes the migration event visible: reviewers see that consumers can now move from the experimental spelling to the stable one without code change.

Expected verdict

COMPATIBLE โ€” the experimental name is preserved, so existing consumers keep compiling and the addition of the stable name is purely additive.


Source files

See also: Examples overview ยท All COMPATIBLE cases ยท Category: Addition (Compatible).