The Contracts Language API major version 4 has a new versioning strategy by which new features are introduced. Contracts Language API version 4 will be extended so that:
There are no minor or patch versions introduced to the Contracts API version 4
New backwards compatible features are introduced to the same API version 4.0.0 and are versioned using the Vault releases
All accounts and plans are using the same Contracts Language API version 4 for the contract execution, however, new add-on Contracts Language API features do not change the behaviour of any existing accounts or plans
Essential bug fixes that may be backwards incompatible are immediately applied to all accounts and plans contracts execution following a Vault upgrade
When migrating to a new Vault release, always upgrade the contracts_api package from the Contracts SDK. and run unit tests on all your Smart Contracts, Supervisor Contracts and Contract Modules. This helps to ensure none of your products were relying on a bug that is fixed in a particular Vault release.
Make sure that you run Contract Simulation and end-to-end tests using the Core API to ensure no add-on features introduced to the Contracts Language API changed the behaviour of any of your products due to name clashes. This could happen in rare edge cases, when for example a helper method defined in Smart Contract code is named exactly as a new Contracts Language API hook that is introduced with a new Vault release. Note that in cases like these, the issue can be caught in Contract Simulation tests or when uploading new products onto Vault via Core API.