[BUG] Stop allowing floating arrow along minor versions #15754
Description
Describe the bug
Currently the logic for finding libarrow searches for a libarrow with the name libarrow.so.${MAJOR_VERSION}00
. The code states that this is because the last two digits are always just 00
, regardless of minor version. However, prior to now we have never seen a minor version of pyarrow, only patch versions and major versions. Therefore, this logic was probably never quite right, but it was based on the only data we had to go on at the time. With the recent release of pyarrow 16.1, we know that this logic is incorrect and need to adjust accordingly.
Moreover, previously we believed that it would be possible to interchange different minor versions of the arrow library within the same major family. Since the SONAME of the library changed with the minor version, though, that does not seem to be the case. As a result, we will have to pin the runtime dependency of arrow to stick to the current minor version.
Expected behavior
We should adjust the logic to search for the library according to the proper SOVERSION as constructed by arrow, which means adding in the two-digit padded minor version to the major version.