From 77c59a23cbfa7c28d7d4ba5fba657c95521dd960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Oliveira?= Date: Tue, 9 Jan 2024 13:47:13 +0000 Subject: [PATCH] increase version to pass CI --- Cargo.toml | 288 +++++++++++++++++++++++++---------------------- swarm/Cargo.toml | 2 +- 2 files changed, 152 insertions(+), 138 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 11ac47b0be47..fcec353e3f6d 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,144 +1,158 @@ -[workspace] -members = [ - "core", - "examples/autonat", - "examples/browser-webrtc", - "examples/chat", - "examples/dcutr", - "examples/distributed-key-value-store", - "examples/file-sharing", - "examples/identify", - "examples/ipfs-kad", - "examples/ipfs-private", - "examples/metrics", - "examples/ping", - "examples/relay-server", - "examples/rendezvous", - "examples/upnp", - "hole-punching-tests", - "identity", - "interop-tests", - "misc/allow-block-list", - "misc/connection-limits", - "misc/futures-bounded", - "misc/keygen", - "misc/memory-connection-limits", - "misc/metrics", - "misc/multistream-select", - "misc/quick-protobuf-codec", - "misc/quickcheck-ext", - "misc/rw-stream-sink", - "misc/server", - "misc/webrtc-utils", - "muxers/mplex", - "muxers/test-harness", - "muxers/yamux", - "protocols/autonat", - "protocols/dcutr", - "protocols/floodsub", - "protocols/gossipsub", - "protocols/identify", - "protocols/kad", - "protocols/mdns", - "protocols/perf", - "protocols/ping", - "protocols/relay", - "protocols/rendezvous", - "protocols/request-response", - "protocols/upnp", - "swarm", - "swarm-derive", - "swarm-test", - "transports/dns", - "transports/noise", - "transports/plaintext", - "transports/pnet", - "transports/quic", - "transports/tcp", - "transports/tls", - "transports/uds", - "transports/webrtc", - "transports/webrtc-websys", - "transports/websocket", - "transports/webtransport-websys", - "transports/websocket-websys", - "wasm-tests/webtransport-tests", +[package] +name = "libp2p" +edition = "2021" +rust-version = { workspace = true } +description = "Peer-to-peer networking library" +version = "0.54.0" +authors = ["Parity Technologies "] +license = "MIT" +repository = "https://github.com/libp2p/rust-libp2p" +keywords = ["peer-to-peer", "libp2p", "networking"] +categories = ["network-programming", "asynchronous"] + +[features] +full = [ + "async-std", + "autonat", + "cbor", + "dcutr", + "dns", + "ecdsa", + "ed25519", + "floodsub", + "gossipsub", + "identify", + "json", + "kad", + "macros", + "mdns", + "memory-connection-limits", + "metrics", + "noise", + "ping", + "plaintext", + "pnet", + "quic", + "relay", + "rendezvous", + "request-response", + "rsa", + "secp256k1", + "serde", + "tcp", + "tls", + "tokio", + "uds", + "wasm-bindgen", + "websocket-websys", + "websocket", + "webtransport-websys", + "yamux", + "upnp", ] -resolver = "2" -[workspace.package] -rust-version = "1.73.0" +async-std = [ "libp2p-swarm/async-std", "libp2p-mdns?/async-io", "libp2p-tcp?/async-io", "libp2p-dns?/async-std", "libp2p-quic?/async-std",] +autonat = ["dep:libp2p-autonat"] +cbor = ["libp2p-request-response?/cbor"] +dcutr = ["dep:libp2p-dcutr", "libp2p-metrics?/dcutr"] +dns = ["dep:libp2p-dns"] +ecdsa = ["libp2p-identity/ecdsa"] +ed25519 = ["libp2p-identity/ed25519"] +floodsub = ["dep:libp2p-floodsub"] +gossipsub = ["dep:libp2p-gossipsub", "libp2p-metrics?/gossipsub"] +identify = ["dep:libp2p-identify", "libp2p-metrics?/identify"] +json = ["libp2p-request-response?/json"] +kad = ["dep:libp2p-kad", "libp2p-metrics?/kad"] +macros = ["libp2p-swarm/macros"] +mdns = ["dep:libp2p-mdns"] +memory-connection-limits = ["dep:libp2p-memory-connection-limits"] +metrics = ["dep:libp2p-metrics"] +noise = ["dep:libp2p-noise"] +ping = ["dep:libp2p-ping", "libp2p-metrics?/ping"] +plaintext = ["dep:libp2p-plaintext"] +pnet = ["dep:libp2p-pnet"] +quic = ["dep:libp2p-quic"] +relay = ["dep:libp2p-relay", "libp2p-metrics?/relay"] +rendezvous = ["dep:libp2p-rendezvous"] +request-response = ["dep:libp2p-request-response"] +rsa = ["libp2p-identity/rsa"] +secp256k1 = ["libp2p-identity/secp256k1"] +serde = ["libp2p-core/serde", "libp2p-kad?/serde", "libp2p-gossipsub?/serde"] +tcp = ["dep:libp2p-tcp"] +tls = ["dep:libp2p-tls"] +tokio = [ "libp2p-swarm/tokio", "libp2p-mdns?/tokio", "libp2p-tcp?/tokio", "libp2p-dns?/tokio", "libp2p-quic?/tokio", "libp2p-upnp?/tokio"] +uds = ["dep:libp2p-uds"] +wasm-bindgen = [ "futures-timer/wasm-bindgen", "instant/wasm-bindgen", "getrandom/js", "libp2p-swarm/wasm-bindgen", "libp2p-gossipsub?/wasm-bindgen",] +websocket-websys = ["dep:libp2p-websocket-websys"] +websocket = ["dep:libp2p-websocket"] +webtransport-websys = ["dep:libp2p-webtransport-websys"] +yamux = ["dep:libp2p-yamux"] +upnp = ["dep:libp2p-upnp"] + +[dependencies] +bytes = "1" +either = "1.9.0" +futures = "0.3.26" +futures-timer = "3.0.2" # Explicit dependency to be used in `wasm-bindgen` feature +getrandom = "0.2.3" # Explicit dependency to be used in `wasm-bindgen` feature +instant = "0.1.12" # Explicit dependency to be used in `wasm-bindgen` feature +# TODO feature flag? +rw-stream-sink = { workspace = true } + +libp2p-allow-block-list = { workspace = true } +libp2p-autonat = { workspace = true, optional = true } +libp2p-connection-limits = { workspace = true } +libp2p-core = { workspace = true } +libp2p-dcutr = { workspace = true, optional = true } +libp2p-floodsub = { workspace = true, optional = true } +libp2p-gossipsub = { workspace = true, optional = true } +libp2p-identify = { workspace = true, optional = true } +libp2p-identity = { workspace = true, features = ["rand"] } +libp2p-kad = { workspace = true, optional = true } +libp2p-metrics = { workspace = true, optional = true } +libp2p-noise = { workspace = true, optional = true } +libp2p-ping = { workspace = true, optional = true } +libp2p-plaintext = { workspace = true, optional = true } +libp2p-pnet = { workspace = true, optional = true } +libp2p-relay = { workspace = true, optional = true } +libp2p-rendezvous = { workspace = true, optional = true } +libp2p-request-response = { workspace = true, optional = true } +libp2p-swarm = { workspace = true } +libp2p-websocket-websys = { workspace = true, optional = true } +libp2p-webtransport-websys = { workspace = true, optional = true } +libp2p-yamux = { workspace = true, optional = true } +multiaddr = { workspace = true } +pin-project = "1.0.0" +thiserror = "1.0" -[workspace.dependencies] -asynchronous-codec = { version = "0.7.0" } -futures-bounded = { version = "0.2.3", path = "misc/futures-bounded" } -libp2p = { version = "0.53.2", path = "libp2p" } -libp2p-allow-block-list = { version = "0.3.0", path = "misc/allow-block-list" } -libp2p-autonat = { version = "0.12.0", path = "protocols/autonat" } -libp2p-connection-limits = { version = "0.3.1", path = "misc/connection-limits" } -libp2p-core = { version = "0.41.2", path = "core" } -libp2p-dcutr = { version = "0.11.0", path = "protocols/dcutr" } -libp2p-dns = { version = "0.41.1", path = "transports/dns" } -libp2p-floodsub = { version = "0.44.0", path = "protocols/floodsub" } -libp2p-gossipsub = { version = "0.46.1", path = "protocols/gossipsub" } -libp2p-identify = { version = "0.44.1", path = "protocols/identify" } -libp2p-identity = { version = "0.2.8" } -libp2p-kad = { version = "0.45.3", path = "protocols/kad" } -libp2p-mdns = { version = "0.45.1", path = "protocols/mdns" } -libp2p-memory-connection-limits = { version = "0.2.0", path = "misc/memory-connection-limits" } -libp2p-metrics = { version = "0.14.1", path = "misc/metrics" } -libp2p-mplex = { version = "0.41.0", path = "muxers/mplex" } -libp2p-muxer-test-harness = { path = "muxers/test-harness" } -libp2p-noise = { version = "0.44.0", path = "transports/noise" } -libp2p-perf = { version = "0.3.0", path = "protocols/perf" } -libp2p-ping = { version = "0.44.0", path = "protocols/ping" } -libp2p-plaintext = { version = "0.41.0", path = "transports/plaintext" } -libp2p-pnet = { version = "0.24.0", path = "transports/pnet" } -libp2p-quic = { version = "0.10.2", path = "transports/quic" } -libp2p-relay = { version = "0.17.1", path = "protocols/relay" } -libp2p-rendezvous = { version = "0.14.0", path = "protocols/rendezvous" } -libp2p-request-response = { version = "0.26.1", path = "protocols/request-response" } -libp2p-server = { version = "0.12.5", path = "misc/server" } -libp2p-swarm = { version = "0.44.1", path = "swarm" } -libp2p-swarm-derive = { version = "=0.34.1", path = "swarm-derive" } # `libp2p-swarm-derive` may not be compatible with different `libp2p-swarm` non-breaking releases. E.g. `libp2p-swarm` might introduce a new enum variant `FromSwarm` (which is `#[non-exhaustive]`) in a non-breaking release. Older versions of `libp2p-swarm-derive` would not forward this enum variant within the `NetworkBehaviour` hierarchy. Thus the version pinning is required. -libp2p-swarm-test = { version = "0.3.0", path = "swarm-test" } -libp2p-tcp = { version = "0.41.0", path = "transports/tcp" } -libp2p-tls = { version = "0.3.0", path = "transports/tls" } -libp2p-uds = { version = "0.40.0", path = "transports/uds" } -libp2p-upnp = { version = "0.2.0", path = "protocols/upnp" } -libp2p-webrtc = { version = "0.7.0-alpha", path = "transports/webrtc" } -libp2p-webrtc-utils = { version = "0.2.0", path = "misc/webrtc-utils" } -libp2p-webrtc-websys = { version = "0.3.0-alpha", path = "transports/webrtc-websys" } -libp2p-websocket = { version = "0.43.0", path = "transports/websocket" } -libp2p-websocket-websys = { version = "0.3.1", path = "transports/websocket-websys" } -libp2p-webtransport-websys = { version = "0.2.0", path = "transports/webtransport-websys" } -libp2p-yamux = { version = "0.45.1", path = "muxers/yamux" } -multiaddr = "0.18.1" -multihash = "0.19.1" -multistream-select = { version = "0.13.0", path = "misc/multistream-select" } -prometheus-client = "0.22.0" -quick-protobuf-codec = { version = "0.3.1", path = "misc/quick-protobuf-codec" } -quickcheck = { package = "quickcheck-ext", path = "misc/quickcheck-ext" } -rw-stream-sink = { version = "0.4.0", path = "misc/rw-stream-sink" } -unsigned-varint = { version = "0.8.0" } +[target.'cfg(not(target_arch = "wasm32"))'.dependencies] +libp2p-dns = { workspace = true, optional = true } +libp2p-mdns = { workspace = true, optional = true } +libp2p-memory-connection-limits = { workspace = true, optional = true } +libp2p-quic = { workspace = true, optional = true } +libp2p-tcp = { workspace = true, optional = true } +libp2p-tls = { workspace = true, optional = true } +libp2p-uds = { workspace = true, optional = true } +libp2p-upnp = { workspace = true, optional = true } +libp2p-websocket = { workspace = true, optional = true } -[patch.crates-io] +[dev-dependencies] +async-std = { version = "1.6.2", features = ["attributes"] } +async-trait = "0.1" +clap = { version = "4.1.6", features = ["derive"] } +tokio = { version = "1.15", features = [ "io-util", "io-std", "macros", "rt", "rt-multi-thread"] } -# Patch away `libp2p-identity` in our dependency tree with the workspace version. -# `libp2p-identity` is a leaf dependency and used within `rust-multiaddr` which is **not** part of the workspace. -# As a result, we cannot just reference the workspace version in our crates because the types would mismatch with what -# we import via `rust-multiaddr`. -# This is expected to stay here until we move `libp2p-identity` to a separate repository which makes the dependency relationship more obvious. -libp2p-identity = { path = "identity" } +libp2p-mplex = { workspace = true } +libp2p-noise = { workspace = true } +libp2p-tcp = { workspace = true, features = ["tokio"] } +tracing-subscriber = { version = "0.3", features = ["env-filter"] } -[workspace.lints] -rust.unreachable_pub = "warn" -clippy.used_underscore_binding = "warn" -clippy.pedantic = "allow" -clippy.type_complexity = "allow" -clippy.unnecessary_wraps = "warn" -clippy.manual_let_else = "warn" -clippy.dbg_macro = "warn" +# Passing arguments to the docsrs builder in order to properly document cfg's. +# More information: https://docs.rs/about/builds#cross-compiling +[package.metadata.docs.rs] +all-features = true +rustdoc-args = ["--cfg", "docsrs"] +rustc-args = ["--cfg", "docsrs"] -[workspace.metadata.release] -pre-release-hook = ["/bin/sh", '-c', '/bin/sh $WORKSPACE_ROOT/scripts/add-changelog-header.sh'] # Nested use of shell to expand variables. +[lints] +workspace = true diff --git a/swarm/Cargo.toml b/swarm/Cargo.toml index 0e87f30979de..9a9e7e048949 100644 --- a/swarm/Cargo.toml +++ b/swarm/Cargo.toml @@ -3,7 +3,7 @@ name = "libp2p-swarm" edition = "2021" rust-version = { workspace = true } description = "The libp2p swarm" -version = "0.44.1" +version = "0.45.0" authors = ["Parity Technologies "] license = "MIT" repository = "https://github.com/libp2p/rust-libp2p"