Matroska-Org / libmatroska

a C++ libary to parse Matroska files (.mkv and .mka)
GNU Lesser General Public License v2.1
320 stars 57 forks source link

[1.x] test ABI breakage on 1.x branches #85

Open robUx4 opened 2 years ago

robUx4 commented 2 years ago

Similar to https://github.com/Matroska-Org/libmatroska/pull/83

mbunkus commented 2 years ago

BTW, we also have to account for ABI changes that are fine: solely adding new symbols. For example, the abidiff output comparing release 1.6.3 & 1.7.1 lists a lot of added symbol, and the exit code is 4, but those two are actually compatible.

mbunkus commented 2 years ago

The user who suggested abidiff also pointed to two examples. One of them uses a couple of CLI options, one of them that seem relevant to us, too: --no-added-symbols which addresses what I wrote above. Not sure about the others, though.

robUx4 commented 2 years ago

The user who suggested abidiff also pointed to two examples. One of them uses a couple of CLI options, one of them that seem relevant to us, too: --no-added-symbols which addresses what I wrote above. Not sure about the others, though.

Yeah I saw but I wasn't sure if it's adding or removing error cases. I'll add it here (and there) once I get it to detect ABI changes...

robUx4 commented 2 years ago

@mbunkus aren't those changes ABI changes https://github.com/Matroska-Org/libmatroska/pull/85/commits/1d132edbed04285b14e97291d6880e8aa9ac49dd ? It doesn't detect them 😞

mbunkus commented 2 years ago

I would have thought so, yeah, at least renaming the GetParentCluster function. 😕

robUx4 commented 2 years ago

I added more odd changes (following https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C++) and it still doesn't see anything :/ It's odd because it worked well on libebml.

I also checked it's really comparing different builds of different libraries (changing the VERSION to 8.0.0 was detected from the symbolic links).