From 27b57a61df28d8a7530458599ebc25305a3719de Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Thu, 24 Aug 2023 11:15:04 -1000 Subject: [PATCH] chore: update narwhal-node to use clap v3 --- Cargo.lock | 81 +++-------------------------- Cargo.toml | 3 +- crates/workspace-hack/Cargo.toml | 23 +++----- narwhal/node/Cargo.toml | 3 +- narwhal/node/src/generate_format.rs | 12 ++--- narwhal/node/src/main.rs | 18 +++---- 6 files changed, 29 insertions(+), 111 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 6a22ffd848eeb..6d8ad36c9fe81 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2256,21 +2256,6 @@ dependencies = [ "libloading", ] -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags 1.3.2", - "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - [[package]] name = "clap" version = "3.2.23" @@ -2283,9 +2268,9 @@ dependencies = [ "clap_lex 0.2.4", "indexmap", "once_cell", - "strsim 0.10.0", + "strsim", "termcolor", - "textwrap 0.16.0", + "textwrap", ] [[package]] @@ -2309,7 +2294,7 @@ dependencies = [ "anstyle", "bitflags 1.3.2", "clap_lex 0.5.0", - "strsim 0.10.0", + "strsim", ] [[package]] @@ -2922,7 +2907,7 @@ dependencies = [ "ident_case", "proc-macro2 1.0.58", "quote 1.0.26", - "strsim 0.10.0", + "strsim", "syn 1.0.107", ] @@ -6483,7 +6468,7 @@ dependencies = [ "axum", "bytes", "cfg-if", - "clap 2.34.0", + "clap 3.2.23", "eyre", "fastcrypto", "futures", @@ -6505,7 +6490,6 @@ dependencies = [ "reqwest", "serde-reflection", "serde_yaml 0.8.26", - "structopt", "sui-keys", "sui-protocol-config", "sui-types", @@ -9484,42 +9468,12 @@ dependencies = [ "vte", ] -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - [[package]] name = "strsim" version = "0.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap 2.34.0", - "lazy_static", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck 0.3.3", - "proc-macro-error", - "proc-macro2 1.0.58", - "quote 1.0.26", - "syn 1.0.107", -] - [[package]] name = "strum" version = "0.24.1" @@ -11901,15 +11855,6 @@ dependencies = [ "test-fuzz-internal", ] -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - [[package]] name = "textwrap" version = "0.16.0" @@ -12884,12 +12829,6 @@ version = "0.2.15" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - [[package]] name = "version_check" version = "0.9.4" @@ -13481,7 +13420,6 @@ dependencies = [ "ciborium-ll", "cipher", "clang-sys", - "clap 2.34.0", "clap 3.2.23", "clap 4.3.3", "clap_builder", @@ -14057,10 +13995,7 @@ dependencies = [ "static_assertions", "str-buf", "strip-ansi-escapes", - "strsim 0.10.0", - "strsim 0.8.0", - "structopt", - "structopt-derive", + "strsim", "strum", "strum_macros", "subprocess", @@ -14089,8 +14024,7 @@ dependencies = [ "test-fuzz-internal", "test-fuzz-macro", "test-fuzz-runtime", - "textwrap 0.11.0", - "textwrap 0.16.0", + "textwrap", "thiserror", "thiserror-impl", "thread_local", @@ -14174,7 +14108,6 @@ dependencies = [ "uuid", "variant_count", "vcpkg", - "vec_map", "version_check", "versions", "vsimd", diff --git a/Cargo.toml b/Cargo.toml index 627da74062e07..a9fb0a038ca37 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -245,7 +245,7 @@ cached = "0.43.0" camino = "1.1.1" cfg-if = "1.0.0" chrono = { version = "0.4.26", features = ["clock", "serde"] } -clap = { version = "3.2.17", features = ["derive"] } +clap = { version = "3.2.17", features = ["derive", "cargo"] } # clap = { version = "4.3.2", features = ["derive"] } collectable = "0.0.2" colored = "2.0.0" @@ -410,7 +410,6 @@ slip10_ed25519 = "0.1.3" smallvec = "1.10.0" snap = "1.1.0" static_assertions = "1.1.0" -structopt = "0.3.26" strum = { version = "0.24", features = ["derive"] } strum_macros = "0.24.3" syn = { version = "1.0.104", features = ["full", "derive", "extra-traits"] } diff --git a/crates/workspace-hack/Cargo.toml b/crates/workspace-hack/Cargo.toml index ad19ad5f3c308..139b110f893fe 100644 --- a/crates/workspace-hack/Cargo.toml +++ b/crates/workspace-hack/Cargo.toml @@ -154,8 +154,7 @@ ciborium-io = { version = "0.2", default-features = false, features = ["std"] } ciborium-ll = { version = "0.2", default-features = false } cipher = { version = "0.4", default-features = false, features = ["block-padding", "std"] } clap-164d15cefe24d7eb = { package = "clap", version = "4", features = ["derive"] } -clap-7b89eefb6aaa9bf3 = { package = "clap", version = "3", features = ["derive"] } -clap-f595c2ba2a3f28df = { package = "clap", version = "2" } +clap-7b89eefb6aaa9bf3 = { package = "clap", version = "3", features = ["cargo", "derive"] } clap_builder = { version = "4", default-features = false, features = ["color", "help", "std", "suggestions", "usage"] } clap_lex-6f8ce4dd05d13bba = { package = "clap_lex", version = "0.2", default-features = false } clap_lex-d8f496e17d97b5cb = { package = "clap_lex", version = "0.5", default-features = false } @@ -608,9 +607,7 @@ spki-ca01ad9e24f5d932 = { package = "spki", version = "0.7", default-features = stable_deref_trait = { version = "1" } static_assertions = { version = "1", default-features = false } strip-ansi-escapes = { version = "0.1", default-features = false } -strsim-93f6ce9d446188ac = { package = "strsim", version = "0.10", default-features = false } -strsim-c38e5c1d305a1b54 = { package = "strsim", version = "0.8", default-features = false } -structopt = { version = "0.3" } +strsim = { version = "0.10", default-features = false } strum = { version = "0.24", features = ["derive"] } subtle = { version = "2", default-features = false, features = ["i128", "std"] } subtle-ng = { version = "2", default-features = false, features = ["std"] } @@ -630,8 +627,7 @@ termtree = { version = "0.4", default-features = false } test-fuzz = { version = "3", default-features = false } test-fuzz-internal = { version = "3", default-features = false } test-fuzz-runtime = { version = "3", default-features = false } -textwrap-986da7b5efc2b80e = { package = "textwrap", version = "0.16", default-features = false } -textwrap-a6292c17cd707f01 = { package = "textwrap", version = "0.11", default-features = false } +textwrap = { version = "0.16", default-features = false } thiserror = { version = "1", default-features = false } thread_local = { version = "1", default-features = false } threadpool = { version = "1", default-features = false } @@ -704,7 +700,6 @@ urlencoding = { version = "2", default-features = false } utf-8 = { version = "0.7", default-features = false } utf8parse = { version = "0.2" } uuid = { version = "1", features = ["fast-rng", "v4"] } -vec_map = { version = "0.8", default-features = false } versions = { version = "4", default-features = false } vsimd = { version = "0.8", default-features = false, features = ["detect"] } vte = { version = "0.10" } @@ -887,8 +882,7 @@ ciborium-ll = { version = "0.2", default-features = false } cipher = { version = "0.4", default-features = false, features = ["block-padding", "std"] } clang-sys = { version = "1", default-features = false, features = ["clang_6_0", "runtime"] } clap-164d15cefe24d7eb = { package = "clap", version = "4", features = ["derive"] } -clap-7b89eefb6aaa9bf3 = { package = "clap", version = "3", features = ["derive"] } -clap-f595c2ba2a3f28df = { package = "clap", version = "2" } +clap-7b89eefb6aaa9bf3 = { package = "clap", version = "3", features = ["cargo", "derive"] } clap_builder = { version = "4", default-features = false, features = ["color", "help", "std", "suggestions", "usage"] } clap_derive-164d15cefe24d7eb = { package = "clap_derive", version = "4" } clap_derive-7b89eefb6aaa9bf3 = { package = "clap_derive", version = "3" } @@ -1420,10 +1414,7 @@ spki-ca01ad9e24f5d932 = { package = "spki", version = "0.7", default-features = stable_deref_trait = { version = "1" } static_assertions = { version = "1", default-features = false } strip-ansi-escapes = { version = "0.1", default-features = false } -strsim-93f6ce9d446188ac = { package = "strsim", version = "0.10", default-features = false } -strsim-c38e5c1d305a1b54 = { package = "strsim", version = "0.8", default-features = false } -structopt = { version = "0.3" } -structopt-derive = { version = "0.4", default-features = false } +strsim = { version = "0.10", default-features = false } strum = { version = "0.24", features = ["derive"] } strum_macros = { version = "0.24", default-features = false } subprocess = { version = "0.2", default-features = false } @@ -1450,8 +1441,7 @@ test-fuzz = { version = "3", default-features = false } test-fuzz-internal = { version = "3", default-features = false } test-fuzz-macro = { version = "3", default-features = false } test-fuzz-runtime = { version = "3", default-features = false } -textwrap-986da7b5efc2b80e = { package = "textwrap", version = "0.16", default-features = false } -textwrap-a6292c17cd707f01 = { package = "textwrap", version = "0.11", default-features = false } +textwrap = { version = "0.16", default-features = false } thiserror = { version = "1", default-features = false } thiserror-impl = { version = "1", default-features = false } thread_local = { version = "1", default-features = false } @@ -1534,7 +1524,6 @@ utf-8 = { version = "0.7", default-features = false } utf8parse = { version = "0.2" } uuid = { version = "1", features = ["fast-rng", "v4"] } variant_count = { version = "1", default-features = false } -vec_map = { version = "0.8", default-features = false } version_check = { version = "0.9", default-features = false } versions = { version = "4", default-features = false } vsimd = { version = "0.8", default-features = false, features = ["detect"] } diff --git a/narwhal/node/Cargo.toml b/narwhal/node/Cargo.toml index 36919fdb4d938..2a8c330e7f1e8 100644 --- a/narwhal/node/Cargo.toml +++ b/narwhal/node/Cargo.toml @@ -11,7 +11,7 @@ arc-swap.workspace = true async-trait.workspace = true bytes.workspace = true cfg-if.workspace = true -clap = "2.34" +clap.workspace = true futures.workspace = true rand.workspace = true thiserror.workspace = true @@ -50,7 +50,6 @@ reqwest.workspace = true pretty_assertions.workspace = true serde-reflection.workspace = true serde_yaml.workspace = true -structopt.workspace = true test-utils = { path = "../test-utils", package = "narwhal-test-utils" } [features] diff --git a/narwhal/node/src/generate_format.rs b/narwhal/node/src/generate_format.rs index d05246c85625d..3f018a94a0f66 100644 --- a/narwhal/node/src/generate_format.rs +++ b/narwhal/node/src/generate_format.rs @@ -1,5 +1,6 @@ // Copyright (c) Mysten Labs, Inc. // SPDX-License-Identifier: Apache-2.0 +use clap::Parser; use config::{CommitteeBuilder, Epoch, WorkerIndex, WorkerInfo}; use crypto::{KeyPair, NetworkKeyPair}; use fastcrypto::{ @@ -10,7 +11,6 @@ use mysten_network::Multiaddr; use rand::{prelude::StdRng, SeedableRng}; use serde_reflection::{Registry, Result, Samples, Tracer, TracerConfig}; use std::{fs::File, io::Write}; -use structopt::{clap::arg_enum, StructOpt}; use types::{ Batch, BatchDigest, Certificate, CertificateDigest, Header, HeaderDigest, HeaderV1Builder, MetadataV1, VersionedMetadata, WorkerOthersBatchMessage, WorkerOwnBatchMessage, @@ -143,22 +143,20 @@ fn get_registry() -> Result { tracer.registry() } -arg_enum! { -#[derive(Debug, StructOpt, Clone, Copy)] +#[derive(Debug, clap::ValueEnum, Clone, Copy)] enum Action { Print, Test, Record, } -} -#[derive(Debug, StructOpt)] -#[structopt( +#[derive(Debug, Parser)] +#[clap( name = "Narwhal format generator", about = "Trace serde (de)serialization to generate format descriptions for Narwhal types" )] struct Options { - #[structopt(possible_values = &Action::variants(), default_value = "Print", case_insensitive = true)] + #[clap(value_enum, default_value = "Print", case_insensitive = true)] action: Action, } diff --git a/narwhal/node/src/main.rs b/narwhal/node/src/main.rs index 7f563b8a503c8..6f623c81c2246 100644 --- a/narwhal/node/src/main.rs +++ b/narwhal/node/src/main.rs @@ -100,19 +100,19 @@ async fn main() -> Result<(), eyre::Report> { }; match matches.subcommand() { - ("generate_keys", Some(sub_matches)) => { + Some(("generate_keys", sub_matches)) => { let _guard = setup_telemetry(tracing_level, network_tracing_level, None); let key_file = sub_matches.value_of("filename").unwrap(); let keypair: AuthorityKeyPair = get_key_pair_from_rng(&mut rand::rngs::OsRng).1; write_authority_keypair_to_file(&keypair, key_file).unwrap(); } - ("generate_network_keys", Some(sub_matches)) => { + Some(("generate_network_keys", sub_matches)) => { let _guard = setup_telemetry(tracing_level, network_tracing_level, None); let network_key_file = sub_matches.value_of("filename").unwrap(); let network_keypair: NetworkKeyPair = get_key_pair_from_rng(&mut rand::rngs::OsRng).1; write_keypair_to_file(&SuiKeyPair::Ed25519(network_keypair), network_key_file).unwrap(); } - ("get_pub_key", Some(sub_matches)) => { + Some(("get_pub_key", sub_matches)) => { let _guard = setup_telemetry(tracing_level, network_tracing_level, None); let file = sub_matches.value_of("filename").unwrap(); match read_network_keypair_from_file(file) { @@ -131,7 +131,7 @@ async fn main() -> Result<(), eyre::Report> { } } } - ("run", Some(sub_matches)) => { + Some(("run", sub_matches)) => { let primary_key_file = sub_matches.value_of("primary-keys").unwrap(); let primary_keypair = read_authority_keypair_from_file(primary_key_file) .expect("Failed to load the node's primary keypair"); @@ -153,8 +153,8 @@ async fn main() -> Result<(), eyre::Report> { .id(); let registry = match sub_matches.subcommand() { - ("primary", _) => primary_metrics_registry(authority_id), - ("worker", Some(worker_matches)) => { + Some(("primary", _)) => primary_metrics_registry(authority_id), + Some(("worker", worker_matches)) => { let id = worker_matches .value_of("id") .unwrap() @@ -239,7 +239,7 @@ fn setup_benchmark_telemetry( // Runs either a worker or a primary. async fn run( - matches: &ArgMatches<'_>, + matches: &ArgMatches, committee: Committee, primary_keypair: KeyPair, primary_network_keypair: NetworkKeyPair, @@ -277,7 +277,7 @@ async fn run( // Check whether to run a primary, a worker, or an entire authority. let (primary, worker) = match matches.subcommand() { // Spawn the primary and consensus core. - ("primary", _) => { + Some(("primary", _)) => { let primary = PrimaryNode::new(parameters.clone(), registry_service); primary @@ -297,7 +297,7 @@ async fn run( } // Spawn a single worker. - ("worker", Some(sub_matches)) => { + Some(("worker", sub_matches)) => { let id = sub_matches .value_of("id") .unwrap()