All Sudo Platform SDKs conform to the following versioning rules:

Sudo Platform SDK versioning rules borrow some ideas from semantic versioning but are not identical. The deviation from semantic versioning exists mainly to ease the consumption of each SDK and its dependencies and allowing mocking of public APIs for unit testing.

Major Version

The major version is incremented when there is a breaking update to an existing public API or an existing public API is removed.

Example: Updating an existing API.

+ public func doSomething(param1: String)
- public func doSomething(param1: String, param2: Boolean)

Example: Removing an existing API.

- public func doSomething(param1: String)

The major version will also be incremented if any API change is made to a public protocol or interface the SDK expects the consumer to implement for production code. This does not include any protocol or interface that is provided for mocking.

For iOS SDKs, the major version will not be incremented when a new enumeration value is added e.g. a new error enumeration value. Instead, a new enumeration value will result in incrementing the minor version. It is expected that applications using a switch statement to handle an enumeration should include a default case to prevent the new enumeration value causing compilation errors.

Minor Version

A minor version change should not break any production code but if you are implementing any public protocol or interface provided for unit testing then you may need to provide mock implementation for the new API added.

The minor version is incremented when a new API is added.

Example: Adding a new API.

+ public func doMore(param1: Int)

Patch Version

The patch version is incremented when a change is introduced that does not impact any public API. For example, a fix is made to an internal function.

Last updated