A clear and comprehensive versioning strategy is the only way to maintain any sense of order in a standards-based project. The canonical version used to describe the Rosetta APIs comes from the specifications repository releases. This documentation website uses the same version as the specifications it is describing.
Version 1.3.1 is the first stable release of the Rosetta API specifications. We will not make any breaking changes in following v1.x releases but may add additional functionality (e.g. Construction API).
We expect implementations of Rosetta APIs to use independent versioning but to explicitly state which Rosetta API version(s) they maintain compatibility for. In the same manner, we expect SDKs to also use independent versioning but to explicitly state which Rosetta API version(s) they maintain compatibility for. Check out rosetta-sdk-go for an example of how we built a codegen toolchain for Golang.
Note on New SDKs
If you choose to implement the Rosetta APIs in a language that does not yet have a supported SDK, we recommend creating a separate project for generating code from the specifications instead of embedding code generation into your implementation. This will make managing specification updates and versioning much easier.