vyasr commented on issue #41679:
URL: https://github.com/apache/arrow/issues/41679#issuecomment-2118498277

   This will be review for most people discussing here, but just wanted to 
summarize explicitly to make sure we're clear and all on the same page:
   
   ### Status quo
   - `SOVERSION=${MAJOR}${MINOR}` (so version 16.1.0 produces libarrow.so.1601, 
while version 16.0.1 produces libarrow.so.1600)
   - Patch versions are promised to be ABI-compatible (but this is not 
explicitly verified in any way)
   - Minor versions are not promised to be ABI-compatible
   
   ### Conservative solution
   - `SOVERSION=${MAJOR}${MINOR}${PATCH}` (so version 16.1.0 produces 
libarrow.so.160100, while version 16.0.1 produces libarrow.so.160001)
   - Assumes a completely unstable ABI
   - Might be the most strictly accurate claim at the moment
   - Would be quite painful for consumers
   
   ### Desired state
   - `SOVERSION=${MAJOR}` (so version 16.1.0 and version 16.0.1 produce 
libarrow.so.16)
   - Both minor and patch versions are promised to be ABI-compatible
   - This may not be possible for arrow right now.
   
   ### Summary
   If minor or patch releases can break ABI, then the SOVERSION must reflect 
that so that libraries built against libarrow have the appropriate requirements 
baked into the executable (e.g. DT_NEEDED entries in ELF files). Downstream of 
the library, packaging metadata (in particular, conda metadata as is being 
discussed in https://github.com/conda-forge/arrow-cpp-feedstock/pull/1409) must 
account for this by setting runtime dependencies of dependents of libarrow to 
account for the right version of libarrow at runtime. Making a decision on 
https://github.com/apache/arrow/issues/41707 (i.e. clarifying the intended 
stability promises) is the first thing to be done, then we can work on updating 
packaging files.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to