Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: Add SDK versioning policy #1765

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 47 additions & 0 deletions Sources/Core/AWSSDKForSwift/Documentation.docc/versioning.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# Versioning Policy

## Numbering

The AWS SDK for Swift uses the following versioning format:
```
<major>.<minor>.<patch>
```

The version components are incremented when one of the following occurs:
- Major: Significant, breaking API changes. New major versions will be
very infrequent. Expect to perform additional development to upgrade
to a new major version.
- Minor: Changes that are not major but may require attention from
developers. Specific changes will be detailed in release notes.
Examples of minor changes may be:
- Changes to behavior of existing features.
- Deprecation of existing SDK features.
- Dropping support for an Xcode, Swift, or platform version.
- A significant internal change to an existing feature.
- Patch: Less significant changes that should require no additional development to adopt and should not change SDK behavior.
Patch releases will contain updates to the APIs for the AWS services.
There is an unlikely possibility that patch changes to specific AWS services may break existing APIs; please file an
[issue](https://github.com/awslabs/aws-sdk-swift/issues/new/choose)
if this occurs.
New patch versions are typically released each business day, with exceptions for holidays and certain AWS events.

## AWS Service Client Libraries

The AWS SDK for Swift includes a library for every AWS service (i.e. S3,
EC2, etc) that includes the service client, model types, and other
support code for accessing that AWS service. Updating the SDK version
updates all of the service libraries that are in use, along with all of
the supporting runtime components. In the future, we may elect to
publish services separately.

## Public APIs

The AWS SDK for Swift consists of several modules which will
automatically install at build time. The interfaces between these
modules are necessarily public, but not all are intended for use by
customers and may be altered in the future. AWS SDK for Swift uses the
"System Programming Interface" (or SPI) feature to mark API features
that are not meant for customers to use. If you find yourself needing
to access a public interface marked with `@_spi`, please start a
[discussion](https://github.com/awslabs/aws-sdk-swift/discussions/new/choose)
and the SDK developers will work with you to find a solution.
Loading