发布 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 中。对于任何回归,您可以 提出发布问题 并通知相应的讨论组。
如果您的应用或公司有兴趣加入“发布测试员”计划,请前往 发布角色和职责维基底部的专用部分了解更多信息。
最后,非常感谢任何尝试我们的发布候选版本或帮助解决发布问题的帮助!