Media/WebRTC/Up-streaming Changes: Difference between revisions

Splitting the bug submission and review upload into their own subsections as per the outline
(Adding After The Code Is Landed Up-stream section)
(Splitting the bug submission and review upload into their own subsections as per the outline)
 
(7 intermediate revisions by 3 users not shown)
Line 10: Line 10:
* The Change-Id Docs can be found [https://gerrit-review.googlesource.com/Documentation/user-changeid.html here].
* The Change-Id Docs can be found [https://gerrit-review.googlesource.com/Documentation/user-changeid.html here].
===Checking Out The Source===
===Checking Out The Source===
* Use the instructions [https://webrtc.github.io/webrtc-org/native-code/development/#getting-the-code here] to checkout the upstream repo if you have not already. To get all of the branch heads one will need to alter the <syntaxhighlight lang="sh" inline>webrtc/src/.config</syntaxhighlight> file add the following line <syntaxhighlight lang="ini" inline>fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*</syntaxhighlight> and run <syntaxhighlight lang="sh" inline>git pull</syntaxhighlight>. This is useful so that one can test out the patch against both master and the head of the release branch that is currently in use by Firefox.
* Use the instructions [https://webrtc.github.io/webrtc-org/native-code/development/#getting-the-code here] to checkout the upstream repo if you have not already. To get all of the branch heads one will need to alter the <syntaxhighlight lang="sh" inline>webrtc-checkout/src/.git/config</syntaxhighlight> file add the following line <syntaxhighlight lang="ini" inline>fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*</syntaxhighlight> and run <syntaxhighlight lang="sh" inline>git pull</syntaxhighlight>. This is useful so that one can test out the patch against both main and the head of the release branch that is currently in use by Firefox.
 
==Running Tests==
==Running Tests==
* While [https://www.chromium.org/developers/testing/running-tests/ these instructions] are for running Chromium tests, the same process applies for libwebrtc. There is no facility to help you run all the tests, you need to run all the test binaries that are produced. There are no facilities for helping you identify which tests you should be running. Inserting an RTC_CHECK(false), can be useful for verifying that one is testing using the correct binary.
* While [https://www.chromium.org/developers/testing/running-tests/ these instructions] are for running Chromium tests, the same process applies for libwebrtc. There is no facility to help you run all the tests, you need to run all the test binaries that are produced. There are no facilities for helping you identify which tests you should be running. Inserting an RTC_CHECK(false), can be useful for verifying that one is testing using the correct binary.
* You may find building without your change, building with your change, and then sorting the tests by last modified will help identify candidates to run.
==Code Submission Process==
==Code Submission Process==
===Setting up  Git Credentials===
Please follow the directions [https://webrtc.github.io/webrtc-org/contributing/ here] to set up you git credentials so that you can push to the review servers.
===Writing A Unit Test===
===Writing A Unit Test===
It is very likely that one will need to write a libwebrtc unit test that covers the code change, or alter a unit test to pass with the new code change. The unit test should ideally run correctly on both the main branch and the release branch that Firefox is using.
It is very likely that one will need to write a libwebrtc unit test that covers the code change, or alter a unit test to pass with the new code change. The unit test should ideally run correctly on both the main branch and the release branch that Firefox is using.
===Opening An up-stream Bug===
===Opening An up-stream Bug===
* libwebrtc uses [http://webrtc-review.googlesource.com/ this Gerrit instance] to track bugs. One will need to file a bug for one's fix under the appropriate component. In the bug one may mention that there is a fix that has been shipped in Firefox. Note the ID of the bug that Gerrit generated as one will need to use that ID in the commit message of your proposed fix.
One will need to file a bug for one's fix under the appropriate component in the [https://bugs.chromium.org/p/webrtc/issues/list WebRTC Monorail instance]. In the bug one may mention that there is a fix that has been shipped in Firefox, and include a link to the  
 
===Submitting An up-stream Patch===
===Submitting An up-stream Patch===
* libwebrtc uses [http://webrtc-review.googlesource.com/ this Gerrit instance] to track reviews. Note the ID of the bug that Monorail generated as one will need to use that ID in the commit message of your proposed fix. One's git commit message should include a line that reads `BUG=webrtc:xxxx`, where xxxx is the bug ID from Monorail.
===Requesting A Reviewer===
===Requesting A Reviewer===
In the past we have emailed our contact at google seeking reviews for specific bugs.
===Asking For CI Runs===
===Asking For CI Runs===
One can request a CI in the discussion for the review. Sometimes it takes a while for people to get to it. '''TODO''' There is a method for requesting CI access, talk to Pehrsons.
===After The Code Is Landed Up-stream===
===After The Code Is Landed Up-stream===
Now that the code is landed up-stream there are two more steps that one needs perform. Firstly, in the Mozilla repo one will create a backout patch for the code that was up-streamed. Secondly, one will create a cherry-pick patch from the upstream release.
Now that the code is landed up-stream there are two more steps that one needs perform. Firstly, in the Mozilla repo one will create a backout patch for the code that was up-streamed. Secondly, one will create a cherry-pick patch from the upstream release.
==Tracking Progress==
==Tracking Progress==
There is a [https://docs.google.com/spreadsheets/d/1C9lg12ZQrctDU89zHB_bsni9pYTD7Ojos_7tq64Bjqs/edit#gid=0 spreadsheet] to track the progress of our in progress up-stream patches.
There is a [https://docs.google.com/spreadsheets/d/1C9lg12ZQrctDU89zHB_bsni9pYTD7Ojos_7tq64Bjqs/edit#gid=0 spreadsheet] to track the progress of our in progress up-stream patches.
139

edits