Skip to main content

Flutter 兼容性策略

Flutter 团队试图在 API 稳定性的需求与持续改进 API(修复 bug、提升 API 人体工程学以及以一致的方式提供新功能)的需求之间取得平衡。

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

如果您想将测试作为此程序的一部分提供,请向flutter/tests 代码库提交 PR。该代码库上的README详细描述了此过程。

公告和迁移指南

#

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

我们提供受重大更改影响的代码迁移指南 (/release/breaking-changes) 列表。

弃用策略

#

有时我们会弃用某些 API,而不是立即破坏它们。这与我们的兼容性策略无关,我们的兼容性策略完全基于提交的测试是否失败,如上所述。

Flutter 团队不会定期删除弃用的 API。如果团队删除了弃用的 API,则它遵循与重大更改相同的程序。

Dart 和 Flutter 使用的其他库

#

Dart 语言本身有单独的重大更改策略,并在Dart 公告上发布公告。

一般来说,Flutter 团队目前没有关于其他依赖项的重大更改的任何承诺。例如,使用新版 Skia(某些平台上 Flutter 使用的图形引擎)或 Harfbuzz(Flutter 使用的字体整形引擎)的新版 Flutter 可能会有影响贡献测试的更改。此类更改不一定会有迁移指南。