diff --git a/.github/sync/UPSTREAM_COMMIT b/.github/sync/UPSTREAM_COMMIT deleted file mode 100644 index bdc97d5bed..0000000000 --- a/.github/sync/UPSTREAM_COMMIT +++ /dev/null @@ -1 +0,0 @@ -816766e1a236fcb7eebaa493e492b55c419ada05 diff --git a/.github/sync/sync.sh b/.github/sync/sync.sh index 02e568286b..448043a832 100755 --- a/.github/sync/sync.sh +++ b/.github/sync/sync.sh @@ -12,28 +12,17 @@ # repository with the filtered contents into a directory specified by the # argument passed to this script. The filtered contents are determined # by the configuration in `.github/sync/webrender.paths`. -# 3. Cherry-pick the new commits into the repository in the current working -# directory. The commits applied from the filtered repository are determined -# by choosing every commit after the hash found in the file -# `.github/sync/UPSTREAM_COMMIT` +# 3. Reset the `upstream` branch in the target repository to the new filtered +# version. # # Note that this script relies on the idea that filtering `gecko-dev` the same -# way more than once will result in the same commit hashes. -# -# If at some point, `webrender.paths` is modified and the commit hashes change, -# then a single manual filter will have to happen in order to translate the -# hash in the original filtered repository to the new one. The procedure for this -# is roughly: -# -# 1. Run `git-filter-repo` locally and note the new hash of the latest -# commit included from upstream. -# 2. Replace the contents `UPSTREAM_COMMIT` with that hash and commit -# it together with your changes to `webrender.paths`. +# way more than once will result in the same commit hashes, otherwise multiple +# copies of the version control history will be included in the repository. # # [1]: mirrored from # # [2]: -set -eu +set -eux root_dir=$(pwd) cache_dir=$root_dir/_cache @@ -89,15 +78,9 @@ cd "$root_dir" git remote add filtered-upstream "$filtered" git fetch filtered-upstream -hash_file=".github/sync/UPSTREAM_COMMIT" -hash=`cat $hash_file` -number_of_commits=`git log $hash..filtered-upstream/master --pretty=oneline | wc -l` +step "Resetting 'upstream' branch to filtered repository HEAD" +git switch -c upstream +git reset --hard filtered-upstream/master -if [ $number_of_commits != '0' ]; then - step "Applying $number_of_commits new commits" - git -c user.email="$git_email" -c user.name="$git_name" cherry-pick $hash..filtered-upstream/master - git rev-parse filtered-upstream/master > "$hash_file" - git -c user.email="$git_email" -c user.name="$git_name" commit "$hash_file" -m "Syncing to upstream (`cat $hash_file`)" -else - step "No new commits. Doing nothing." -fi +step Pushing new 'upstream' +git push -f origin upstream diff --git a/.github/workflows/sync-upstream.yml b/.github/workflows/sync-upstream.yml index 18bf99ce87..a76cf5b023 100644 --- a/.github/workflows/sync-upstream.yml +++ b/.github/workflows/sync-upstream.yml @@ -19,6 +19,4 @@ jobs: path: _cache/upstream key: upstream - name: Run synchronization script - run: ./.github/sync/sync.sh _filtered - - name: Pushing new `main` - run: git push origin main + run: ./.github/sync/sync.sh _filtered diff --git a/README.md b/README.md index 6162a5f86b..46431fea23 100644 --- a/README.md +++ b/README.md @@ -2,17 +2,23 @@ [![Version](https://img.shields.io/crates/v/webrender.svg)](https://crates.io/crates/webrender) -WebRender is a GPU-based 2D rendering engine written in [Rust](https://www.rust-lang.org/). [Firefox](https://www.mozilla.org/firefox), the research web browser [Servo](https://github.com/servo/servo), and other GUI frameworks draw with it. It currently uses the OpenGL API internally. - -Note that the canonical home for this code is in gfx/wr folder of the -mozilla-central repository at https://hg.mozilla.org/mozilla-central. The -Github repository at https://github.com/servo/webrender should be considered +WebRender is a GPU-based 2D rendering engine written in +[Rust](https://www.rust-lang.org/). [Firefox](https://www.mozilla.org/firefox), +the research web browser [Servo](https://github.com/servo/servo), and other GUI +frameworks draw with it. It currently uses the OpenGL API internally. + +**Note that the upstream home for this code is in gfx/wr folder of the +mozilla-central repository at https://hg.mozilla.org/mozilla-central.** The +GitHub repository at https://github.com/servo/webrender should be considered a downstream mirror, although it contains additional metadata (such as Github -wiki pages) that do not exist in mozilla-central. Pull requests against the -Github repository are still being accepted, although once reviewed, they will -be landed on mozilla-central first and then mirrored back. If you are familiar -with the mozilla-central contribution workflow, filing bugs in -[Bugzilla](https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender) +wiki pages) that do not exist in mozilla-central. + +Generally speaking, improvements to WebRender should be submitted upstream +in Gecko, but those relevant to the Servo project or those unsuitable for +upstream may be accepted here. + +If you are familiar with the mozilla-central contribution workflow, filing bugs +in [Bugzilla](https://bugzilla.mozilla.org/enter_bug.cgi?product=Core&component=Graphics%3A%20WebRender) and submitting patches there would be preferred. ## Update as a Dependency