文档

阿里云SDK支持策略

更新时间:
重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

本文讲述阿里云 OpenAPI SDK 工具包的生命周期维护策略,包括版本发布策略、更新策略、停止支持策略。在 SDK 完整的生命周期内,官方会对 SDK 持续进行安全补丁的更新和新功能的支持。

一、概述

本文讲述阿里云 OpenAPI SDK 工具包的生命周期维护策略,包括版本发布策略、更新策略、停止支持策略。在 SDK 完整的生命周期内,官方会对 SDK 持续进行安全补丁的更新和新功能的支持。

二、版本声明

阿里云 SDK 包版本会发布到官方包管理器(例如 Maven、NPM、PyPI、NuGet、Cocoapods、Packagist 等)仓库中,各个语言对应着不同的包管理仓库,并且阿里云会在 GitHub Aliyun 组织 下提供所有语言的 SDK 源代码。详情请参见版本支持列表

2.1 阿里云 SDK 代系

目前阿里云 SDK 存在两个代系,第一代 SDK(V1.0 SDK)和第二代 SDK(V2.0 SDK)。阿里云第一代 SDK 是较早使用的版本,不少老用户习惯于第一代 SDK 的开发。阿里云第二代 SDK 通过总结开发者在第一代 SDK 中遇到的一系列问题后重新开发的一版 SDK,新增了许多特性,以易于用户理解、降低用户接入成本并提升 SDK 的健壮性为目的,提高开发者的 SDK 使用体验。例如相较于第一代 SDK,第二代支持文件上传、异步调用等操作,支持场景更丰富,性能更高。两者的区别请参见 V1.0 SDK和V2.0 SDK

两代 SDK 的后续维护是没有区别的,其维护周期参照生命周期一节。代系的停止支持,需要提前两年声明。与各个版本的语言运行时的停止支持有差别,参见版本支持列表

2.2 版本号规范

阿里云每个代系的 SDK 版本号的变更都遵循 SemVer 规范:

  • 版本号由 Major.Minor.Patch 3位组成:

  • Major:产生了不兼容的 API 变更。

  • Minor:产生了向下兼容的功能性变更。

  • Patch:产生了向下兼容的问题修正变更。

增加 SDK 的 Major 版本则表明该 SDK 经历了重大且实质性的更改,以支持该语言中的新习惯用法和模式。当公共接口(例如类名、方法名、参数名、参数类型等)、行为或语义发生变化时,即 SDK 存在 Break Change 时,就会引入 Major 版本。客户端需要主动更新才能使用最新的 SDK 版本,请务必根据阿里云官方提供的 SDK 发布报告(例如 Ecs Java 3.1.17 版本发布报告)来更新 Major 版本。

2.3 兼容性保障

  • 不同代系的 SDK 是绝对不兼容的,升级需要参照升级V1.0 SDK指南

  • 同一代系的阿里云 SDK 版本号遵照 SemVer 规范,官方会保障所有语言 SDK 发布的 Minor 版本和 Patch 版本均向后兼容,只有 Major 版本会出现非兼容的情况。

2.4 生命周期

目前阿里云有两代SDK,版本号是延续各自的规则。

  • 大版本发布之前会先发布开发者预览版本(Preview),在经过至少3个月的时间后转为正式版本(GA)。

  • 旧版本在 3 年以后会发布维护声明,未来新功能只在新版本中实现,对于旧版本只做安全问题的相关维护,产品 SDK 会继续更新,相关文档会置为不推荐使用状态。

  • 旧版本在发布维护声明的 3 年后进入停止维护阶段,进入该阶段后用户可以继续使用旧版本,但官方不再做任何的维护(包括安全问题),并且对应的所有产品都不会再发布新的版本,相关文档也会置为废弃状态。

目前我们已有两个版本的 SDK:V1.0 SDK 和 V2.0 SDK,V1.0 SDK 就是老版本 SDK,其会在 V2.0 上线三年后发布维护声明,告知用户该版本 SDK 不再新增功能,六年后该版本 SDK 将停止维护。

三、依赖更新策略

我们会定期提供阿里云开发工具包 SDK 及其底层依赖的更新,我们将这些第三方依赖项分成以下三个分类:

  • 操作系统 (OS):包括 Centos7、Windows 7、Windows 10、macOS 12.x 等。

  • 语言 Runtime:包括 Java 7、Java 8、Java 11、.NET Core、PHP7、PHP8、Node.js 14.x 等。

  • 第三方库/框架:包括 OpenSSL、.NET Framework 4.5、Java EE 等。

这些依赖项通常与语言社区或拥有该特定组件的供应商相关。 每个社区或供应商都会发布自己的产品支持终止时间表。

我们的政策是,在社区或供应商结束对依赖项的支持后,我们会保证继续至少 6 个月的 SDK 依赖项支持。 但是,此策略可能会根据特定的依赖关系而有所不同,一般这个时间为一年左右。

重要

我们会尽可能保证一年左右的存在已停止支持的依赖项的 SDK 继续维护,但是不排除社区实在无法支持的情况。

警告

我们建议用户及时了解 SDK 版本,以跟上最新的功能、安全更新和底层依赖项。 不建议继续使用不受支持的 SDK 版本,这由用户自行决定。

各个语言社区 Maintenance Policy:

四、版本停止支持策略

4.1 触发节点

当社区宣布不再支持某个语言的某个版本或者某个依赖库后,我们会在一年左右时间也必然会对该版本进行声明,声明半年后停止支持。停止支持不影响客户对存量SDK的正常使用,仅是不再进行安全补丁的更新和新功能的支持。

4.2 声明内容

  1. 停止支持具体原因

  2. 停止支持具体时间

  3. 如何保持使用以及更新方式

  4. 迁移文档

4.3 声明途径

我们会对停止支持的原因进行官方解释,并通过如下途径进行通知:

  • 提前一年时间进行停止支持声明,声明通知包括但不限于开发者门户-SDK文档、开发者门户-消息订阅通知、帮助中心- SDK 文档、阿里云控制台消息通知;

  • 迁移文档,必须在开发者门户-SDK文档、帮助中心-SDK文档同时提供;

  • 部分语言的 SDK 侧做到通知,例如安装停止支持的 SDK 版本会进行警告等。

  • 本页导读 (1)
文档反馈