Skip to content

Commit 3da2ffa

Browse files
authored
chore: Add SDK versioning policy (#1765)
1 parent 4e22457 commit 3da2ffa

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
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

Comments
 (0)