Join GitHub today
GitHub is home to over 40 million developers working together to host and review code, manage projects, and build software together.Sign up
Currently there are four official definitions for api compatibility0123, as well as others offered by the community4. It should be noted that some of these definitions target package compatibility, where other target module compatibility, and some are experimental, while others have been constant since go1. Unfortunately, they each disagree on at least a few minor points in their definitions of compatibility. This lack of an official stance and single vision for compatibility has led to confusion and uncertainty among the community.
In some official capacity, publish documentation both package and module compatibility guarantees. This should involve a package level definition, such as the
I have always thought of this as compile time compatibility, since runtime compatibility is hard if not impossible, as called out in the apidiff document. I think targeting does it compile is acheivable and apidiff is close if not exactly the package spec I would publish.