From 431dcf36ea67dcd74a97957facc4daeb94eb5e8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Martin=20Ho=C5=99e=C5=88ovsk=C3=BD?= Date: Mon, 25 Apr 2022 18:58:50 +0200 Subject: [PATCH] Document Catch2's API/ABI stability policies --- docs/faq.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/faq.md b/docs/faq.md index a268802d..40ffcf05 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -1,6 +1,13 @@ # Frequently Asked Questions (FAQ) +**Contents**
+[How do I run global setup/teardown only if tests will be run?](#how-do-i-run-global-setupteardown-only-if-tests-will-be-run)
+[How do I clean up global state between running different tests?](#how-do-i-clean-up-global-state-between-running-different-tests)
+[Why cannot I derive from the built-in reporters?](#why-cannot-i-derive-from-the-built-in-reporters)
+[What is Catch2's ABI stability policy?](#what-is-catch2s-abi-stability-policy)
+[What is Catch2's API stability policy?](#what-is-catch2s-api-stability-policy)
+ ## How do I run global setup/teardown only if tests will be run? Write a custom [event listener](event-listeners.md#top) and place the @@ -22,6 +29,23 @@ forbidding users from using them as a base class, we can refactor them as needed later. +## What is Catch2's ABI stability policy? + +Catch2 provides no ABI stability guarantees whatsoever. Catch2 provides +rich C++ interface, and trying to freeze its ABI would take a lot of +pointless work. + +Catch2 is not designed to be distributed as dynamic library, and you +should really be able to compile everything with the same compiler binary. + + +## What is Catch2's API stability policy? + +Catch2 follows [semver](https://semver.org/) to the best of our ability. +This means that we will not knowingly make backwards-incompatible changes +without incrementing the major version number. + + --- [Home](Readme.md#top)