Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Modularizing the Monorepo #11561

Open
tynes opened this issue Aug 22, 2024 · 1 comment
Open

Modularizing the Monorepo #11561

tynes opened this issue Aug 22, 2024 · 1 comment

Comments

@tynes
Copy link
Contributor

tynes commented Aug 22, 2024

The monorepo is quite large still and its still unclear who owns what code (example). This creates many issues with flakey tests and code review.

The protocol monorepo should contain a minimal set of reference implementations for the Optimism protocol. Additional things should live elsewhere. This ensures that there are fewer negative externalities in CI or pulling in newer versions of op-geth.

The following packages should be moved to the infra repo or their own repo:

The following packages should be considered to be moved to their own repo:

@protolambda
Copy link
Contributor

My recommendation:

  • op-bootnode: remove, the geth bootnode is sufficient for current purposes, and op-bootnode has some tech-debt of pulling in the whole op-stack p2p code. In the future a more minimal op-bootnode could be composed, with better more directed instrumentation. But the geth bootnode is the shorted path to cleanup.
  • op-conductor: move to its own repo or infra repo. Figure out a path for improved integration testing of the op-conductor using kurtosis.
  • op-heartbeat: either fix the versioning allow-list, or just remove it altogether. It is not providing any meaningful data to production or test networks
  • op-chain-ops: keep in the monorepo; I strongly believe we need it as integration point for the protocol, including active protocol changes.
  • op-wheel: move this to its own repository. It is very useful to recover corrupted nodes, and potentially do shadow-forks with. But it does not need to be in the monorepo.
  • contracts-bedrock: mixed opinions here. It can be valuable to encapsulate, but without integration-test plan it feels more like escapism than meaningful encapsulation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants