重大变更与弃用
重大变更与弃用的处理
重大变更
重大变更定义为在升级到下一个稳定次要版本的 Dapr 工件(SDK、CLI、运行时等)后,对以下任何内容的更改导致现有的第三方应用程序或脚本出现编译错误或不良运行时行为:
- 代码行为
- 架构
- 默认配置值
- 命令行参数
- 发布的指标
- Kubernetes 资源模板
- 公共可访问的 API
- 公共可见的 SDK 接口、方法、类或属性
重大变更可以立即应用于以下情况:
- 尚未达到 1.0.0 版本的项目
- 预览功能
- Alpha API
- SDK 中的预览或 Alpha 接口、类、方法或属性
- Alpha 或 Beta 阶段的 Dapr 组件
github.com/dapr/components-contrib的接口- 文档和博客中的 URL
- 例外情况,即必须修复严重错误或安全漏洞。
应用重大变更的流程
应用重大变更有一个流程:
- 必须在某个版本中发布弃用通知。
- 重大变更将在宣布弃用的版本之后的两个(2)版本中应用。
- 例如,功能 X 在 1.0.0 版本说明中宣布弃用,随后将在 1.2.0 中移除。
弃用
弃用可应用于:
- API,包括 alpha API
- 预览功能
- 组件
- CLI
- 可能导致安全漏洞的功能
弃用内容会出现在版本说明中名为 “Deprecations” 的部分下,该部分指示:
- 将来不再支持已弃用功能的时间点。例如版本 x.y.z。这至少在两个(2)版本之前。
- 如果适用,在版本说明中记录用户必须采取的任何步骤来修改其代码、操作等。
在宣布未来的重大变更后,变更将在 2 个版本或 6 个月后生效,以较晚者为准。已弃用的功能应响应警告,但除此之外不执行任何操作。
已宣布的弃用
| 功能 | 弃用公告 | 移除版本 |
|---|---|---|
| GET /v1.0/shutdown API(用户应改用 POST API) | 1.2.0 | 1.4.0 |
| Java domain builder 类已弃用(用户应改用 setters) | Java SDK 1.3.0 | Java SDK 1.5.0 |
服务调用将不再提供默认的 application/json 内容类型头,当未指定 content-type 时。如果您调用的应用依赖此头,则必须为服务调用显式设置内容类型头。 | 1.7.0 | 1.9.0 |
使用 invoke 方法的 gRPC 服务调用已被弃用。请改用代理模式服务调用。请参阅 How-To: 使用 gRPC 调用服务 以使用代理模式。 | 1.9.0 | 1.10.0 |
CLI 标志 --app-ssl(在 Dapr CLI 和 daprd 中)已被弃用,取而代之的是使用值为 https 或 grpcs 的 --app-protocol。daprd:6158 cli:1267 | 1.11.0 | 1.13.0 |
| Hazelcast 发布订阅组件 | 1.9.0 | 1.11.0 |
| Twitter 绑定组件 | 1.10.0 | 1.11.0 |
| NATS Streaming 发布订阅组件 | 1.11.0 | 1.13.0 |
工作流 API Alpha1 /v1.0-alpha1/workflows 已被弃用,取而代之的是工作流客户端 | 1.15.0 | 1.17.0 |
将 http-max-request-size 标志/注解迁移到 max-body-size。请参阅 How-To: 处理更大的主体请求 | 1.14.0 | 1.17.0 |