mirror of
https://github.com/mollyim/webrtc.git
synced 2025-05-13 13:50:40 +01:00

test.webrtc.org is gone and webrtc-internals got some updates which make it more clear which dump is used BUG=None No-Try: true Change-Id: I040e54398ced78148345804a4ab4922f67de133d Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/312360 Reviewed-by: Mirko Bonadei <mbonadei@webrtc.org> Reviewed-by: Christoffer Jansson <jansson@webrtc.org> Commit-Queue: Philipp Hancke <phancke@microsoft.com> Reviewed-by: Björn Terelius <terelius@webrtc.org> Cr-Commit-Position: refs/heads/main@{#40463}
100 lines
4.4 KiB
Markdown
100 lines
4.4 KiB
Markdown
# Contributing to the WebRTC project
|
||
|
||
## License Agreement
|
||
|
||
WebRTC welcomes patches for features and bug fixes!
|
||
|
||
For contributors external to Google, follow the instructions given in the
|
||
[Google Individual Contributor License Agreement][Google individual CLA].
|
||
In all cases, contributors must sign a contributor license agreement before
|
||
a contribution can be accepted. Please complete the agreement for an
|
||
[individual][individual] or a [corporation][corporation] as appropriate.
|
||
|
||
[Google Individual CLA]: https://cla.developers.google.com/about/google-individual.
|
||
[individual]: https://developers.google.com/open-source/cla/individual
|
||
[corporation]: https://developers.google.com/open-source/cla/corporate
|
||
|
||
|
||
## Instructions
|
||
|
||
### Contributing your First Patch
|
||
You must do some preparation in order to upload your first CL:
|
||
|
||
* [Check out and build the code][Check out and build the code]
|
||
* Fill in the Contributor agreement (see above)
|
||
* If you’ve never submitted code before, you must add your
|
||
(or your organization’s in the case the contributor agreement is signed by
|
||
your organization) name and contact info to the
|
||
[AUTHORS][AUTHORS] file
|
||
* Go to [https://webrtc.googlesource.com/new-password](new-password)
|
||
and login with your email account. This should be the same account as
|
||
returned by `git config user.email`
|
||
* Then, run: `git cl creds-check`. If you get any errors, ask for help on
|
||
[discuss-webrtc][discuss-webrtc]
|
||
|
||
You will not have to repeat the above. After all that, you’re ready to upload:
|
||
|
||
[Check out and build the code]: https://webrtc.googlesource.com/src/+/refs/heads/main/docs/native-code/development/
|
||
[AUTHORS]: https://webrtc.googlesource.com/src/+/refs/heads/main/AUTHORS
|
||
[new-password]: https://webrtc.googlesource.com/new-password
|
||
[discuss-webrtc]: https://groups.google.com/forum/#!forum/discuss-webrtc
|
||
[Chromium recommendations for code reviews]: https://chromium.googlesource.com/chromium/src/+/main/docs/cl_tips.md
|
||
|
||
### Uploading your First Patch
|
||
Now that you have your account set up, you can do the actual upload:
|
||
|
||
* Do this:
|
||
* Assuming you're on the main branch:
|
||
* `git checkout -b my-work-branch`
|
||
* Make changes, build locally, run tests locally
|
||
* `git commit -am "Changed x, and it is working"`
|
||
* `git cl upload`
|
||
|
||
This will open a text editor showing all local commit messages, allowing you
|
||
to modify it before it becomes the CL description.
|
||
|
||
Fill out the bug entry properly. Please specify the issue tracker prefix and
|
||
the issue number, separated by a colon, e.g. `webrtc:123` or `chromium:12345`.
|
||
If you do not have an issue tracker prefix and an issue number just add `None`.
|
||
|
||
Save and close the file to proceed with the upload to the WebRTC
|
||
[code review server](https://webrtc-review.googlesource.com/q/status:open).
|
||
|
||
The command will print a link like
|
||
[https://webrtc-review.googlesource.com/c/src/+/53121][example CL link].
|
||
if everything goes well.
|
||
|
||
* Click this CL Link
|
||
* If you’re not signed in, click the Sign In button in the top right and sign
|
||
in with your email
|
||
* Click Start Review and add a reviewer. You can find reviewers in OWNERS files
|
||
around the repository (take the one closest to your changes)
|
||
* Address any reviewer feedback:
|
||
* Make changes, build locally, run tests locally
|
||
* `git commit -am "Fixed X and Y"`
|
||
* `git cl upload`
|
||
* Once the reviewer LGTMs (approves) the patch, ask them to put it into the
|
||
commit queue
|
||
|
||
NOTICE: On Windows, you’ll need to run the above in a Git bash shell in order
|
||
for gclient to find the `.gitcookies` file.
|
||
|
||
[example CL link]: https://webrtc-review.googlesource.com/c/src/+/53121
|
||
|
||
### Trybots
|
||
|
||
If you're working a lot in WebRTC, you can apply for *try rights*. This means you
|
||
can run the *trybots*, which run all the tests on all platforms. To do this,
|
||
file a bug using this [template][template-access] and the WebRTC EngProd team
|
||
will review your request.
|
||
|
||
To run a tryjob, upload a CL as described above and click either CQ dry run or
|
||
Choose Trybots in the Gerrit UI. You need to have try rights for this. Otherwise,
|
||
ask your reviewer to kick off the bots for you.
|
||
|
||
If you encounter any issues with the bots (flakiness, failing unrelated to your change etc),
|
||
please file a bug using this [template][template-issue].
|
||
|
||
[template-access]: https://bugs.chromium.org/p/webrtc/issues/entry?template=Get+tryjob+access
|
||
[template-issue]: https://bugs.chromium.org/p/webrtc/issues/entry?template=trybot+issue
|
||
|