-
Notifications
You must be signed in to change notification settings - Fork 23
Updating from upstream Firefox
This page describes the process to update the project Foxhound with upstream Firefox.
Project Foxhound is branched from the Firefox release branch.
Note that this is an expert task and requires a good understanding of the codebase.
Here are the update steps:
Create a fork of the foxhound repo:
git clone git@github.com:SAP/project-foxhound.git
Change into the freshly checked out repo:
cd project-foxhound
Add the firefox upstream repository as a remote:
git add remote mozilla https://github.com/mozilla/gecko-dev.git
git fetch mozilla
Checkout the gecko release branch:
git checkout -b firefox-upstream mozilla/release
Push the firefox release branch to GitHub:
git push origin HEAD:firefox-upstream
Get your branches ready for merging. First create a new branch to do the merging:
git checkout -b merge-upstream origin/main
Now do the merge:
git merge firefox-upstream
It is likely that there will be lots of merge conflicts, which need to be fixed. This is a tricky task which needs deep knowledge of the code base to make sure nothing gets broken. Once the conflicts have been fixed, commit to the local merge branch. Now check locally that everything builds and starts without crashes.
Push your update to GitHub:
git push origin HEAD:upstream-merge
And then open a pull request! Thanks for contributing!
To find out which commits correspond to a certain Firefox commit, check here:
Another way to find a commit corresponding to a particular verison:
git log --author="Mozilla Releng Treescript" | grep -B 5 105_.*_RELEASE | headTo find out which commits are used by Playwright, check here: https://github.com/microsoft/playwright/commits/main/browser_patches/firefox/UPSTREAM_CONFIG.sh
This guide uses Playwright 1.53 as an example
- Check out the current main branch
git switch main
git pull- Create a merge branch
git switch -c playwright-1.53- Add Mozilla remote and fetch commits
git remote add mozilla https://github.com/mozilla/gecko-dev.git
git fetch mozilla- Create a branch pointing to the upstream commit
git switch -c upstream-merge-pw153
git reset --hard 9cbfae27052e4aaeb064d2d08e7e869f31ee4288- Now the merge, aka the fun, starts
git switch playwright-1.53
git merge upstream-merge-pw153