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