Skip to content

Commit

Permalink
Bump clap to 4.0.x and adjust to best practices (paritytech#12381)
Browse files Browse the repository at this point in the history
* Bump clap to 3.2.22

* Replace `from_os_str` with `value_parser`

* Replace `from_str` and `try_from_str` with `value_parser`

* Move possible_values to the new format

* Remove unwanted print

* Add missing match branch

* Update clap to 4.0.9 and make it compile

* Replace deprecated `clap` macro with `command` and `value`

* Move remaining `clap` attributes to `arg`

* Remove no-op value_parsers

* Adjust value_parser for state_version

* Remove "deprecated" feature flag and bump to 4.0.11

* Improve range

Co-authored-by: Bastian Köcher <git@kchr.de>

* Apply suggestions

* Trigger CI

* Fix unused error warning

* Fix doc errors

* Fix ArgGroup naming conflict

* Change default_value to default_value_t

* Use 1.. instead of 0..

Co-authored-by: Bastian Köcher <git@kchr.de>
  • Loading branch information
2 people authored and ark0f committed Feb 27, 2023
1 parent 65d9e18 commit e71cf5b
Show file tree
Hide file tree
Showing 70 changed files with 434 additions and 443 deletions.
60 changes: 26 additions & 34 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion bin/node-template/node/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ targets = ["x86_64-unknown-linux-gnu"]
name = "node-template"

[dependencies]
clap = { version = "3.1.18", features = ["derive"] }
clap = { version = "4.0.9", features = ["derive"] }

sc-cli = { version = "0.10.0-dev", path = "../../../client/cli", features = ["wasmtime"] }
sp-core = { version = "6.0.0", path = "../../../primitives/core" }
Expand Down
6 changes: 3 additions & 3 deletions bin/node-template/node/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use sc_cli::RunCmd;

#[derive(Debug, clap::Parser)]
pub struct Cli {
#[clap(subcommand)]
#[command(subcommand)]
pub subcommand: Option<Subcommand>,

#[clap(flatten)]
Expand All @@ -12,7 +12,7 @@ pub struct Cli {
#[derive(Debug, clap::Subcommand)]
pub enum Subcommand {
/// Key management cli utilities
#[clap(subcommand)]
#[command(subcommand)]
Key(sc_cli::KeySubcommand),

/// Build a chain specification.
Expand All @@ -37,7 +37,7 @@ pub enum Subcommand {
Revert(sc_cli::RevertCmd),

/// Sub-commands concerned with benchmarking.
#[clap(subcommand)]
#[command(subcommand)]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),

/// Try some command against runtime state.
Expand Down
2 changes: 1 addition & 1 deletion bin/node/bench/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ repository = "https://github.com/paritytech/substrate/"

[dependencies]
array-bytes = "4.1"
clap = { version = "3.1.18", features = ["derive"] }
clap = { version = "4.0.9", features = ["derive"] }
log = "0.4.17"
node-primitives = { version = "2.0.0", path = "../primitives" }
node-testing = { version = "3.0.0-dev", path = "../testing" }
Expand Down
10 changes: 5 additions & 5 deletions bin/node/bench/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ use crate::{
};

#[derive(Debug, Parser)]
#[clap(name = "node-bench", about = "Node integration benchmarks")]
#[command(name = "node-bench", about = "Node integration benchmarks")]
struct Opt {
/// Show list of all available benchmarks.
///
/// Will output ("name", "path"). Benchmarks can then be filtered by path.
#[clap(short, long)]
#[arg(short, long)]
list: bool,

/// Machine readable json output.
///
/// This also suppresses all regular output (except to stderr)
#[clap(short, long)]
#[arg(short, long)]
json: bool,

/// Filter benchmarks.
Expand All @@ -63,7 +63,7 @@ struct Opt {
filter: Option<String>,

/// Number of transactions for block import with `custom` size.
#[clap(long)]
#[arg(long)]
transactions: Option<usize>,

/// Mode
Expand All @@ -72,7 +72,7 @@ struct Opt {
///
/// "profile" mode adds pauses between measurable runs,
/// so that actual interval can be selected in the profiler of choice.
#[clap(short, long, default_value = "regular")]
#[arg(short, long, default_value = "regular")]
mode: BenchmarkMode,
}

Expand Down
6 changes: 3 additions & 3 deletions bin/node/cli/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ crate-type = ["cdylib", "rlib"]
[dependencies]
# third-party dependencies
array-bytes = "4.1"
clap = { version = "3.1.18", features = ["derive"], optional = true }
clap = { version = "4.0.9", features = ["derive"], optional = true }
codec = { package = "parity-scale-codec", version = "3.0.0" }
serde = { version = "1.0.136", features = ["derive"] }
jsonrpsee = { version = "0.15.1", features = ["server"] }
Expand Down Expand Up @@ -136,8 +136,8 @@ remote-externalities = { path = "../../../utils/frame/remote-externalities" }
pallet-timestamp = { version = "4.0.0-dev", path = "../../../frame/timestamp" }

[build-dependencies]
clap = { version = "3.1.18", optional = true }
clap_complete = { version = "3.0", optional = true }
clap = { version = "4.0.9", optional = true }
clap_complete = { version = "4.0.2", optional = true }
node-inspect = { version = "0.9.0-dev", optional = true, path = "../inspect" }
frame-benchmarking-cli = { version = "4.0.0-dev", optional = true, path = "../../../utils/frame/benchmarking-cli" }
substrate-build-script-utils = { version = "3.0.0", optional = true, path = "../../../utils/build-script-utils" }
Expand Down
2 changes: 1 addition & 1 deletion bin/node/cli/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ fn main() {
mod cli {
include!("src/cli.rs");

use clap::{ArgEnum, CommandFactory};
use clap::{CommandFactory, ValueEnum};
use clap_complete::{generate_to, Shell};
use std::{env, fs, path::Path};
use substrate_build_script_utils::{generate_cargo_keys, rerun_if_git_head_changed};
Expand Down
10 changes: 5 additions & 5 deletions bin/node/cli/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
#[derive(Debug, clap::Parser)]
pub struct Cli {
/// Possible subcommand with parameters.
#[clap(subcommand)]
#[command(subcommand)]
pub subcommand: Option<Subcommand>,

#[allow(missing_docs)]
Expand All @@ -34,23 +34,23 @@ pub struct Cli {
///
/// The results are then printed out in the logs, and also sent as part of
/// telemetry, if telemetry is enabled.
#[clap(long)]
#[arg(long)]
pub no_hardware_benchmarks: bool,
}

/// Possible subcommands of the main binary.
#[derive(Debug, clap::Subcommand)]
pub enum Subcommand {
/// The custom inspect subcommmand for decoding blocks and extrinsics.
#[clap(
#[command(
name = "inspect",
about = "Decode given block or extrinsic using current native runtime."
)]
Inspect(node_inspect::cli::InspectCmd),

/// Sub-commands concerned with benchmarking.
/// The pallet benchmarking moved to the `pallet` sub-command.
#[clap(subcommand)]
#[command(subcommand)]
Benchmark(frame_benchmarking_cli::BenchmarkCmd),

/// Try some command against runtime state.
Expand All @@ -62,7 +62,7 @@ pub enum Subcommand {
TryRuntime,

/// Key management cli utilities
#[clap(subcommand)]
#[command(subcommand)]
Key(sc_cli::KeySubcommand),

/// Verify a signature for a message, provided on STDIN, with a given (public or secret) key.
Expand Down
2 changes: 1 addition & 1 deletion bin/node/inspect/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ repository = "https://github.com/paritytech/substrate/"
targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
clap = { version = "3.1.6", features = ["derive"] }
clap = { version = "4.0.9", features = ["derive"] }
codec = { package = "parity-scale-codec", version = "3.0.0" }
thiserror = "1.0"
sc-cli = { version = "0.10.0-dev", path = "../../../client/cli" }
Expand Down
4 changes: 2 additions & 2 deletions bin/node/inspect/src/cli.rs
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ pub enum InspectSubCmd {
/// Can be either a block hash (no 0x prefix) or a number to retrieve existing block,
/// or a 0x-prefixed bytes hex string, representing SCALE encoding of
/// a block.
#[clap(value_name = "HASH or NUMBER or BYTES")]
#[arg(value_name = "HASH or NUMBER or BYTES")]
input: String,
},
/// Decode extrinsic with native version of runtime and print out the details.
Expand All @@ -56,7 +56,7 @@ pub enum InspectSubCmd {
/// Can be either a block hash (no 0x prefix) or number and the index, in the form
/// of `{block}:{index}` or a 0x-prefixed bytes hex string,
/// representing SCALE encoding of an extrinsic.
#[clap(value_name = "BLOCK:INDEX or BYTES")]
#[arg(value_name = "BLOCK:INDEX or BYTES")]
input: String,
},
}
2 changes: 1 addition & 1 deletion bin/utils/chain-spec-builder/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ targets = ["x86_64-unknown-linux-gnu"]

[dependencies]
ansi_term = "0.12.1"
clap = { version = "3.1.18", features = ["derive"] }
clap = { version = "4.0.9", features = ["derive"] }
rand = "0.8"
node-cli = { version = "3.0.0-dev", path = "../../node/cli" }
sc-chain-spec = { version = "4.0.0-dev", path = "../../../client/chain-spec" }
Expand Down
Loading

0 comments on commit e71cf5b

Please sign in to comment.