rnc-archive / .github

This repository contains the general guidelines for the RNCommunity org
https://github.com/react-native-community
200 stars 31 forks source link

Getting involved in the React Native Community #46

Closed kelset closed 4 years ago

kelset commented 5 years ago

Introduction

This wants to basically be a "better written version" of the answer I tend to give to people that ask me "how can I get involved in the RNComm" and variations - hoping that this can serve as a baseline to then turn the whole conversation into something we can put in the guidelines.

The core of it

Basically, active involvement in the React Native Community can be sort of defined in one of these three roles:

External contributor

This is the easiest / broadest "bucket" - anyone who submits a PR to any of the repos without having any level of permissions on it is here. The PRs could be about anything, from fixing a bug to improving the README, and usually it's a 1-PR-and-go scenario (also called "drive-by" in some other oss project).

If an external contributor instead keeps "coming back", and shows that they are interested in helping / that they are passionated about the project - which usually means submitting more good quality PRs, they can be turned in...

Internal/core contributor

This kind of contributor is different in two ways from the external one: 1) they have write auth in the repo 2) they are overall responsible for keeping the codebase in a good state, in ways like 1) submittings PRs to keep the repo up to date VS react native 2) publishing new versions 3) work on releases / update / write the changelogs 4) adding toolings for things like CI 5) reviews PRs

Maintainer

Lastly, maintainers - they differ from core contributors in a number of ways: 1) they only require read level of permissions over the repo (of even the new triage role which is still in beta) to get started 2) they are overall responsible for keeping the repo in an healthy state, which means doing things like 1) reviewing PRs 2) do issue grooming/triaing 3) introduce & configure things like ProBots 4) maintain the non-code files in a repo, ex. issue templates, CoC, README etc 5) work on releases / update / write the changelogs

A way to become a maintainer is also to just start helping out in the issue section of the repo by answering to questions, providing repros and or suggesting workarounds - or even cc'ing in the maintainer on issues that can be closed.


All of this said, usually the core contributor and maintainer are collapsed, and in most conversations even in this repo, they are completely interchangeable. I just wanted to, here, point out the difference because it may provide more roads and more opportunities for new introducing new people that are interested in only some of those things.

Also, basically, both roles are reachable via being a good OSS citizen, by showing interest and commitment πŸ€—

Discussion points

Please feel free to add roles, tasks and change the ones I described above - I literally mostly free flow wrote everything above so I'm sure it will not be complete or perfect πŸ˜…

kelset commented 5 years ago

Follow up thingy: for the maintainer role we don't have a "trial" like there's - basically - the external contributor role.

And also, we may basically want to get some less experienced developers involved but since they need some guidance we'd prefer to have a "trial" role for that too.

So I'd propose this intermediate step as:

Lmk what you think - I want a cool name for this role as I feel it would be the one that can make feel new oss citizens more welcomed πŸ€—

andrewtremblay commented 5 years ago

As a "drive-by" contributor, who is looking to be more effective in contributing to the OSS dependencies I use in my projects, but doesn't know how to become more involved in a codebase I know I will be invested in long term (in my case, the Lottie libraries collectively), this is very relevant to my interests.

In my particular case, I might be contributing to multiple repos intermittently (I contribute to lottie-react-native at the moment but will probably want to contribute to react-native-video as well). What would be the best way to maximize my activity and contributions across repositories? I assume these roles are limited to only one repo at a time?

andrewtremblay commented 5 years ago

Also for your the name of the trial role, I propose the title "Apprentice Maintainer", to imply the next role will be Maintainer once the citizen is vetted.

kelset commented 5 years ago

Hey Andrew, thanks for the feedback!

What would be the best way to maximize my activity and contributions across repositories? I assume these roles are limited to only one repo at a time?

Yes and no - meaning: usually maintainers are responsible for one or two repositories, but once you are an active maintainer/core contributor you are also invited to be a member of the RNComm github org, which means that you get write access to all the repos (read more here #40). So once you become a trust-worthy member, you have an easy road in contributing more :)

(and also, access to the discord - I should have been more clear about these things now that I think about it πŸ˜…)

Also for your the name of the trial role, I propose the title "Apprentice Maintainer", to imply the next role will be Maintainer once the citizen is vetted.

Interesting! I don't know if apprentice is a positive term (ex. in Italy it's usually connected to being underpaid/ it has a negative connotation) but yeah something along those lines sounds great!

kelset commented 5 years ago

Other note: we don't have a "procedure" to add/nominate new maintainers πŸ˜…

I'd suggest that every member can nominate new maintainers to be added by doing a PR to the classic https://github.com/react-native-community/.github/blob/master/MAINTAINERS.md file and then we do the whole ordeal of adding them to the org, etc etc etc.

turnrye commented 5 years ago

@kelset I don't know that the same connotation exists here in the US -- I know my family members who are tradesmen view apprenticeships as a pathway to a rewarding career. I'd actually thought of that same phrase before too, because it's pretty fitting. Synonyms I've seen are:

But I still think of the options, apprentice conveys the most accurate depiction.

kelset commented 5 years ago

I see - thanks for the details, I would probably go for Learner or Novice then tbh :3

sibelius commented 5 years ago

related to this https://twitter.com/sseraphini/status/1022482395071688704

can we give admin access to invite external collaborators for repos that maintainers maintain?

My admin is to bring some external collaborators while they fix their issues and implement new features that they need, so they can also help on reviewing pull requests and triaging issues

example,

If as I'm the maintainer of react-native-camera, I should be able to invite more people to help me on react-native-camera project, this external collaborators does not need to be members of react-native-community as they contributions could be one-off or just a few contributions

