Skip to content

Merge_Upstream

Stefano Pacifici edited this page Jun 29, 2020 · 1 revision

Here the instructions on how to merge with upstream Fenix. We strongly suggest to merge only releases on top of our fork, i.e. we merged up to June 29th, 2020 tagged versions v77.0.0-beta.1 and v78.0.0-beta.1.

Please, notice the release cycle for Fenix is just 6 weeks: the more time passes between merges, the more difficult with be to perfom such operation.

Merging steps

  1. Clone Fostery (if you didn't already)

    git clone git@github.com:ghostery/fostery.git
  2. Add Fenix remote

    cd fostery
    git remote add upstream git@github.com/mozilla-mobile/fenix.git
    git fetch upstream
  3. Find a suitable release tag

    git tag --list

    As of today, the output is:

    0.1.0-beta.0
    fennec/nightly/1
    ...
    v4.2.0-beta.3
    v4.2.1
    v4.2.1-beta.1
    ...
    v77.0.0-beta.1
    v77.0.0-beta.2
    v78.0.0-beta.1
    

    You should always use a tag greater than v78.0.0-beta1.

  4. Merge the latest tag

    git merge refs/tags/v78.0.0-beta.1

Solve conflicts

Merging v78.0.0-beta.1 caused 61 conflicts but, most of them, are just files deleted by us (DU): those are the translations that Ghostery does not support. An easy way to delete those files is to run the following command:

git st --porcelain|grep --color=never -E "^[A-Z]{2} .*/strings.xml$"|cut -d ' ' -f2|xargs git rm -f

After running the command above, only 13 files remain to be merged.

Please, ensure you do not add extra translations during merge. This can be checked by running the following command:

git st --porcelain|grep -E "^A +.*/strings.xml" 

If the output is not empty, please delete the listed files.

We never changed docs/metrics.md, but apparently it changes while generating Fenix telemetry (which we do not use). So you can easily revert this file to the master version or the tag version.

Clone this wiki locally