1. Overview
This topic describes the maintenance policies for Alibaba Cloud SDKs, including the version release policy, update policy, and end-of-support policy.
2. Lifecycle and maintenance policies
The full lifecycle of Alibaba Cloud SDKs consists of the following stages: general availability stage, basic security maintenance stage, and end-of-support stage. The following table describes the maintenance policy for and characteristics of each stage.
Lifecycle stage | Maintenance policy | API coverage and release cycle | Recommendation | Support on Alibaba Cloud platforms, such as Help Center and OpenAPI Portal | Support on third-party platforms, such as hosted code repositories and communities |
General availability stage
| Alibaba Cloud releases new features, optimizes performance, fixes bugs, and updates security patches for the SDKs. | The SDKs support all API operations, and are automatically updated and released within 24 hours after the API release. | The SDKs are recommended for all users and projects. | Marked as Recommend. Alibaba Cloud provides full series of documents and sample code and promises to update them at the earliest opportunity. | Marked as Recommend. |
Basic security maintenance stage | Alibaba Cloud does not release new features, but regularly updates important security patches and fixes bugs that severely hinder service stability for the SDKs. | The coverage for API operations is not guaranteed. The SDKs are updated and released to support new API operations only when necessary. | The SDKs are suitable for systems that are stably running, and are not recommended for new projects or beginners. | Marked as Not recommend. Alibaba Cloud provides full series of documents and sample code but does not promise to update them at the earliest opportunity. Alibaba Cloud provides migration references to instruct users to update to the latest SDK versions. | Marked as Not recommend. Alibaba Cloud provides migration references to instruct users to update to or use the latest SDK versions. |
End-of-support stage
| Alibaba Cloud no longer provides any updates to the SDKs, including security updates. No issues of any type are accepted for the SDKs. | Alibaba Cloud stops releasing the SDK updates. | The SDKs are not recommended for any beginners. Existing systems must be migrated to the latest SDK versions at the earliest opportunity to ensure the business continuity and security. | The SDKs are brought offline or all entrances are hidden. | Marked as End-of-support. Alibaba Cloud provides migration references to instruct users to update to or use the latest SDK versions. No issues of any type are accepted for the SDKs. |
3. Release policy
Packages of Alibaba Cloud SDKs are released to the official package managers of different languages, such as Maven, npm, Python Package Index (PyPI), NuGet, CocoaPods, and Packagist. Alibaba Cloud also publishes the source code of SDKs in all supported languages on GitHub. For more information, see Version support.
3.1 Alibaba Cloud SDK generations
Alibaba Cloud provides two generations of SDKs: Alibaba Cloud SDK V1.0 and V2.0. Alibaba Cloud SDK V2.0 resolves a series of issues that developers encounter when they use Alibaba Cloud SDK V1.0. Alibaba Cloud SDK V2.0 provides many new features to simplify the use of SDKs, reduce the costs for using SDKs, and improve the robustness of SDKs. For more information about the differences between Alibaba Cloud SDK V1.0 and V2.0, see Alibaba Cloud SDK V1.0 and V2.0.
For more information about the maintenance policies for the SDKs, see the Lifecycle and maintenance policies section of this topic. For more information about the end-of-support status of SDKs of each generation in different languages, see Version support.
3.2 Version number specification
The changes of version numbers of Alibaba Cloud SDKs of each generation comply with the Semantic Versioning Specification.
A version number is in the Major.Minor.Patch format.
|
Incrementing the major version of an SDK indicates that the SDK has undergone significant and substantial changes to support new idioms and patterns in the current language. A major version is introduced when changes are made in public interfaces, such as class names, method names, parameter names, and parameter types, behaviors, or semantics. In other words, a major version is introduced when breaking changes are made in an SDK. After a major version is released, you must update the client to use the latest SDK. You must update the major version based on the SDK release report provided by Alibaba Cloud, such as the Release Report for Elastic Compute Service (ECS) SDK for Java V3.1.17.
3.3 Compatibility assurance
SDKs of different generations are not compatible with each other. For more information about how to upgrade Alibaba Cloud SDK V1.0 to V2.0, see Upgrade Alibaba Cloud SDK V1.0 to V2.0.
The version numbers of the Alibaba Cloud SDKs of the same generation comply with the Semantic Versioning Specification. Alibaba Cloud ensures that the minor versions and patch versions of SDKs in all languages are backward compatible. Only the major versions may be backward incompatible.
4. Update policy
Alibaba Cloud regularly provides updates to Alibaba Cloud SDKs and their underlying dependencies. The third-party dependencies are classified into the following three categories:
Operating systems such as CentOS 7, Windows 7, Windows 10, and macOS 12.x
Language runtimes such as Java 8, Java 11, .NET Core, PHP7, PHP8, and Node.js 14.x
Third-party libraries and frameworks such as OpenSSL, .NET Framework 4.5, and Java EE
The lifecycle of a third-party dependency is decided by the relevant language community or the vendor that owns that particular component. Each community or vendor publishes the end-of-life timeline for its own products.
Maintenance policy of each language community:
Node.js: github.com
Python: devguide.python.org
Ruby: www.ruby-lang.org
Java: www.oracle.com
Go: golang.org
.NET Core: dotnet.microsoft.com
PHP: www.php.net
After a community or vendor ends the support for a language version, Alibaba Cloud ensures continued support for that language version in Alibaba Cloud SDKs for at least one year.
A language version indicates a version released by a community or vendor for a specific programming language, such as Java 8 and Python 3.7.
5. End-of-support policy
5.1 Trigger point
After the community of a language announces the end of support for a language version or a dependency library, Alibaba Cloud issues an end-of-support announcement for the language version or dependency library in a year or so and ends support for the language version or dependency library six months later. The end of support does not affect the normal use of existing SDKs, but no security patches or new features will be provided.
5.2 Announcement content
Specific reasons for ending support
Specific time for ending support
Steps for continuing to use existing SDKs and updating to supported SDKs
Migration references
5.3 Notification methods
Alibaba Cloud provides an official explanation of the reason for ending support and notifies users in the following methods:
Publishes and sends to users an end-of-support announcement one year in advance. For example, an end-of-support announcement is published in the SDK references in OpenAPI Portal and Help Center, and is sent to users by using messages in OpenAPI Portal and the Alibaba Cloud Management Console.
Provides migration references in the SDK references in OpenAPI Portal and Help Center.
Adds notifications in the SDKs for some languages. For example, a warning notification is displayed when you install an unsupported SDK version.