diff --git a/docs/faq.md b/docs/faq.md index 7511c8c95d..439e9b3e1b 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -142,18 +142,14 @@ Please see [Getting Started][getting-started-link] and Yes, each Contributor must sign and return the [Contributor License Agreement][cla-link] -### How can I become a WebRTC committer? - -After 10-20 non-trivial patches you can apply for commit rights. If you are -writing a lot of patches you can also apply for try job access before then. -To apply, open a bug on https://bugs.chromium.org/p/webrtc/ specifying the -e-mail you will use to commit code to WebRTC and list all the relevant CLs to -show your previous contributions (even in case you are only requiring try job -access since it is still required a certain number of contributions for that -as well). - [cla-link]: https://developers.google.com/open-source/cla/individual?hl=en +### How can I become a WebRTC committer? + +The process of becoming a committer is documented in a +[separate page][become-a-committer]. + +[become-a-committer]: https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/become_a_committer.md ### Do I have to be a programmer to use WebRTC? diff --git a/g3doc/become_a_committer.md b/g3doc/become_a_committer.md new file mode 100644 index 0000000000..8781b7aef8 --- /dev/null +++ b/g3doc/become_a_committer.md @@ -0,0 +1,64 @@ +# How to become WebRTC committer + + + + +## WebRTC committer duties + +WebRTC committers are responsible for keeping WebRTC codebase in a good shape +including, but not limited to the following aspects: + +* Code complexity and correctness +* C++ best practices +* Code formatting +* Test coverage +* Class/function level and conceptual documentation + +Whenever a committer sets `Code Review +1` label on the CL, they approve that +the CL fulfills WebRTC style guides, language mastery, testability and +documentation. Being a committer means being responsible for the WebRTC codebase +health and code quality. + +## Becoming a WebRTC committer + +To write code in WebRTC you don't need to be a committer (also see [FAQ][1]), +but to submit code to WebRTC you do. So if you don't plan to work on the WebRTC +codebase regularly, you can ask other committers through code review to submit +your patches, but if you are going to work in the WebRTC codebase, then it's +recommended to apply for WebRTC committer rights obtaining process. + +1. If you are going to write in C++ make yourself familiar with with C++ style + guides: + + * [Google style guide][5] + * [Chromium style guide][2] + * [WebRTC style guide][3] + +2. Create a ticket to obtain WebRTC committers rights in Monorail. + + TODO: add link to the template. + +3. Pick a mentor among WebRTC committers, who will review your CLs. For C++ + authors, the mentor will also look for C++ readability skills. It's + recommended to ask someone who is familiar with the code base which you will + be working on (you can check OWNERS files to find such person). Otherwise + you can reach out to committers mailing list \. + +4. Send CLs to the mentor for review and attach them to the created ticket. + +5. When the mentor decides that you are ready (for C++ authors their C++ + readability skills are good enough), they will send a proposal for granting + WebRTC committer rights to the reviewing committee mailing list to review. + If the proposal will be approved, then committer rights will be granted. + Committee members will have up to 5 business days to answer. In case of + rejection detailed feedback on what aspects should be improved will be + provided. + +6. Also as any contributor you must sign and return the + [Contributor License Agreement][4] + +[1]: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/faq.md#to-be-a-contributor_do-i-need-to-sign-any-agreements +[2]: https://chromium.googlesource.com/chromium/src/+/refs/heads/main/styleguide/c++/c++.md +[3]: https://webrtc.googlesource.com/src/+/refs/heads/main/g3doc/style-guide.md +[4]: https://developers.google.com/open-source/cla/individual?hl=en +[5]: https://google.github.io/styleguide/cppguide.html diff --git a/g3doc/sitemap.md b/g3doc/sitemap.md index c893d6ce3a..4a705c4da0 100644 --- a/g3doc/sitemap.md +++ b/g3doc/sitemap.md @@ -3,6 +3,7 @@ * Code * [Style guide](/g3doc/style-guide.md) * [Documentation](/g3doc/how_to_write_documentation.md) + * [Become a committer](/g3doc/become_a_committer.md) * [Public C++ API](/api/g3doc/index.md) * [Threading](/api/g3doc/threading_design.md) * Implementation