Skip to content

Compatibility evidence

Tess uses several independent evidence layers for the 1.x source-compatibility contract. No repository-maintained parser attempts to model C++ declarations, lookup, overload resolution, aggregate rules, or preprocessing semantics.

Compatibility snapshots provide mechanical, append-only evidence at RC1 and each stable minor release. They record:

  • stable and optional-stable header membership;
  • direct stable-aggregate includes;
  • documented public namespace-scope and TESS_* macro names per header;
  • one canonical installed-package consumer project with distinct source and archive-loader executables; and
  • archive format v2 fixtures with strict producer and schema metadata.

The snapshot checker confines portable POSIX-relative paths to their snapshot, requires the canonical CMake project byte-for-byte, and compares released snapshots with their release tags. Per-header name inventories are inexpensive removal tripwires; they are not a semantic representation of the C++ API.

Compiled immutable consumers carry the source-level evidence for signatures, defaults, fields, overload resolution, aggregate initialization, and supported macro configurations. Installed-package and optional-integration builds, the supported toolchain matrix, archive loads, and release review provide the remaining evidence. The current compatibility promises and exclusions are in the support policy.