06.10.2016, 15:32, "Ponomarenko Andrey": > 06.10.2016, 07:54, "Paul Wise": >> On Wed, Oct 5, 2016 at 11:00 PM, Ponomarenko Andrey wrote: >> >>> I'd like to present a new free tool for maintainers of software libraries >>> — Package ABI Diff Tool (Pkg-ABIdiff). It's a tool for backward >>> compatibility analysis of API/ABI interfaces in Deb packages. The tool is >>> based on ABI Compliance Checker and ABI Dumper tools. >> >> Does this have any advantages over abipkgdiff from the abigail-tools >> Debian package already in Debian? >> >> BTW, I think it would be really interesting to run >> pkg-abidiff/abipkgdiff over the whole Debian archive and possibly use >> that to inform the release team of uncaught ABI changes. >> >> -- >> bye, >> pabs >> >> https://wiki.debian.org/PaulWise > > I guess, checks for more compatibility rules, less false positives, visual > reports, problem severity levels and separated analysis of both backward > binary compatibility and backward source compatibility are main advantages of > the pkg-abidiff. The disadvantage is that pkg-abidiff may not be as fast as > abipkgdiff, because pkg-abidiff is written in Python, but abipkgdiff is > written in C++. > > The tools are based on different software stacks. The pkg-abidiff is based on > ABI Compliance Checker and ABI Dumper tools (https://github.com/lvc) > developed since 2009. The abipkgdiff is based on libabigail developed since > 2013. So, implementations and reports are completely different. > > Anyway, it's better to run both tools on all packages at the same time and > verify reports of each other. > > Thank you.
After a closer look at the source code, reports and docs of abipkgdiff / libabigail tools I can list more pros and cons of https://github.com/lvc/pkg-abidiff / abi-compliance-checker: PROS - separated analysis of both backward binary compatibility and backward source compatibility - assigning severity levels to ABI changes - explaining effects of ABI changes - checks for more compatibility rules - less false positives - visual reports - grouping of affected ABI interfaces by root cause (usually a change in the structure of data type), so the output report is more compact and easy to review - estimating total compatibility rate of an object CONS - may be slower and consume more RAM memory than libabigail tools due to implementation language (C++ vs Python/Perl/C) - the generation of output report is not configurable (can't pass any additional options to abi-compliance-checker via cli interface of pkg-abidiff) - no option to generate detailed plain-text report (only console output and summary report in JSON format are present) Thank you.