Closed Bug 1825620 Opened 1 year ago Closed 1 year ago

improve survivability/resumability of libwebrtc fast-forward process


(Core :: WebRTC, task, P2)




114 Branch
Tracking Status
firefox114 --- fixed


(Reporter: mjf, Assigned: mjf)




(9 files)

One recurring issue with the fast-forward process has been that it is fairly easy to shoot yourself in the foot in a way that can disrupt one or both of the repositories (mercurial for firefox and git for moz-libwebrtc) to the point that it is easier (necessary) to start over. Solving this issue will also likely have the benefit of making it easier to hand-off work in progress to another person if needed.

My initial thought on this is to use a hybrid of the other 3rd party vendoring processes where a mercurial-based patch stack is contained in tree. We would continue to use that stack of patches in github for the rebase functionality, but after vendoring each upstream commit (meaning rebase conflicts have been successfully resolved), the stack of patches is updated in mercurial. This change would mean that it would be possible to recreate the patch stack for any vendored commit, thus allowing simpler rollbacks to previous commits. If the work in progress is pushed to elm, it would also allow easy access for other team members to take over or help with working on a particular upstream commit.

The additional functionality probably implies converting some of the bash scripts to python.

Assignee: nobody → mfroman
Severity: -- → S3
Priority: -- → P2
Depends on: 1828487
  • use to get a fresh repro, that is ready for
    restoring the patch-stack.
  • use moz-patch-stack directory rather than previous github branch to
    restore previous patch-stack.
  • since we can now easily restore a mid-fast-forward patch-stack, we
    can default to storing moz-libwebrtc under STATE_DIR

Depends on D175688

This is possible now that we default to storing the moz-libwebrtc
github repo in the STATE_DIR.

Depends on D175690

There will be one more patch, the patch-stack based on v110, which will be created after the github repo is updated with Byron's fast-forward stack from moz-mods-chr110-for-rel114.

Blocks: 1828521
Blocks: 1828733
Depends on: 1828951
Pushed by
pt1 - add new scripts for restorable patch-stack functionality r=ng DONTBUILD
pt2 - use the save script in r=ng DONTBUILD
pt3 - updates r=ng DONTBUILD
pt4 - cleanup obsolete references to MOZ_PRIOR_LIBWEBRTC_BRANCH r=ng DONTBUILD
pt5 - automatically create default config file if missing r=ng DONTBUILD
pt6 - improve clarity of logging output in r=ng DONTBUILD
pt7 - now that we can restore no-op files, don't delete them when building new files r=ng DONTBUILD
pt8 - change all 'tee -a' to 'tee --append' in r=ng DONTBUILD
pt9 - bootstrap the moz-libwebrtc patch stack r=ng,webrtc-reviewers DONTBUILD
Regressions: 1833663
You need to log in before you can comment on or make changes to this bug.