apache / arrow

Apache Arrow is the universal columnar format and multi-language toolbox for fast data interchange and in-memory analytics
https://arrow.apache.org/
Apache License 2.0
14.68k stars 3.56k forks source link

[Release][C++] Check the ABI stability during the release process of bug-fix releases #41708

Open jorisvandenbossche opened 6 months ago

jorisvandenbossche commented 6 months ago

According to our current policy, bug-fix (micro) releases of the C++ libraries are expected to be ABI stable, and so versions are not bumped (we should better document this, though, for which I opened https://github.com/apache/arrow/issues/41707).

However, AFAIK we don't actually check for this, and I am also not sure if we pay much attention to that aspect when deciding to backport certain PRs to the release branch. We do have a section in the dev docs about how to check for this (https://arrow.apache.org/docs/dev/developers/cpp/development.html#checking-for-abi-and-api-stability), and if we promise ABI stability, then I think we should do a better job of actually checking for this during the release process, and run that tool as part of the release process / verification? (or in some CI build, although one that should only run on the maintenance branches)

Example issue where we recently had an ABI break in 15.0.1: https://github.com/apache/arrow/issues/40604 (although I haven't checked if the tool mentioned above would have caught this)

cc @raulcd @kou

jorisvandenbossche commented 6 months ago

Older closed issue about including the abi-compliance-checker tool in the build process: https://github.com/apache/arrow/issues/17960

kou commented 6 months ago

+1

We should do it to follow semantic versioning.