Catch2
Catch2 copied to clipboard
add versioning to shared libs
I'm not sure what you have planned for ABI/API compatibility so versioning it to major.minor might be more appropriate than just major.
Codecov Report
Merging #2516 (6b690a6) into devel (32eae0e) will not change coverage. The diff coverage is
n/a
.
:exclamation: Current head 6b690a6 differs from pull request most recent head 18271b0. Consider uploading reports for the commit 18271b0 to get more accurate results
@@ Coverage Diff @@
## devel #2516 +/- ##
=======================================
Coverage 91.54% 91.54%
=======================================
Files 183 183
Lines 7561 7561
=======================================
Hits 6921 6921
Misses 640 640
ABI stability: NOPE API stability: semver (modulo bugs and Hyrum's law)
Becauase there is no ABI stability whatsoever, SOVERSION
should contain all three parts of the version i.e. SOVERSION
should be the same with PROJECT_VERSION
.
So even minor versions will potentially change ABI?
That's pretty contradictory to how most ABI versioning works. Can ABI stability be maintained within X.X releases so that x.x.X can be considered bugfix only, or at least non-breaking?
So even minor versions will potentially change ABI?
Yes. Catch2 is meant to be used as a static library. As such, it should not be installed globally and ABI stability is a non-concern.
For various reasons, we also support building it as a dynamic library, but there is a number of limitations to it, e.g. symbols are exported only implicitly. Providing ABI stability is a maintenance cost I am not willing to pay.
Thanks for the tweaks and getting this merged!