Catch2 icon indicating copy to clipboard operation
Catch2 copied to clipboard

add versioning to shared libs

Open jonathanspw opened this issue 1 year ago • 5 comments

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.

jonathanspw avatar Sep 08 '22 19:09 jonathanspw

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           

codecov[bot] avatar Sep 08 '22 20:09 codecov[bot]

ABI stability: NOPE API stability: semver (modulo bugs and Hyrum's law)

horenmar avatar Sep 09 '22 10:09 horenmar

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.

dimztimz avatar Sep 14 '22 13:09 dimztimz

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?

jonathanspw avatar Sep 14 '22 20:09 jonathanspw

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.

horenmar avatar Sep 16 '22 22:09 horenmar

Thanks for the tweaks and getting this merged!

jonathanspw avatar Oct 04 '22 14:10 jonathanspw