You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We want to run a "simple" test (ping) that verifies interoperability between versions and implementations.
This test should run at least before every (go|rust) libp2p release.
Use case:
Test cross-version compatibility for Go
Test cross-version compatibility for Rust
Test cross-implementation compatibility for Rust and Go
We're aiming for:
a single ping test implemented in different languages (go + rust)
running interop + cross version for every PR on the go-libp2p repo
running interop + cross version for every PR on the rust-libp2p repo
my goal right now is < 15 minutes which is the go test runtime on ubuntu,
I'm trying to push it down to ~ 5 minutes with caching. There is a O(n) relationship between build time & the number of tested versions and caching would make it O(1).
we're going to timebox this effort for a week, then discuss how far we want to go.
Can we get rid of the building step when we use a test from another implementation:
We need to make sure an update in a repo doesn't break another, it's very important for stability during do cross-implementation interop tests. Fixes like the one in ping/rust: remove the master dependency #45 might be working, but it's hard to make sure we're covering all cases where a build might fail.
We don't want to "pin forever" the test artifacts either because a test specification might change (for example, how we sync instances).
What if we built every artifact for every known version on merges to libp2p/test-plans?
Then reuse these artifacts during test runs?
This way implementation langX-libp2p never attempt to build a test for langY-libp2p.
Another important point is how to deal with new feature:
"as a langX-libp2p maintainer, I want to create a test in this plan than will be used by langY-libp2p"
It might be a feature that only exists on master,
It might be a feature that doesn't exist in previous versions (we're only testing ping at the moment).
We want to run a "simple" test (ping) that verifies interoperability between versions and implementations.
This test should run at least before every (go|rust) libp2p release.
Use case:
We're aiming for:
a single ping test implemented in different languages (go + rust)
running interop + cross version for every PR on the go-libp2p repo
running interop + cross version for every PR on the rust-libp2p repo
@mxinden and @marten-seemann agreed to run this test if
they want "reasonable" run time in the future
Todo
References:
The text was updated successfully, but these errors were encountered: