Main use cases for COMPAT_VERSION of project() (in new CMake 4.1)

It’s unclear the main usage of this feature and potential use-cases. The most similar things I thought, was write_basic_package_version_file and their COMPATIBILITY ( AnyNewerVersion, SameMinor, SameMajor, ExactVersion)

CPS has a more comprehensive concept of compatibility than the enumerated set of options provided by write_basic_package_version_file(), namely here a minimum version back to which the artifact is fully backwards compatible. This might span multiple major versions, but not all.

COMPAT_VERSION is explicitly for CPS, it has no bearing on the CMakeConfig system or the mechanisms provided by <package>-config-version files that system uses.

oh, thanks, actually forgot about this CPS aspect, time to recheck the spec :slight_smile: