|
| 1 | +# Versioning Policy |
| 2 | + |
| 3 | +## Numbering |
| 4 | + |
| 5 | +The AWS SDK for Swift uses the following versioning format: |
| 6 | +``` |
| 7 | +<major>.<minor>.<patch> |
| 8 | +``` |
| 9 | + |
| 10 | +The version components are incremented when one of the following occurs: |
| 11 | +- `major`: Significant, breaking API changes. New major versions will be |
| 12 | + very infrequent. Expect to perform additional development to upgrade |
| 13 | + to a new major version. |
| 14 | +- `minor`: Changes that are not major but may require attention from |
| 15 | + developers. Specific changes will be detailed in release notes. |
| 16 | + Examples of minor changes may be: |
| 17 | + - Changes to behavior of existing features. |
| 18 | + - Deprecation of existing SDK features. |
| 19 | + - Dropping support for an Xcode, Swift, or platform version. |
| 20 | + - A significant internal change to an existing feature. |
| 21 | +- `patch`: Less significant changes that should require no additional |
| 22 | + development to adopt and should not change SDK behavior. |
| 23 | + Patch releases will contain updates to the APIs for the AWS services. |
| 24 | + There is an unlikely possibility that patch changes to specific AWS |
| 25 | + services may break existing APIs; please file an |
| 26 | + [issue](https://github.com/awslabs/aws-sdk-swift/issues/new/choose) |
| 27 | + if this occurs. |
| 28 | + New patch versions are typically released each business day, with |
| 29 | + exceptions for holidays and certain AWS events. |
| 30 | + |
| 31 | +## AWS Service Client Libraries |
| 32 | + |
| 33 | +The AWS SDK for Swift includes a library for every AWS service (i.e. S3, |
| 34 | +EC2, etc) that includes the service client, model types, and other |
| 35 | +support code for accessing that AWS service. Updating the SDK version |
| 36 | +updates all of the service libraries that are in use, along with all of |
| 37 | +the supporting runtime components. In the future, we may elect to |
| 38 | +publish services separately. |
| 39 | + |
| 40 | +## Swift version and platform support |
| 41 | + |
| 42 | +In order to ensure the maintainability and reliability of the AWS SDK |
| 43 | +for Swift, we will, from time to time, drop support for Xcode/Swift versions |
| 44 | +or OS versions for supported platforms. |
| 45 | + |
| 46 | +At a minimum, we will support |
| 47 | +Xcode/Swift versions for one year from their release, and platform OS versions |
| 48 | +for two years from release. |
| 49 | + |
| 50 | +See the SDK's |
| 51 | +[Package.swift](https://github.com/awslabs/aws-sdk-swift/blob/main/Package.swift) |
| 52 | +for the latest supported Swift versions & platforms. |
| 53 | + |
| 54 | +## Public APIs |
| 55 | + |
| 56 | +The AWS SDK for Swift consists of several modules which will |
| 57 | +automatically install at build time. The interfaces between these |
| 58 | +modules are necessarily public, but not all are intended for use by |
| 59 | +customers and may be altered in the future. AWS SDK for Swift uses the |
| 60 | +"System Programming Interface" (or SPI) feature to mark API features |
| 61 | +that are not meant for customers to use. If you find yourself needing |
| 62 | +to access a public interface marked with the `@_spi` annotation, please start a |
| 63 | +[discussion](https://github.com/awslabs/aws-sdk-swift/discussions/new/choose) |
| 64 | +and the SDK developers will work with you to find a solution. |
0 commit comments