bobanetwork / boba-v3

MIT License
0 stars 1 forks source link

Needs to track upstream dependencies #5

Closed mmontour1306 closed 2 years ago

mmontour1306 commented 2 years ago

As mentioned on Slack, the main upstream repositories pull in dependencies which may also need to be modified to support Erigon as an execution client (at a minimum, to add debugging statements during development). So far that list includes:

https://github.com/ethereum-optimism/optimism
  https://github.com/ethereum-optimism/reference-optimistic-geth

https://github.com/ledgerwatch/erigon
  https://github.com/ledgerwatch/erigon-lib
    https://github.com/ledgerwatch/interfaces

For a given branch on our main repo, we need to have a compatible version of each of the dependencies (on whichever branch is appropriate for that repo), checked out at a particular revision. There will be times when the upstream code will be broken, for example yesterday's version of "erigon-lib" broke if you ran 'make'. That repo has checked-in "do not edit" files which are auto-generated from the contents of 'interfaces', but it looks like the upstream developer hadn't pushed changes to that repo. So I would be very wary about any sort of automatic pull + merge workflow.

We should also allow for the possibility that an upstream repo maintainer will do a 'git rebase' and/or forced 'push' which will mess up downstream merges. We had problems with this during the V1 Optimism days.

mmontour1306 commented 2 years ago

FYI - upstream change:

commit 7022b8d9d0224f04f180431a62691610c4157aec Author: Matthew Slipper me@matthewslipper.com Date: Fri Aug 19 12:24:24 2022 -0600

chore: Rename reference-optimistic-geth to op-geth (#3267)

The op-geth repo has already been created as a fork of reference-optimistic-geth.

Also, my previous comment mentioned the repositories we've had to modify. In addition to that, Erigon also pulls in a couple of other submodules:

[submodule "tests"] path = tests/testdata url = https://github.com/ethereum/tests [submodule "libmdbx"] path = libmdbx url = https://github.com/torquem-ch/libmdbx.git

So that's at least 7 upstream repos which we will eventually have to track and manage from our monorepo.

wsdt commented 2 years ago

Closing with the assumption that it is done with: https://github.com/bobanetwork/v3-boba

Referring to https://github.com/bobanetwork/boba-v3/issues/14