e
div | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||
|
...
- Within a major version of X wire compatibility is maintained unless there are extraordinary circumstances.
- So regardless of API compatibility level in the generated code it should always be possible to deserialize messages that were generated and serialized with the same major version.
- Note, however, that wire compatibility is contingent on the application model remaining compatible (e.g. fields not removed and field ids not changed). This topic is discussed in Modeling Message and State
...
API compatibility refers to the ability of applications built using a particular version of the platform to be compiled, without error, on another version of the platform i.e. whether a code change is needed when migrating the application between platform versions.
- Within a major version of X API compatibility is maintained. However, some API methods can be marked as deprecated across minor releases
- Across major versions, X API compatibility can be broken. However, this can only happen due to removal or methods marked as deprecated in previous major versions
Generated Code Compatibility
Generated code compatibility refers to the compatibility between code generated by one version of the platform, and its compatibility at runtime with another version.
- A best effort is made to maintain backwards API generated code compatibility with code generated within the same major version so that a new version of the platform runtime can operate with code generated within that version.
- However:
- To allow introducing new functionality in the generated code sometimes dependencies on new platform APIs are introduced. In this case a minor API generated code compatibility version is incremented. This means that newly generated code can not be used with older versions of the platform.
- In extreme cases such as critical bug fixes it is possible that API changes are required in the generated code API which necessitates a major increment which makes a newer version of the platform require newly generated code (older generated code cannot be used).
...