Closed Bug 1825620 Opened 1 year ago Closed 1 year ago

improve survivability/resumability of libwebrtc fast-forward process

Categories

(Core :: WebRTC, task, P2)

task

Tracking

()

RESOLVED FIXED
114 Branch
Tracking Status
firefox114 --- fixed

People

(Reporter: mjf, Assigned: mjf)

References

Details

Attachments

(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 fetch_github_repo.py 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 mfroman@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/828a13519c80
pt1 - add new scripts for restorable patch-stack functionality r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/389c656dad14
pt2 - use the save script in loop-ff.sh r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/00832d67759d
pt3 - prep_repo.sh updates r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/0f788f556e6c
pt4 - cleanup obsolete references to MOZ_PRIOR_LIBWEBRTC_BRANCH r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/58a9e5ede9bf
pt5 - automatically create default config file if missing r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/1df0d3439d2d
pt6 - improve clarity of logging output in build_no_op_commits.sh r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/e00e7b4066f0
pt7 - now that we can restore no-op files, don't delete them when building new files r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/ad73e938ec23
pt8 - change all 'tee -a' to 'tee --append' in loop-ff.sh r=ng DONTBUILD
https://hg.mozilla.org/integration/autoland/rev/aafbdd73e243
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.

Attachment

General

Created:
Updated:
Size: