-
Notifications
You must be signed in to change notification settings - Fork 142
Description
Introduction
This conversation started during the last core meeting, when talking about Facebook and Community involvement in moving this project forward.
This issue wants to serve as the 'main focus' around this topic, and some of its subjects are actually explored more in-depth in dedicated issues. Please remember that the the purpose of this discussion is to make the overall environment better for everyone involved: we (community and FB members alike) all love React Native and want to collaborate in the best way possible to see it become (even more) awesome.
The Core of It
React Native is an Open Source project created by Facebook - it is used internally, and the GitHub repository serves as a mirror of the commits that land in the internal react-native-github directory in Facebook's monorepo.
The Open Source version is consumed by the broader developer community through npm releases, that are currently maintained by a restrict group of members of the React Native core team - coordination and decision making about them is (mostly) handled via a dedicated community repository, react-native-releases.
Members of the community are also involved in maintaining the main repository: help with issue triaging (and labelling, and closing) and PR reviews (and a few members are also able to trigger the import process).
Another two, more recents, ways the community is getting more involved in shaping the future of React Native are:
- this very repository, for discussions and proposals and increasing transparency between FB <-> the Core team <-> the broader community
- the Slimmening process
This increasing involvement is helping the project move forward faster, and to reassure everyone of the huge commitment of all the parties involved in seeing RN succeed.
But, as most other Open Source projects, there is an underlying issue which is sustainability: while the FB team is paid to work on React Native, all of the tasks listed above that are handled by the community are not*.
This can generate issues of many forms that mostly boil down to reliability/stability/consistency of involvement in said tasks.
So: what can be done, by all the parties involved, to make sure that both RN and the community continue to be healthy?
Discussion points
- FB is still (pretty much) owner if RN:
- Well, first off, it legally is
- It’s an FB repo
- Commits from FB lands on master without going through the PR process
- Facebook experiments with additional improvements that may or may not make it out to open source, for example additional bundle formats
- Landing PRs is locked by FB importing it via the custom internal flow (which historically slowed a lot of PRs from landing)
- the technical expertise is very concentrated within FB
- How can we make more members of the community more involved, what is the nature of the core, is it needed? (dedicated discussion)
- Can some of the tasks handled by the community made more automatic, in order to reduce the workload? (dedicated discussion about the release cycle)
- Is there a funding model to support OSS community work that could fit this? So that companies like FB could pay into.
* or, at the best of my knowledge, not directly - best scenario I am aware of is companies giving their developers work hours to dedicate to those tasks