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

move testground/lotus-soup testplan from oni to lotus #4727

Merged
merged 381 commits into from
Nov 24, 2020

Conversation

nonsense
Copy link
Member

@nonsense nonsense commented Nov 4, 2020

This PR is moving the lotus-soup testplan from https://github.com/filecoin-project/oni to Lotus, so that we maintain all Lotus related testplans near the APIs they are using, as well as add more testplans in the future and run them as part of CircleCI in Lotus.

TODO:

  • 0. copy over filecoin-project/oni/master to Lotus, and preserve history of commits and authors (thanks to @magik6k for git subtree pointer)
  • 1. make sure tests pass on TaaS
  • 2. move and run graphsync testplan to Lotus as well (I am not sure this belongs to Lotus, @raulk @magik6k I leave it up to you to decide)
  • 3. update .circleci rules to trigger tests only on master prior to merge
  • 4. stop running testplans from filecoin-project/oni when this is approved and merged

FOLLOW UP:

  • 5. add github status checks from TaaS (need repo:status github token from filecoin-helper or filecoin-ci user)
  • 6. fix underlying code and run deals stress test as well as part of Lotus CI
  • 7. fix TestSyncCheckpointHead - appears to be flaky
  • 8. move docker images to lotus docker registry
  • 9. release and pick an official version of the Testground client (and not https://gist.github.com/nonsense/5fbf3167cac79945f658771aed32fc44/raw/2e17eb0debf7ec6bdf027c1bdafc2c92dd97273b/testground-d3e9603)
  • 10. deprecate the filecoin-project/oni repo

7 is not related to this PR, just something I noticed while triggering CI multiple times.
5, 9 and 10 should be addressed very soon if this is approved.
8 is to be decided by the team - at the moment I am using the iptestground org on Docker Hub.
6 is somewhat related to this PR - we have a test that exercises the broken logic (and it fails regularly), but we have to fix the underlying code, before merging the test - related issue is #4395

nonsense and others added 30 commits June 29, 2020 19:02
get seq num based on role, not based on group
- Each role now has its own file (role_*.go).
- Options have their own file (lotus_opts.go).
- Sync service constructions have their own file (sync.go).
- Utilities are functionally grouped in files ({deals,retrieval}.go).
@nonsense nonsense force-pushed the nonsense/integrate-testplans-to-lotus branch 3 times, most recently from 80da14b to f5a5f78 Compare November 5, 2020 13:46
@nonsense nonsense marked this pull request as ready for review November 5, 2020 13:48
@nonsense nonsense requested review from raulk and vyzo November 5, 2020 13:48
@nonsense
Copy link
Member Author

nonsense commented Nov 5, 2020

Marking this as ready for review, because it is already running tests on TaaS, and overall shows the general direction of adding the testplans to Lotus. I've added @vyzo also as a reviewer, as I imagine he is most familiar with these tests from the Lotus team (together with @raulk and myself).

@magik6k
Copy link
Contributor

magik6k commented Nov 6, 2020

One thing that would have been nice is to keep history of who committed what to Project Oni, rather than me just copying over all the files from master now. I couldn't think how to do that (and I particularly don't care about it), but I know some people might, so if you have ideas on how to preserve Git history for these testplans / testkit library, etc. let me know!

I did this with sector-storage / storage-fsm already, this look something like:

git remote add -f oni https://github.com/filecoin-project/[...].git
git merge -s ours --no-commit --allow-unrelated-histories oni/master
git read-tree --prefix=extern/oni sector-storage/master
git commit "Merge oni subtree"

https://docs.github.com/en/free-pro-team@latest/github/using-git/about-git-subtree-merges

@nonsense nonsense force-pushed the nonsense/integrate-testplans-to-lotus branch from f5a5f78 to 14cc885 Compare November 6, 2020 19:40
@nonsense nonsense force-pushed the nonsense/integrate-testplans-to-lotus branch from 14cc885 to bf50071 Compare November 6, 2020 20:05
@nonsense
Copy link
Member Author

nonsense commented Nov 6, 2020

Thanks @magik6k !

  • Commit N-2 and N-1 - I did a subtree merge and copied oni/master to testplans, and removed it from extern/oni

  • Commit N (last commit) - contains all the changes I am making so that we integrate Oni to Lotus:

  1. Update Dockerfiles (due to new dynamic libraries, such as hwloc).
  2. Update go.mod since now we reference lotus and other dependencies from different places.
  3. Added a README.md more appropriate for Lotus, while still keeping the previous README.md from filecoin-project/oni

In its current form, we can outright remove the filecoin-project/oni if this is merged, as we now have a complete copy in testplans/ directory.

We have to decide if we want to keep everything under testplans/ and whether it belongs there - such as composer, dashboards, notes, old README.md, etc. Basically oni repo doesn't fully map to just Testground testplans/... in any case this is mostly a minor decision that we can address later as well.

@@ -0,0 +1,29 @@
FROM golang:1.14.4-buster as tg-build
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs updating to 1.15

Copy link
Contributor

@magik6k magik6k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, just need to fix build-lotus-soup, and likely upgrade to go 1.15, then ship it

(May want to add Oni people to CODEOWNERS for testplans/)

@nonsense
Copy link
Member Author

Thanks @magik6k for review. I updated .circleci/config.yml so that trigger-testplans jobs is run only on merge to master.

@nonsense
Copy link
Member Author

Synced with master and updated go.mod for lotus-soup to use filecoin-project/lotus module from ../../.

Copy link
Contributor

@magik6k magik6k left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚢

@magik6k magik6k merged commit 7c83110 into master Nov 24, 2020
@magik6k magik6k deleted the nonsense/integrate-testplans-to-lotus branch November 24, 2020 16:05
bibibong pushed a commit to EpiK-Protocol/go-epik that referenced this pull request Jan 8, 2021
…se/integrate-testplans-to-lotus

move testground/lotus-soup testplan from oni to lotus
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

Successfully merging this pull request may close these issues.