Thanks for pointing out this issue. A few pointers on your proposal:

  *   On my opinion the hybrid approach is the most practical one. For our 
case, we compile from the source each release, but it might seem reasonable 
that patch releases maintain both ABI and API compatibility.
  *   To make sure API and ABI compatibility it would be good to write down the 
compatibility rules in the documentation (i.e: CONTRIBUTING.md)
  *   Regarding future changes, I agree that there are lots of virtual methods 
that might not need to be virtual and might be good to re-think the public API 
for the next major release to improve it.
  *   Also, a note on the fact that we are exporting more symbols than needed. 
For most cases that's done this way to be able to test some features.
So, I'd say both things are closely related and to reduce the exported symbols, 
as well as the number of virtual methods we might need to work on the testing 
approach.

BR/
Mario.
________________________________
From: Jacob Barrett <jabarr...@vmware.com>
Sent: Monday, February 1, 2021 4:34 PM
To: dev@geode.apache.org <dev@geode.apache.org>
Subject: Re: [Proposal] Geode Native Library Versioning


On Jan 29, 2021, at 3:47 PM, Dan Smith 
<dasm...@vmware.com<mailto:dasm...@vmware.com>> wrote:
 I do think at least implementing some automated checking for whatever 
compatibility we intend to provide is a good idea.

I have a branch with a test using Abigail [1]. This branch depends on merging 
of a CI branch. It was actually through this branch that it was clear we have 
not been good about preserving any ABI compatibility between releases. I also 
found that we are exporting more symbols than we should in our library. All 
these need to be addressed over time. Baby steps I supposed…

[1] https://sourceware.org/libabigail/

-Jake

Reply via email to