Ruby uses ABI Compliance Checker
https://lvc.github.io/abi-compliance-checker/
with a small script:

  https://github.com/ruby/chkbuild/blob/master/abi-checker.rb

There is the official Debian package for it:

  https://packages.debian.org/search?keywords=abi-compliance-checker

In <20c3b917-6f80-ca14-669d-f89e7ec7f...@python.org>
  "Re: [DISCUSS] C++ SO versioning with 1.0.0" on Wed, 3 Jul 2019 09:59:15 
+0200,
  Antoine Pitrou <anto...@python.org> wrote:

> 
> Do we have any reliable tool to check for ABI breakage?
> 
> 
> Le 03/07/2019 à 02:57, Sutou Kouhei a écrit :
>> Hi,
>> 
>> We'll release 0.14.0 soon. Then we use "1.0.0-SNAPSHOT" at
>> master. If we use "1.0.0-SNAPSHOT", C++ build is failed:
>> 
>> https://github.com/apache/arrow/blob/master/cpp/CMakeLists.txt#L47
>> 
>>   message(FATAL_ERROR "Need to implement SO version generation for Arrow 
>> 1.0+")
>> 
>> So we need to consider how to generate SO version for 1.0.0
>> as the first task for 1.0.0.
>> 
>> See also https://issues.apache.org/jira/browse/ARROW-2522
>> for the current SO versioning.
>> 
>> 
>> If we may break ABI compatibility each minor version up
>> release ("Y" is increased in "X.Y.Z"), we should include
>> minor version into SO major version (100, 101 and 102 in the
>> following examples):
>> 
>>   * 1.0.0 -> libarrow.100.0.0
>>   * 1.1.0 -> libarrow.101.0.0
>>   * 1.2.0 -> libarrow.102.0.0
>> 
>> If we don't break ABI compatibility each minor version up
>> release, we just use the same SO major version (100 in the
>> following examples) in 1.0.0:
>> 
>>   * 1.0.0 -> libarrow.100.0.0
>>   * 1.1.0 -> libarrow.100.1.0
>>   * 1.2.0 -> libarrow.100.2.0
>> 
>> 
>> I choose 1XX as SO major version because we already use
>> 10-14 for SO major version. We should not use them in the
>> future to avoid confusion. So I choose 1XX in the above
>> examples.
>> 
>> 
>> Any thoughts?
>> 
>> 
>> Thanks,
>> --
>> kou
>> 

Reply via email to