Skip to content

Commit 502a0bf

Browse files
committed
🏗 starting
0 parents  commit 502a0bf

File tree

3 files changed

+135
-0
lines changed

3 files changed

+135
-0
lines changed

README.md

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# React Native: Discussions and Proposals
2+
3+
Do you have an idea on how to make React Native better?
4+
5+
Do you want to discuss an aspect of the framework?
6+
7+
This repository is the right place to do so!
8+
9+
## Introduction
10+
11+
This repository was born by the desire of more transparency and a dedicated communication channels among members of the community.
12+
13+
In order to do so, it has been decided to focus this repository to provide a safe environment to propose and generate interesting conversations related to the [main React Native](https://github.com/facebook/react-native) repository.
14+
15+
### Discussions
16+
17+
React Native is still a young framework, and its rapid release cycle leaves the door open for discussing how it can evolve at every step of the way.
18+
19+
The issue section of this repository is open for anyone to propose a subject related to the React Native library that deserves a discussion.
20+
21+
### RFCs
22+
23+
The "RFC" (request for comments) process is intended to provide a consistent and controlled path for new features to be proposed and championed to then enter the project.
24+
25+
It is inspired by the [React RFC repo](https://github.com/reactjs/rfcs), but today we don't expect for every substantial change to go through this process; however, we hope that this brings more awareness to the community.
26+
27+
## CoC
28+
29+
Similarly to the main repository, this project has adopted a Code of Conduct that we expect project participants to adhere to. Please read [the full text](https://code.facebook.com/codeofconduct) so that you can understand what actions will and will not be tolerated.
30+
31+
## TODO
32+
33+
- [ ] better README (expand on the Discussion section, explain better why another repo)
34+
- [ ] create label system
35+
- [ ] create templates for issues and PRs
36+
- [ ] migrate [For discussion](https://github.com/facebook/react-native/labels/For%20Discussion) issues from the main repo
37+
- [ ] complete and review the RFC process

proposals/0000-template.md

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
---
2+
title: Title goes here
3+
author:
4+
- Jane Doe
5+
date: today
6+
---
7+
8+
# RFC0000: Title goes here
9+
10+
## Summary
11+
12+
Brief explanation of the change.
13+
14+
## Basic example
15+
16+
If the proposal involves a new or changed API, include a basic code example. Omit this section if it's not applicable.
17+
18+
## Motivation
19+
20+
Why are we doing this? What use cases does it support? What is the expected outcome?
21+
22+
Please focus on explaining the motivation so that if this RFC is not accepted, the motivation could be used to develop alternative solutions. In other words, enumerate the constraints you are trying to solve without coupling them too closely to the solution you have in mind.
23+
24+
## Detailed design
25+
26+
This is the bulk of the RFC. Explain the design in enough detail for somebody familiar with React Native to understand, and for somebody familiar with the implementation to implement. This should get into specifics and corner-cases, and include examples of how the feature is used. Any new terminology should be defined here.
27+
28+
## Drawbacks
29+
30+
Why should we _not_ do this? Please consider:
31+
32+
- implementation cost, both in term of code size and complexity
33+
- whether the proposed feature can be implemented in user space
34+
- the impact on teaching people React Native
35+
- integration of this feature with other existing and planned features
36+
- cost of migrating existing React Native applications (is it a breaking change?)
37+
38+
There are tradeoffs to choosing any path. Attempt to identify them here.
39+
40+
## Alternatives
41+
42+
What other designs have been considered? Why did you select your approach?
43+
44+
## Adoption strategy
45+
46+
If we implement this proposal, how will existing React Native developers adopt it? Is this a breaking change? Can we write a codemod? Should we coordinate with other projects or libraries?
47+
48+
## How we teach this
49+
50+
What names and terminology work best for these concepts and why? How is this idea best presented? As a continuation of existing React patterns?
51+
52+
Would the acceptance of this proposal mean the React Native documentation must be re-organized or altered? Does it change how React Native is taught to new developers at any level?
53+
54+
How should this feature be taught to existing React Native developers?
55+
56+
## Unresolved questions
57+
58+
Optional, but suggested for first drafts. What parts of the design are still TBD?

proposals/README.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# Planning and Proposals for Reach Native
2+
3+
Many changes, including bug fixes and documentation improvements can be implemented and reviewed via the normal GitHub pull request workflow in the React Native project. Some changes are substantial enough to need additional planning, and others have enough impact to need additional community input. We ask that both of these use the following proposal format below when practical.
4+
5+
[Active Proposal List](https://github.com/react-native-community/discussions-and-proposals/pulls?q=is%3Aopen)
6+
7+
## The process
8+
9+
In short, to make a major change to React Native, make a proposal and submit it as a pull request. The community will review it and may opt to approve it. At that point the proposal is accepted and may be implemented.
10+
11+
- Fork this repository [react-native-community/discussions-and-proposals](http://github.com/react-native-community/discussions-and-proposals)
12+
- Copy `proposals/0000-template.md` to `proposals/0000-my-feature.md` (where 'my-feature' is the title in kebab case; don't assign a number yet).
13+
- Fill in the proposal. Put care into the details: **Proposals that do not present convincing motivation, demonstrate understanding of the impact of the design, or are disingenuous about the drawbacks or alternatives tend to be poorly-received**.
14+
- Submit a pull request. As a pull request the proposal will receive feedback from the larger community, and the author should be prepared to revise it in response.
15+
- Build consensus and integrate feedback. Proposals that have broad support are much more likely to make progress than those that don't receive any comments.
16+
- Eventually, the team will decide whether the proposal is a candidate for adoption.
17+
- A proposal can be modified based upon feedback from the team and community. Significant modifications may trigger a new final comment period.
18+
- A proposal may be rejected by the team after public discussion has settled and comments have been made summarizing the rationale for rejection. A member of the team should then close the associated pull request.
19+
- An proposal may be accepted. A team member will merge the proposal's associated pull request, at which point the proposal will become adopted.
20+
21+
## After acceptance
22+
23+
Once a proposal is accepted, then authors may implement it. This may mean submitting a pull request to the React Native repository or putting some other process into place. Acceptance however does not mean that resources are committed to the work; instead it means that the group is open to the change taking place.
24+
25+
Modifications to accepted proposals can be done in followup PRs.
26+
27+
## Implementing a proposal
28+
29+
The author of a proposal is not obligated to implement it. Of course, the proposal author (like any other community member) is welcome to post an implementation for review.
30+
31+
## Reviewing a proposal
32+
33+
Periodically the team will attempt to review the active proposals. We try to accept proposals at the monthly team meeting, and actions are recorded in the meeting minutes. Every accepted feature should have a core team champion, who will represent the feature and its progress.
34+
35+
**React Native's proposal process owes its inspiration to the [Rust RFC process], the [Ember RFC process], the [Yarn RFC process], and the [React RFC process]**
36+
37+
[yarn rfc process]: https://github.com/yarnpkg/rfcs
38+
[react rfc process]: https://github.com/reactjs/rfcs
39+
[rust rfc process]: https://github.com/rust-lang/rfcs
40+
[ember rfc process]: https://github.com/emberjs/rfcs

0 commit comments

Comments
 (0)