A Proposal for Package Versioning in Go
Why won't the simple approach of not allowing packages to break API compatibility work? Fixed some bugs or added new functions to a library foo? Keep calling it foo. Made an incompatible change? Call it foo2.<p>At least, this encourages backward compatibility. Incrementing the version number is an easier decision to make than explicitly creating a whole new thing. One of the awesome features of Go is how stable the language and standard libs are. Why not expect the same of the community?