Skip to content

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

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

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

  • CMakeLists.txt
  • app.cpp
  • v1.cpp
  • v1.h
  • v2.cpp
  • v2.h

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