Every time the API or the ABI breaks we need must bump the major version of the library affected.
You have an ABI break when:
- You change the size of a public field in a struct.
- You increase the size of a struct that doesn't have an allocator.
- You remove a function.
You have a C API break when:
- You remove a macro, struct or function declaration.
You have a C++ API break when:
- You change a field or parameter type even if its size remains the same.
ABI break -> major bump
API break -> minor bump