Binary compatibility

Two versions of a library are said to be binary compatible if you can swap one for the other without recompiling.

Let’s imagine a Foo library such that its 1.0.0 and 1.1.0 versions are binary incompatible (even though they are source compatible). If you have three projects such that:

Whoever maintains C will find himself dealing with some very weird runtime errors that might be a bit a nightmare to work out - that person might not even know that Foo exists, let alone that it’s in C’s dependencies.

It’s best to strive for binary compatibility for this reason. Tools such as MiMa have been created to help library author with this task.