An elegant way of seeing if you're breaking API compatibility: try building all the downstream deps against WIP!
miniblog.
Related Posts
The different layers of the Nix ecosystem, and the overlay system to allow downstream users to override (c.f. dynamic binding):
Swift is exploring a cute idea for library transparency: you can distinguish between "this ABI is guaranteed to keep working" and "I want an extra layer of indirection so I can add to data structures without breaking downstream users".
https://forums.swift.org/t/pitch-library-evolution-for-stable-abis/23026