mirror of
https://github.com/apache/arrow.git
synced 2026-10-29 00:56:31 +08:00
ARROW-2484: [C++] Document ABI compliance checking
This commit is contained in:
1 parent
4c31b37a50
commit
a03cce9d25
1 file changed
+24
@@ -324,6 +324,30 @@ These commands require `clang-format-4.0` (and not any other version).
|
||||
You may find the required packages at http://releases.llvm.org/download.html
|
||||
or use the Debian/Ubuntu APT repositories on https://apt.llvm.org/.
|
||||
|
||||
## Checking for ABI and API stability
|
||||
|
||||
To build ABI compliance reports, you need to install the two tools
|
||||
`abi-dumper` and `abi-compliance-checker`.
|
||||
|
||||
Build Arrow C++ in Debug mode, alternatively you could use `-Og` which also
|
||||
builds with the necessary symbols but includes a bit of code optimization.
|
||||
Once the build has finished, you can generate ABI reports using:
|
||||
|
||||
```
|
||||
abi-dumper -lver 9 debug/libarrow.so -o ABI-9.dump
|
||||
```
|
||||
|
||||
The above version number is freely selectable. As we want to compare versions,
|
||||
you should now `git checkout` the version you want to compare it to and re-run
|
||||
the above command using a different version number. Once both reports are
|
||||
generated, you can build a comparision report using
|
||||
|
||||
```
|
||||
abi-compliance-checker -l libarrow -d1 ABI-PY-9.dump -d2 ABI-PY-10.dump
|
||||
```
|
||||
|
||||
The report is then generated in `compat_reports/libarrow` as a HTML.
|
||||
|
||||
## Continuous Integration
|
||||
|
||||
Pull requests are run through travis-ci for continuous integration. You can avoid
|
||||
|
||||
Reference in new issue
Block a user