jgcmarins commented 5 years ago

We've been inviting people to help us on react-native-share and it's working. Developers get engaged to contribute.

kelset commented 5 years ago

this external collaborators does not need to be members of react-native-community as they contributions could be one-off or just a few contributions

I don't understand, why having a organisation called "community" if then we don't add the maintainers as members? πŸ˜•

Also, your definition of external collaborator is in line with what described in the first post - I just don't understand why give them write or even admin access to a repo where they may be contribute just one time? What's wrong with just merging their 1 PR?

Having write access means being responsible for the codebase.

Could you explain more which kind of role are you trying to describe or you'd want to see in the org? It seems that you want a mix of the internal & external described above. We have also proposed a "novice" role in subsequent comments, doesn't that fit your needs?


That said yeah, the maintainers in the .md file should be admin of their repos. Let's move that part of the conversation to a dedicated issue here #54.

Naturalclar commented 4 years ago

@kelset (cc: @cpojer) Hello :wave: I'm really interested in joining the RN Community, and I was wondering if I could be maintainers for a/some repositories that seems to be having trouble maintaining it. I've made some PR to the following repositories that seems to be inactive for a while. react-native-clip-board react-native-progress-bar-android react-native-segmented-control react-native-push-notification-ios Would it be possible if I can take the maintainer role of one ore more repositories? I apologize if this isn't the right place to ask.

cpojer commented 4 years ago

Thank you for offering to help. I added you to those repos!

Naturalclar commented 4 years ago

@cpojer Thank you so much! I'm looking forward to work with other community members.

@kelset Would it be possible to for you to invite me to the react-native-community org and discord?

kelset commented 4 years ago

πŸ‘‹ @Naturalclar - thanks for offering to help! I don't have that level of admin anymore, but I think @cpojer could DM you a link with the invite (cc @Titozzz)

luancurti commented 4 years ago

@cpojer or someone could invite me to be a member of react-native-community ? @vonovak added me as a maintainer of react-native-datetimepicker

cpojer commented 4 years ago

Invite for the npm org sent.

luancurti commented 4 years ago

@cpojer thanks! Accepted invite! Can you invite as a member of org in github?

lucasbento commented 4 years ago

@luancurti just sent you the invitation πŸ™‚

codler commented 4 years ago

@cpojer or @lucasbento Can I also join to react-native-community org in github?

lucasbento commented 4 years ago

Hi @codler, to join the organisation you need to be either maintaining a react-native-community project or actively contributing to one, if the latter is the case I recommend that you contact the maintainers of the project to request to join the organisation.

aksonov commented 4 years ago

Hi guys, I'm not sure that it is right topic, sorry.. I'm author or react-native-router-flux npm package that provides stable navigational API (the same API more than 3 years) and lack of maintainers now to release v5.

I think it is good idea to migrate RNRF to react-native-community and find help to support it here, what do you think?

ajith-ab commented 4 years ago

@kelset (cc: @cpojer ) Hello πŸ‘‹ I'm really interested in joining the React Native Community, and I was wondering if I could be maintainers for a/some repositories that seem to be having trouble maintaining it. I've made some PR to the following repositories that seem to be inactive for a while.

Would it be possible if I can take the maintainer role of one or more repositories? I apologize if this isn't the right place to ask.

Thanks & Regards Ajith A B

kelset commented 4 years ago

@ajith-ab thanks for asking - as far as I can see those 3 libraries you linked are libraries you own? πŸ€”

Maybe you should focus on keeping them active instead of taking extra burden with other libs from the RNComm org?

Or are you asking to migrate those 3 libraries to the org?

ajith-ab commented 4 years ago

@kelset Thanks for replying. yes, those 3 libraries are my own. I am interested in developing new packages and contribute more things to React Native Community. As you wish please add me also to the react-native community

Thanks & Regards Ajith A B

tbenr commented 4 years ago

Hi all! Don't know if it is the right place to talk about this.

I'm contributing to https://github.com/status-im/status-react. Lately I'm working on audio features and i decided to use react-native-audio-toolkit mainly cose I thought that being part of react-community repos should give a good level of quality and maintenance.

Quite early I realize there was several problems on that repo and I provided 4 PRs. There are also other pending PRs and several long-standing issues. I'm happy to contribute but how can we speedup there (cc: @sbeca @kelset)?

kelset commented 4 years ago

hey @tbenr, thanks for offering! I've sent the link to your comment to @sbeca in the internal discord so that hopefully he'll be able to reach out to you soon πŸ€—

@ajith-ab I would recommend that you do similarly to what Enrico is doing: find a library from the RNComm you are using, and start helping it by submitting PRs and then things can evolve from there

tbenr commented 4 years ago

@kelset thanks! good to know you have an internal discord to reach you out :) I would be happy to discuss my PRs with him!

kelset commented 4 years ago

Hey folks, I'm going to close this issue. I should have probably closed it off once I stopped being an owner of the org and while some conversation around this happened I feel that given the "0 executive power" of these conversations it's better to just close them off - so not to give the misleading signal that something is currently being done on my side (or by anyone tbh) around it.

If and when this topic will get picked up again it's much healthier for whoever will actually handle it to just open a new issue. I'm not against the new issue picking up this same conversation, even copy/pasting stuff from here - but I want to close the ones opened up by me off.

numandev1 commented 1 month ago

I'm interested in joining the RN Community, I want to contribute to these repos

https://github.com/react-native-community/upgrade-helper https://github.com/react-native-community/cli

currently maintaining https://github.com/numandev1/react-native-compressor