React Native 2019 年 3 月开源进展(翻译)

2019-03-05

前言

本文的作者为 Christoph Nakazawa,文章源链接 React Native Open Source Update March 2019,文章发表日期为 2019 年 3 月 1 日。

在决定对 React Native 开源社区投入更多精力后,2018 Q4 我们发布了 React Native Open Source roadmap

我们的第一个里程碑是,我们聚焦于识别和改进社区中最明显的方面。我们的目标是减少未完成的 Pull Request,减少项目的 surface area,辨别主要的用户问题,并为社区管理建立指南。

在过去的两个月里,我们取得了比预期更多的进展。详情如下:

Pull Requests

为了打造一个健康的社区,我们必须快速响应用户的贡献。在过去的几年中,我们取消了对社区贡献评估的优先级,并累积了 280 个 Pull Request(2018 年 12 月)。

在第一个里程碑中,我们将未关闭的 Pull Request 数量降低到约 65 个。同时,每天新开的 Pull Request 数量从 3.5 上升到 7,这意味着我们在过去的 3 个月中处理了大约 600 个 Pull Request

三分之二的 Pull Request 被合入,三分之一被关闭。如果它们过时或者质量太低,或者不必要地增加了项目的 surface area,就会被关闭。

大多数被合入的 Pull Request 都是修复 Bug、提高跨平台一致性,或者引入新的特性。

值得注意的贡献包括增强类型安全性和正在进行的对 AndroidX 的支持工作。

在 Facebook,我们从 master 分支运行 React Native,因此我们首先测试所有更改,然后再将其发布到 React Native 正式版中。

在所有的 Pull Request 中,只有 6 个导致了问题:其中 4 个影响了内部开发,2 个在版本候选状态时被发现。

社区贡献中最突出的一个是对 RedBox 界面的更新。这是社区如何使开发者体验变好的一个很好的例子。

内核瘦身

React Native 目前的 surface area 太宽了,有许多不再维护的抽象,我们在 Facebook 也不常用。我们正在努力减少 surface area,使 React Native 变得更小,并允许社区更好地处理大部分 Facebook 未使用到的抽象。

在第一个里程碑中,我们在内核瘦身项目上向社区寻求帮助。反响十分热烈,进展快到我们几乎都跟不上。看看最近一个月完成的工作吧!

我们最兴奋的是,维护者已经开始修复长期存在的问题,添加测试,并开始开发期待已久的特性。React Native 中的模块得到了比以往更多的支持,说明这是社区迈出的重要一步。

这个项目的一个例子是 WebView,剥离后收到了很多 Pull Request。CLI 现在现在由社区成员维护,收到了许多需要的改进和修复。

用户的主要问题

在 12 月,我们向社区询问,不喜欢 React Native 的原因都有哪些

我们汇总了所有反馈,并对每个问题进行了回答

幸运的是,社区面临的许多问题也是 Facebook 所面临的。

在我们下一个里程碑中,我们计划解决一部分主要问题。

投票最高的问题中的一个是 React Native 版本升级时的开发者体验问题。不幸的是,我们自己没有这个问题,因为我们是从 master 分支运行 React Native。

幸运的是,社区成员已经开始着手解决这个问题:

0.59 正式版

没有社区的帮助,特别是 Mike GrabowskiLorenzo Sciandra,我们将无法发布新版本。我们想改善发布管理流程,并计划从现在开始进行更多的投入:

  • 我们将与社区成员合作,为每个主要版本创建一个博客文章。
  • 当人们升级新版本是,我们将在 CLI 中直接展示破坏性的改变。
  • 我们将缩短发布时间。我们正在探索增加自动化测试的方法,并创建一个改进的手工测试计划。

这些计划中的许多将包含在即将发布的 React Native 0.59 中。

0.59 将会带来 React Hooks、一个新的 64 位版本的 Android JavaScriptCore、以及许多性能与功能的改进。

目前它整作为发布候选被发布,预期在未来两种时间内进入稳定状态。

下一步

在未来两个月中,我们会继续管理 Pull Request,并每天进行跟踪。同时也开始减少 GitHub 上未关闭的问题。

我们会继续通过内核瘦身计划减少 React Native 的 surface area。

我们计划解决社区排名前五的问题。

当我们最终确定社区指导方针时,我们将把注意力转向我们的网站和文档。

今年 3 月,我们非常高兴地邀请了来自 Facebook 伦敦社区的 10 多位贡献者,帮助推动其中的这些努力。

我们很高兴你使用 React Native,希望你能看到并且感受到我们在 2019 年进行的改进。

我们将在几个月后再回来更新,在此期间我们会合并你的 Pull Request!⚛️✌️