mirror of
https://github.com/fluencelabs/rust-libp2p
synced 2025-07-31 00:41:59 +00:00
fix: Remove circular dependencies across workspace (#3023)
Circular dependencies are problematic in several ways: - They result in cognitive overhead for developers, in trying to figure out what depends on what. - They present `cargo` with limits in what order the crates can be compiled in. - They invalidate build caches unnecessarily thus forcing `cargo` to rebuild certain crates. - They cause problems with tooling such as `release-please`. To actually break the circular dependencies, this patch inlines the uses of `development_transport` in the examples and tests for all sub-crates. This is only meant to be a short-term fix until https://github.com/libp2p/rust-libp2p/issues/3111 and https://github.com/libp2p/rust-libp2p/pull/2888 are fixed. To ensure we don't accidentally reintroduce this dependency, we add a basic CI that queries `cargo metadata` using `jq`. Resolves https://github.com/libp2p/rust-libp2p/issues/3053. Fixes https://github.com/libp2p/rust-libp2p/issues/3223. Related: https://github.com/libp2p/rust-libp2p/pull/2918#discussion_r976514245 Related: https://github.com/googleapis/release-please/issues/1662
This commit is contained in:
@@ -47,7 +47,8 @@ ring = { version = "0.16.9", features = ["alloc", "std"], default-features = fal
|
||||
async-std = { version = "1.6.2", features = ["attributes"] }
|
||||
base64 = "0.13.0"
|
||||
criterion = "0.4"
|
||||
libp2p = { path = "..", features = ["full"] }
|
||||
libp2p-mplex = { path = "../muxers/mplex" }
|
||||
libp2p-noise = { path = "../transports/noise" }
|
||||
multihash = { version = "0.16", default-features = false, features = ["arb"] }
|
||||
quickcheck = { package = "quickcheck-ext", path = "../misc/quickcheck-ext" }
|
||||
rmp-serde = "1.0"
|
||||
|
@@ -19,11 +19,11 @@
|
||||
// DEALINGS IN THE SOFTWARE.
|
||||
|
||||
use futures::prelude::*;
|
||||
use libp2p::core::identity;
|
||||
use libp2p::core::transport::{MemoryTransport, Transport};
|
||||
use libp2p::core::upgrade::{self, InboundUpgrade, OutboundUpgrade, UpgradeInfo};
|
||||
use libp2p::mplex::MplexConfig;
|
||||
use libp2p::noise;
|
||||
use libp2p_core::identity;
|
||||
use libp2p_core::transport::{MemoryTransport, Transport};
|
||||
use libp2p_core::upgrade::{self, InboundUpgrade, OutboundUpgrade, UpgradeInfo};
|
||||
use libp2p_mplex::MplexConfig;
|
||||
use libp2p_noise as noise;
|
||||
use multiaddr::{Multiaddr, Protocol};
|
||||
use rand::random;
|
||||
use std::{io, pin::Pin};
|
||||
|
Reference in New Issue
Block a user