Flutter 兼容性政策

Flutter 团队尝试平衡 API 稳定性需求和持续改进 API 以修复错误、改进 API 人体工程学以及以连贯方式提供新功能的需求。

为此,我们创建了一个测试注册表,您可以在其中为自己的应用程序或库提供单元测试,我们会在每次更改时运行这些测试,以帮助我们跟踪会破坏现有应用程序的更改。我们的承诺是,在不与这些测试的开发者合作的情况下,我们不会做出任何破坏这些测试的更改,以 (a) 确定更改是否足够有价值,以及 (b) 为代码提供修复程序,以便测试继续通过。

如果您希望作为此计划的一部分提供测试,请向 flutter/tests 存储库提交 PR。该存储库上的 自述文件详细描述了该过程。

公告和迁移指南

如果我们确实做出了重大更改(定义为导致提交的这些测试中的一个或多个需要更改的更改),我们将在我们的 flutter-announce 邮件列表以及我们的发行说明中宣布此更改。

我们提供 用于迁移受重大更改影响的代码的指南 列表。

弃用策略

在某些情况下,我们会弃用某些 API,而不是直接在夜间中断它们。这与我们的兼容性策略无关,后者完全基于提交的测试是否失败,如上所述。

弃用的 API 在迁移宽限期后被移除。此宽限期为在稳定频道上发布后一个日历年,或 4 个稳定版本后,以较长者为准。

当弃用达到使用寿命终点时,我们会遵循上面列出的相同程序,在移除弃用的 API 时进行重大更改。

Dart 和 Flutter 使用的其他库

Dart 语言本身有一个单独的重大更改策略,并在Dart 公告中进行公告。

一般来说,Flutter 团队目前不对其他依赖项的重大更改做出任何承诺。例如,使用新版 Skia(Flutter 上某些平台使用的图形引擎)或 Harfbuzz(Flutter 使用的字体塑造引擎)的新版 Flutter 可能会有影响已提交测试的更改。此类更改不一定附带迁移指南。