Media/WebRTC/libwebrtc Update Process: Difference between revisions
(add pointer to the reset elm steps in to the prereqs) |
(fix the link text for resetting elm in prereqs) |
||
Line 5: | Line 5: | ||
- Create a new bug for the fast-forward update. It should depend on the previous fast-forward bug. [https://bugzilla.mozilla.org/show_bug.cgi?id=1800920 Bug 1800920] is an example. | - Create a new bug for the fast-forward update. It should depend on the previous fast-forward bug. [https://bugzilla.mozilla.org/show_bug.cgi?id=1800920 Bug 1800920] is an example. | ||
- Follow the [[Media/WebRTC/libwebrtc_Update_Process#Resetting_Elm]] steps below. | - Follow the [[Media/WebRTC/libwebrtc_Update_Process#Resetting_Elm|Resetting_Elm]] steps below. | ||
- Builds are done after vendoring in each commit. Having a <code>.mozconfig</code> file that enables cache (either sccache or ccache) will improve the performance of the scripts. | - Builds are done after vendoring in each commit. Having a <code>.mozconfig</code> file that enables cache (either sccache or ccache) will improve the performance of the scripts. |
Revision as of 22:13, 19 December 2022
This page describes the process for updating the in tree, vendored copy of libwebrtc using the fast-forward scripts.
Operation Checklist
Prerequisites
- Create a new bug for the fast-forward update. It should depend on the previous fast-forward bug. Bug 1800920 is an example.
- Follow the Resetting_Elm steps below.
- Builds are done after vendoring in each commit. Having a .mozconfig
file that enables cache (either sccache or ccache) will improve the performance of the scripts.
hg clone https://hg.mozilla.org/projects/elm (cd elm && ./mach bootstrap --application-choice=browser && ./mach build) git clone https://github.com/mozilla/libwebrtc moz-libwebrtc
Update steps
# Start from the elm checkout cd elm # Prepare the github repo bash dom/media/webrtc/third_party_build/prep_repo.sh # Run loop-ff.sh bash dom/media/webrtc/third_party_build/loop-ff.sh
Operational notes
- Running prep-repo.sh
with a fresh github clone of moz-libwebrtc will likely display instructions on how to add recent moz-central changes made in third_party/libwebrtc
to the top of the patch stack in github. This is expected and necessary for successfully vendoring changes into third_party/libwebrtc
.
- Two main types of errors will cause loop-ff.sh
to exit; the first is a rebase conflict, the second is a build error due to api changes in upstream code.
- When making changes to fix build issues in moz-libwebrtc, mercurial commit messages follow the pattern:
Bug xxx - (fix-{upstream-sha}) {description}
- When making changes to fix Mozilla code in response to changes upstream, mercurial commit messages follow the pattern:
Bug xxx (MOZ) - {description}
- While loop-ff.sh is running, in a separate terminal window it may be helpful to see the overall progress by running:
tail -f ~/log-loop-ff.txt | grep loop-ff
Resetting Elm
Before each new merge cycle. Elm needs to be reset to Central, and the floating patches need to be reapplied.
- Ensure you have filed a bug for the next merge cycle, and further ensure that the next merge cycle bug has the previous merge cycle bug as a dependency.
- Make sure you have a local checkout of Elm which includes the floating patches.
- File a bug as a clone of Bug 1789675 and add your new bug as dependency to the next merge cycle bug.
- Wait for the repo admins to reset the repository.
- Mark the floating arc config patch with a bookmark. If the patch had id `5e8481a558fb` then one would run
hg bookmark -r 5e8481a558fb ARC_CONFIG_FLOAT
- Pull the new head of Elm. .
hg pull
- Rebase the floating patches onto the new checkout of Elm, then checkout the new tip.
hg rebase --keep -s ARC_CONFIG_FLOAT -d elm && \ hg co tip && \ hg bookmark ARC_CONFIG_FLOAT
- Push the floating patches to Elm.
hg push --bookmark=ARC_CONFIG_FLOAT
- Celebrate