status-go/vendor/github.com/ethereum/go-ethereum/_assets/patches/README.md

1.2 KiB

Status Patches for geth (go-ethereum)

We keep changes in patches because it gives as a clear picture. In case of merge conflicts, thanks to patches we can easily figure out how the final code should look like.

Syncing with upstream

When a new geth version is released, we need to merge it to an appropriate branch and apply patches.

The format of branches looks like this: patched/1.8, patched/1.9, and so on.

In order to sync the upstream, follow this instruction:

  1. Revert existing patches: $ _assets/patches/patcher -r,
  2. Merge a new release: $ git merge upstream/v1.8.16 where v1.8.16 is a tag with a new release,
  3. Apply patches back: $ _assets/patches/patcher.

In the last step, some patches might be invalid. In such a case, they need to be fixed before proceeding.

Creating patches

Instructions for creating a patch from the command line:

  1. Do changes in vendor/github.com/ethereum/go-ethereum/,
  2. Go to the root status-go directory,
  3. Create a patch git diff --relative=vendor/github.com/ethereum/go-ethereum > _assets/patches/geth/0000-name-of-the-patch.patch
  4. Commit changes.

How to fix a patch?

TBD