Does anyone know of any good procedure or build tool to help you with semantic versioning when you are creating libraries? For example, I would need something that make sure I do not accidentally change a function or class that is exposed in the API of my library in a breaking way. So I would get an warning or error at build time if the signature of a function has changed.