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

iron out the dependency cycles between lotus, test-vectors, and statediff #3666

Closed
3 of 4 tasks
raulk opened this issue Sep 8, 2020 · 2 comments · Fixed by #3688 or #3691
Closed
3 of 4 tasks

iron out the dependency cycles between lotus, test-vectors, and statediff #3666

raulk opened this issue Sep 8, 2020 · 2 comments · Fixed by #3688 or #3691
Assignees

Comments

@raulk
Copy link
Member

raulk commented Sep 8, 2020

This is what we're planning to do:

  • test vector schema versioned as a separate go module (it will evolve very little), removing its dependencies on abi and exitcode packages, by replacing the types with their underlying (int64s and big.Int), and type converting on the driver.
    • This way we derisk the schema inadvertently forcing specific dependencies on lotus.
  • chaos actor moved into the Lotus codebase, and owned by the Oni team via CODEOWNERS.
    • This is how it should've been from day 1, but the chaos actor was in incubation and we needed to iterate on it rapidly. CODEOWNERS will solve the maintenance/PR approval problem.
    • With this, and the above checkbox, Lotus no longer will depend on test-vectors in the go.mod.
  • statediff not imported as a go package, but rather called as a CLI tool, if available in the host's path.
    • We built statediff as a standalone CLI tool that can take a CAR with two roots and perform the diff.
    • We will use that run mode of statediff, because it's also how other implementations (Forest and Fuhon) will call out to statediff.
    • This way we check two extra boxes: (1) we serve as a proper reference implementation without unfair advantage (being able to call statediff as a go module), and (2) we test the CLI mode of statediff.
  • CODEOWNERS to streamline maintenance within the respective packages.
@raulk raulk self-assigned this Sep 8, 2020
@raulk
Copy link
Member Author

raulk commented Sep 8, 2020

cc @willscott @nonsense @alanshaw does this capture what we discussed today?

@alanshaw
Copy link
Member

alanshaw commented Sep 9, 2020

SGTM 🚀

Just to clarify, the scope for CODEOWNERS will be everything in the conformance package and it will require at least 1 member of the Oni team to have write access to the repo. The implication is that the Oni member(s) with write access will have the freedom to approve and merge PRs to the conformance package.

@raulk raulk linked a pull request Sep 9, 2020 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
2 participants