TheReact Native Open Source roadmap was announced in Q4 2018 after they decided to invest more in the React Native open source community.
For the first milestone, they focused on identifying and improving the most visible aspects of the community. The goals were to reduce outstanding pull requests, reduce the project's surface area, identify leading user problems, and establish guidelines for community management.
In the past two months, they made more progress than expected. Read on for more details:
In order to build a healthy community, they must respond quickly to code contributions. In past years, they de-prioritized reviewing community contributions and accumulated 280 pull requests (December 2018). In the first milestone, they reduced the number of open pull requests to around 65. Simultaneously, the average number of pull requests opened per day increased from 3.5 to 7, meaning they handled about 600 pull requests in the past three months.
They merged almost two-thirds and closed one-third of the pull requests. Most of the merged pull requests fixed bugs, improved cross-platform parity, or introduced new features. Notable contributions included improving type safety and the ongoing work to support AndroidX. Out of all the merged pull requests, only six caused issues: four only affected internal development and two were caught in the release candidate state. One of the more visible community contributions was the updated “RedBox” screen. It's a good example of how the community is making the developer experience friendlier.
React Native currently has a very wide surface area with many unmaintained abstractions that they do not use a lot at Facebook. They are working on reducing the surface area in order to make React Native smaller and allow the community to take better care of abstractions that are mostly unused used at Facebook.
In the first milestone, they asked the community for help on the Lean Core project. The response was overwhelming and they could barely keep up with all the progress.
What was most exciting is that maintainers have jumped in fixing long standing issues, adding tests, and supporting long requested features. These modules are getting more support than they ever did within React Native, showing that this is a great step for the community. Examples of such projects are WebView that has received many pull requests since their extraction and the CLI that is now maintained by members of the community and received much needed improvements and fixes.
Leading User Problems
In December, the community was asked what they disliked about React Native. Responses were aggregated and problems were replied to. Fortunately, many of the issues that the community faces are also problems at Facebook. In the next milestone, they plan to address some of the main problems.
One of the highest voted problems was the developer experience of upgrading to newer versions of React Native. Unfortunately, this is not something that developers experience themselves because they run React Native from master. Thankfully, members from the community already stepped up to address this problem:
Without the help of the React Native community, developers would not be able to ship releases. Therefore, they want to improve the release management process and plan to be more involved from now on:
- Developers will work with community members to create a blog post for each major release.
- Developers will show breaking changes directly in the CLI when people upgrade to new versions.
- Developers will reduce the time it takes to make a release. They are exploring ways to increase automated testing and improve the manual test plan.