React Native 开源更新 2019 年 3 月
在决定更多地投资 React Native 开源社区后,我们在 2018 年第四季度宣布了我们的 React Native 开源路线图。
对于我们的第一个里程碑,我们专注于识别和改进我们社区中最显着的方面。我们的目标是减少未完成的拉取请求,减少项目的表面积,识别领先的用户问题,并建立社区管理指南。
在过去的两个月里,我们取得的进展超出了预期。继续阅读以了解更多详情
拉取请求
为了构建一个健康的社区,我们必须快速响应代码贡献。在过去的几年里,我们降低了审查社区贡献的优先级,并积累了 280 个拉取请求(2018 年 12 月)。在第一个里程碑中,我们将未完成的拉取请求数量减少到约 65 个。同时,每天打开的拉取请求平均数量从 3.5 个增加到 7 个,这意味着我们在过去三个月处理了大约 600 个拉取请求。
我们合并了 近三分之二 并关闭了三分之一的拉取请求。如果它们已过时或质量较低,或者如果它们不必要地增加了项目的表面积,则会在未合并的情况下关闭它们。大多数合并的拉取请求修复了错误,改进了跨平台一致性或引入了新功能。值得注意的贡献包括改进类型安全性以及支持 AndroidX 的持续工作。
在 Facebook,我们从 master 运行 React Native,因此我们在更改进入 React Native 版本之前首先对其进行测试。在所有合并的拉取请求中,只有六个导致了问题:四个只影响内部开发,两个在候选版本状态下被捕获。
社区贡献中更显眼的一个是 更新的“RedBox”屏幕。这是一个很好的例子,说明了社区如何使开发者体验更加友好。
精简核心
React Native 目前拥有非常广阔的表面积,其中包含许多我们不在 Facebook 中大量使用的未维护的抽象。我们正在努力减少表面积,以使 React Native 更小,并允许社区更好地维护在 Facebook 中大部分未使用的抽象。
在第一个里程碑中,我们请求社区在精简核心项目中提供帮助。反响非常热烈,我们几乎无法跟上所有进展。查看不到一个月内完成的所有工作!
我们最兴奋的是,维护人员已经开始修复长期存在的问题,添加测试并支持长期以来需要的功能。这些模块正在获得比以往在 React Native 中更多的支持,表明这对社区来说是一个巨大的进步。此类项目的示例包括 WebView,自提取以来 已收到许多拉取请求,以及现在由 社区成员维护的 CLI,并收到了急需的改进和修复。
领先的用户问题
12 月份,我们询问了社区他们 不喜欢 React Native 的哪些方面。我们汇总了回复并 回复了每一个问题。幸运的是,我们社区面临的许多问题也是 Facebook 遇到的问题。在我们的下一个里程碑中,我们计划解决一些主要问题。
投票数最高的问题之一是将 React Native 升级到较新版本时的开发者体验。不幸的是,我们自己并没有遇到这个问题,因为我们从 master 运行 React Native。值得庆幸的是,社区成员已经开始着手解决这个问题。
- Michał Pierzchała 来自 Callstack 改进了 react-native upgrade,在后台使用了 rn-diff-purge。我们还更新了网站,以删除过时的升级说明。
- 我们计划默认推荐在 iOS 项目中使用 CocoaPods,这将减少在升级 React Native 时项目文件中的变化。这将使人们更容易安装和链接第三方模块,这在精简核心的背景下更加重要,因为我们预计项目默认会链接更多模块。
0.59 版本
如果没有 React Native 社区的帮助,特别是 Mike Grabowski 和 Lorenzo Sciandra,我们将无法发布版本。我们希望改进发布管理流程,并计划从现在开始更多地参与其中。
- 我们将与社区成员合作,为每个主要版本创建一篇博客文章。
- 当人们升级到新版本时,我们将在 CLI 中直接显示重大更改。
- 我们将缩短发布所需的时间。我们正在探索提高自动化测试的方法,并创建改进的手动测试计划。
许多这些计划将被纳入即将发布的 React Native 0.59 版本 中。0.59 将随附 React Hooks、Android 的全新 64 位 JavaScriptCore 版本以及许多性能和功能改进。它目前已发布为候选版本,预计在未来两周内将稳定。
后续步骤
未来两个月,我们将继续管理拉取请求 以保持正轨,同时开始减少未解决的 GitHub 问题的数量。我们将继续通过 Lean Core 项目缩减 React Native 的功能范围。我们计划解决社区排名前 5 的问题。随着社区指南的最终确定,我们将把注意力转向我们的网站和文档。
我们非常高兴能够在 3 月份邀请超过 10 位来自社区的贡献者到 Facebook 伦敦总部,帮助推动其中一些工作。我们很高兴您正在使用 React Native,并希望您在 2019 年能够看到和感受到我们正在进行的改进。我们将在几个月后再次发布更新,在此期间,我们将合并您的拉取请求! ⚛️✌️