跳到主要内容

2019 年 3 月 React Native 开源更新

·6 分钟阅读
Christoph Nakazawa
Christoph Nakazawa
前 Facebook 工程师

我们在 2018 年第四季度宣布了我们的 React Native 开源路线图,此前我们决定加大对 React Native 开源社区的投入。

作为我们的第一个里程碑,我们专注于识别和改进社区最显著的方面。我们的目标是减少未处理的拉取请求,缩小项目的表面积,识别主要的用户问题,并建立社区管理指南。

在过去的两个月里,我们取得了比预期更多的进展。请继续阅读以了解更多详情

拉取请求

为了建立一个健康的社区,我们必须快速响应代码贡献。在过去几年里,我们降低了社区贡献审查的优先级,积累了 280 个 pull requests(2018 年 12 月)。在第一个里程碑中,我们将未处理的 pull requests 数量减少到约 65 个。同时,每天新增的 pull requests 数量从 3.5 个增加到 7 个,这意味着我们在过去三个月里处理了大约 600 个 pull requests

我们合并了 近三分之二 的 pull requests,关闭了三分之一。如果 pull requests 过时、质量低下或不必要地增加了项目的表面积,它们就会被关闭而未被合并。大多数合并的 pull requests 修复了 bug、提高了跨平台一致性或引入了新功能。值得注意的贡献包括提高了类型安全性以及正在进行的 AndroidX 支持工作。

在 Facebook,我们从 master 分支运行 React Native,因此我们在将所有更改发布到 React Native Release 之前首先进行测试。在所有合并的拉取请求中,只有六个导致了问题:四个只影响内部开发,两个在发布候选阶段被发现。

一项更引人注目的社区贡献是 更新的“RedBox”屏幕。这是社区让开发者体验更友好的一个很好的例子。

精简核心

React Native 目前的表面积非常广,其中有许多未维护的抽象,我们在 Facebook 并没有大量使用。我们正在努力减少表面积,以使 React Native 更小,并允许社区更好地维护在 Facebook 几乎不使用的抽象。

在第一个里程碑中,我们 向社区寻求 Lean Core 项目的帮助。反响非常热烈,我们几乎跟不上所有进展。 查看不到一个月内完成的所有工作

让我们最激动的是,维护者们已经积极地修复了长期存在的问题,添加了测试,并支持了长期以来大家要求的功能。这些模块获得了比以往在 React Native 内更多的支持,表明这是社区迈出的重要一步。例如, WebView 在被提取后 收到了许多 pull requests,而 CLI 现在 由社区成员维护 并获得了急需的改进和修复。

主要用户问题

12 月份,我们询问社区 他们不喜欢 React Native 的地方。我们汇总了这些反馈并 对每一个问题都进行了回复。幸运的是,社区面临的许多问题也是 Facebook 面临的问题。在下一个里程碑中,我们计划解决一些主要问题。

投票最多的问题之一是升级到更高版本的 React Native 的开发人员体验。不幸的是,这不是我们自己经历的问题,因为我们从 master 运行 React Native。值得庆幸的是,社区成员已经开始着手解决这个问题

0.59 版本

如果没有 React Native 社区的帮助,尤其是 Mike GrabowskiLorenzo Sciandra 的帮助,我们将无法发布新版本。我们希望改进发布管理流程,并计划从现在开始更积极地参与其中。

  • 我们将与社区成员合作,为每个主要版本撰写一篇博文。
  • 当人们升级到新版本时,我们将在 CLI 中直接显示重大更改。
  • 我们将缩短发布所需的时间。我们正在探索增加自动化测试的方法,并创建改进的手动测试计划。

这些计划中的许多内容将纳入即将发布的 React Native 0.59 版本。0.59 将支持 React Hooks,为 Android 提供新的 64 位 JavaScriptCore 版本,并包含许多性能和功能改进。该版本目前已发布为候选版本,预计将在两周内稳定。

后续步骤

在接下来的两个月里,我们将继续管理 pull requests 以保持进度,同时开始减少未关闭的 GitHub issue 数量。我们将继续通过 Lean Core 项目减少 React Native 的表面积。我们计划解决 5 个社区面临的首要问题。随着社区指南的最终确定,我们将把注意力转向我们的网站和文档。

我们非常高兴在三月份在 Facebook 伦敦接待来自我们社区的十多位贡献者,帮助推动这些努力。我们很高兴您正在使用 React Native,并希望您能看到并感受到我们正在 2019 年努力带来的改进。我们将在几个月后再次发布更新,并且*在此期间将合并您的拉取请求!* ⚛️✌️