发布 React Native 0.67
大家新年快乐!今天我们发布了最新的 React Native 版本 0.67.0,以及过去几个月我们一直在努力进行的发布流程的一些更新。
章节
0.67 的亮点
正如 Meta 的 2021 年下半年计划 中提到的,React Native 正在尝试更频繁的发布,以缩短新功能和修复程序(如全新架构)在社区中落地的时间。 自然地,许多版本将侧重于修复和改进。
以下是 0.67.0 中的一些值得注意的更改
- 精简核心移除:DatePickerAndroid
- 将 Gradle 版本提升至 7.2,将 Kotlin 版本提升至 1.5.31 提升 Kotlin 和 Gradle 版本 (#32319)
- 一个值得注意的点:0.67 继续依赖 Hermes 0.9.0,与 0.66 相比没有变化
您可以在完整更新日志中找到更多信息。
您可以在此讨论中参与关于此版本状态的对话 - 并且,与往常一样,为了帮助您升级到此版本,您可以使用升级助手 ⚛️
鸣谢
此版本包含379 次提交,共有 74 位贡献者!感谢所有的新老贡献者!您可以在完整更新日志中找到更多信息。
我们还要感谢发布测试人员,他们帮助我们确保 0.67.0 能够到达您的代码库而不会出现任何大规模回归。 特别是,我们要感谢
- 来自 Margelo 的 Marc Rousavy (@mrousavy),他发现了 Hermes 0.10 的回归(这在 CI 测试中永远不会被发现),该回归将在 React Native 0.68 版本中的 Hermes 0.11 中修复。
- Reanimated 团队,感谢他们在 0.67 RC 阶段早期快速准备了他们库的0.67 兼容版本。
- 来自 Mattermost 的 Elias Nahum (@enahum)
- 与 Invertase 合作的 Mike Hardy (@mikeHardy)
我们还要感谢 Rainbow、Comm 和 Ledger Live 也参与了“发布测试人员”计划的试点(更多详细信息见下文)。
发布流程的改进
如前所述,React Native 一直在重组发布管道,以允许更频繁的发布,以便更快地向社区推出新功能和修复程序。
在过去的几个月中,我们解决了导致发布延迟的一些问题。
协调和知识共享
我们在发布文档方面投入了大量精力,涵盖了如何运行发布、常见问题解答、发布问题协调等 - 所有这些都可以在 react-native wiki 的此部分中找到。 通过文档,发布不再受任何个人或部落知识的阻碍。
除了文档之外,我们还改进了发布协调,并将预发布状态和补丁的讨论移至专门的讨论组:react-wg/react-native-releases。
责任明确
随着更多文档的完善,发布工作可以扩展,从而使任何一个人都不会成为运行发布的关键。
React Native 发布容易受到各种潜在故障点的影响,并且具有许多依赖项和后续步骤。 考虑到 React Native 在社区中的使用情况各不相同,让利益相关者参与发布至关重要。 我们定义了一组支持发布的角色和责任。
发布候选信号
发布的另一个问题是获得良好的信号,表明发布不会遭受构建回归。 这可以通过增加对测试构建变体等的投资来解决,但是来自采用的信号在一段时间内仍然有用。
在 0.67 版本中,我们试行了一个“发布测试人员”计划,其中使用开源应用程序的 React Native 开发人员承诺在其应用程序上测试发布候选版本。 之前,没有正式的期望社区会测试发布候选版本以提出任何潜在问题。 该计划帮助我们获得更快的信号,以确保发布的稳定性。
开源 React Native 应用程序特别有用,因为源代码的可用性有助于调试任何回归。 通过这个计划,一个发布测试人员发现了 0.67 中的一个回归,我们能够在不因有缺陷的发布而困扰更大的社区的情况下解决它。
有兴趣帮助 React Native 稳定新版本吗?
帮助我们捕获回归的一个好方法是将 React Native 预发布版本 react-native@next
或 react-native@nightly
集成到您的 CI 中。 对于任何回归,您可以提交发布问题并通知相应的讨论。
如果您的应用程序或公司有兴趣加入“发布测试人员”计划,请访问发布角色和责任 wiki底部的专用部分以了解更多信息。
最后,非常感谢您在尝试我们的发布候选版本或帮助解决发布问题方面的任何帮助!