react-native-community / discussions-and-proposals

Discussions and proposals related to the main React Native project
https://reactnative.dev
1.68k stars 126 forks source link

Architectural improvements for new contributors #207

Open lcelso opened 4 years ago

lcelso commented 4 years ago

Introduction

Hello guys, I am currently trying to contribute to the community, I have already done this with the react native website and I would also like to contribute here.

Improvement points for those who want to contribute.

However, I noticed some points and I would like to talk about them with you.

I've been looking at some repositories and found some points that I would like to put as an improvement:

The Core of It

Having an architecture standard, be it folders, test coverage, typescript usage, among other points, I found some differences between repos, some have test coverage, others don't, some the test folder is in src and follows the test pattern , others are just called 'test'.

Another issue is, do we have any plans to start using the new hooks.

Discussion points

pvinis commented 4 years ago

I'm not the one deciding, but I feel things are ok. I understand that sometimes it's funky if you contribute to one repo and go to another and things are slightly different, but this allows for the freedom to use things the maintainers and contributors of each repo to make it easy/enjoyable for them. And I don't think anyone would be against adding/changing something to become more in-line with the rest of RNC, but I don't think it should be a regulated initiative to change everything to use the same things.

More specifically, folder structure is usually one of the two or three possibilities, not too bad or confusing.

Typescript is used in most, and a lot of js reps are moved to ts by contributors/maintainers like it happened with the hooks repo recently.

Tests usually are not the first priority but people are welcome to add them. Even if they fail at first, they are welcome and they can be used to fix a bug for example.

For hooks, every repo is free to use them as they like. I see most do the new cose using them. I don't see a lot of the repos creating hooks and exporting them, but that's easy to add as a contribution again.

That's only my opinion here. Looking forward to hearing more opinions.

kelset commented 4 years ago

👋 there.

I sympathise with your comment, and I'd also like to see more 'standardisation' among the repos in the RNCommunity org. That said, it's a massive effort that we tried to tackle some months ago via creating a dedicated repo & discussing each potential guideline -> https://github.com/react-native-community/.github/issues

and that didn't lead to much 😓 So what can you do, you may ask? My mindset is now towards changing what I have the power to change - which means: if you are a maintainer for a repo, start applying the guidelines you consider best in it. Once you are satisfied with them, you can start mentioning them to other repos, and "leading by example" some other maintainers may start to do the same in theirs.

Even if you are not a maintainer, I'd start by posting an issue in one of the repos - preferably a lib you use a lot - suggesting one of the improvements, and once the maintainer gives you ✅ start implementing it in that lib.

lcelso commented 4 years ago

@pvinis

Thanks for your point here.

My point is to have the minimum of standard and from that point onwards each one follows his course, with things that make sense to the ecosystem in which he lives.

In my view this could help people to contribute more.

I just disagree on one point, I believe that testing is something fundamental and you can't launch something to the community without it.

@kelset

In your view, how could someone new here start to contribute?

kelset commented 4 years ago

In your view, how could someone new here start to contribute?

As I mentioned above,

I'd start by posting an issue in one of the repos - preferably a lib you use a lot - suggesting one of the improvements, and once the maintainer gives you ✅ start implementing it in that lib.

More in general, my recommendation is to go on the repo of one of the libraries you use the most and look for "good first issue" labelled issues. And comment/offer to work on those. After a few I'm sure that the current maintainer will gladly onboard you to the repo, which can lead to then become a member of the Org. That said, there is not clear path for this either, more info here: https://github.com/react-native-community/.github/issues/46

organom commented 4 years ago

I would like to add 2 points for consideration:

kelset commented 4 years ago

What about repository naming convention?

I agree, currently there is no consistent naming. And that I am aware of there's no guideline as is atm.

this repository VS react-native-community/.github -> I'm not sure if they serve different purposes, but they seem to overlap, should they be merged to avoid confusion and duplication?

they do serve different purposes. In particular, the .github repo has some extra github magic that allows some files within it to be replicated across all the other RNComm repos. That said, I understand the confusion, I feel that this specific conversation should have been opened there since it's a meta conversation around how the RNComm OSS side is handled and it's not a conversation around react-native itself.

(if @lcelso allows me I could transfer this issue into the .github repo)