From fe52b32db4442314dc3aaa1995296676b0bd95c8 Mon Sep 17 00:00:00 2001 From: Yaroslav Bolyukin Date: Wed, 26 Oct 2022 19:39:10 +0000 Subject: [PATCH] build: upgrade dependencies --- --- a/cmds/jrsonnet/Cargo.toml +++ b/cmds/jrsonnet/Cargo.toml @@ -28,5 +28,5 @@ mimallocator = { version = "0.1.3", optional = true } thiserror = "1.0" -clap = { version = "3.2", features = ["derive"] } -clap_complete = { version = "3.2" } +clap = { version = "4.0", features = ["derive"] } +clap_complete = { version = "4.0" } --- a/cmds/jrsonnet/src/main.rs +++ b/cmds/jrsonnet/src/main.rs @@ -3,7 +3,7 @@ io::{Read, Write}, }; -use clap::{AppSettings, IntoApp, Parser}; +use clap::{CommandFactory, Parser}; use clap_complete::Shell; use jrsonnet_cli::{ConfigureState, GeneralOpts, ManifestOpts, OutputOpts}; use jrsonnet_evaluator::{error::LocError, State}; @@ -42,10 +42,7 @@ } #[derive(Parser)] -#[clap( - global_setting = AppSettings::DeriveDisplayOrder, - args_conflicts_with_subcommands = true, -)] +#[clap(args_conflicts_with_subcommands = true, disable_version_flag = true)] struct Opts { #[clap(subcommand)] sub: Option, --- a/crates/jrsonnet-cli/Cargo.toml +++ b/crates/jrsonnet-cli/Cargo.toml @@ -21,4 +21,4 @@ jrsonnet-gcmodule = { version = "0.3.4" } jrsonnet-stdlib = { path = "../../crates/jrsonnet-stdlib", version = "0.4.2" } -clap = { version = "3.2", features = ["derive"] } +clap = { version = "4.0", features = ["derive"] } --- a/crates/jrsonnet-cli/src/lib.rs +++ b/crates/jrsonnet-cli/src/lib.rs @@ -44,7 +44,7 @@ /// Any not found `imported` file will be searched in these. /// This can also be specified via `JSONNET_PATH` variable, /// which should contain a colon-separated (semicolon-separated on Windows) list of directories. - #[clap(long, short = 'J', multiple_occurrences = true)] + #[clap(long, short = 'J')] jpath: Vec, } impl ConfigureState for MiscOpts { --- a/crates/jrsonnet-cli/src/manifest.rs +++ b/crates/jrsonnet-cli/src/manifest.rs @@ -1,10 +1,11 @@ use std::{path::PathBuf, str::FromStr}; -use clap::Parser; +use clap::{Parser, ValueEnum}; use jrsonnet_evaluator::{error::Result, ManifestFormat, State}; use crate::ConfigureState; +#[derive(Clone, ValueEnum)] pub enum ManifestFormatName { /// Expect string as output, and write them directly String, @@ -28,7 +29,7 @@ #[clap(next_help_heading = "MANIFESTIFICATION OUTPUT")] pub struct ManifestOpts { /// Output format, wraps resulting value to corresponding std.manifest call. - #[clap(long, short = 'f', default_value = "json", possible_values = &["json", "yaml"])] + #[clap(long, short = 'f', default_value = "json")] format: ManifestFormatName, /// Expect plain string as output. /// Mutually exclusive with `--format` --- a/crates/jrsonnet-cli/src/stdlib.rs +++ b/crates/jrsonnet-cli/src/stdlib.rs @@ -69,40 +69,19 @@ /// to use top level arguments whenever it's possible. /// If [=data] is not set then it will be read from `name` env variable. /// Can be accessed from code via `std.extVar("name")`. - #[clap( - long, - short = 'V', - name = "name[=var data]", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, short = 'V', name = "name[=var data]", number_of_values = 1)] ext_str: Vec, /// Read string external variable from file. /// See also `--ext-str` - #[clap( - long, - name = "name=var path", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name=var path", number_of_values = 1)] ext_str_file: Vec, /// Add external variable from code. /// See also `--ext-str` - #[clap( - long, - name = "name[=var source]", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name[=var source]", number_of_values = 1)] ext_code: Vec, /// Read string external variable from file. /// See also `--ext-str` - #[clap( - long, - name = "name=var code path", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name=var code path", number_of_values = 1)] ext_code_file: Vec, } impl ConfigureState for StdOpts { --- a/crates/jrsonnet-cli/src/tla.rs +++ b/crates/jrsonnet-cli/src/tla.rs @@ -10,40 +10,19 @@ /// Top level arguments will be passed to function before manifestification stage. /// This is preferred to ExtVars method. /// If [=data] is not set then it will be read from `name` env variable. - #[clap( - long, - short = 'A', - name = "name[=tla data]", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, short = 'A', name = "name[=tla data]", number_of_values = 1)] tla_str: Vec, /// Read top level argument string from file. /// See also `--tla-str` - #[clap( - long, - name = "name=tla path", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name=tla path", number_of_values = 1)] tla_str_file: Vec, /// Add top level argument from code. /// See also `--tla-str` - #[clap( - long, - name = "name[=tla source]", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name[=tla source]", number_of_values = 1)] tla_code: Vec, /// Read top level argument code from file. /// See also `--tla-str` - #[clap( - long, - name = "name=tla code path", - number_of_values = 1, - multiple_occurrences = true - )] + #[clap(long, name = "name=tla code path", number_of_values = 1)] tla_code_file: Vec, } impl ConfigureState for TLAOpts { --- a/crates/jrsonnet-cli/src/trace.rs +++ b/crates/jrsonnet-cli/src/trace.rs @@ -1,6 +1,4 @@ -use std::str::FromStr; - -use clap::Parser; +use clap::{Parser, ValueEnum}; use jrsonnet_evaluator::{ error::Result, trace::{CompactFormat, ExplainingFormat, PathResolver}, @@ -9,31 +7,19 @@ use crate::ConfigureState; -#[derive(PartialEq, Eq)] +#[derive(PartialEq, Eq, ValueEnum, Clone)] pub enum TraceFormatName { + /// Only show `filename:line:column` Compact, + /// Display source code with attached trace annotations Explaining, -} - -impl FromStr for TraceFormatName { - type Err = &'static str; - fn from_str(s: &str) -> std::result::Result { - Ok(match s { - "compact" => TraceFormatName::Compact, - "explaining" => TraceFormatName::Explaining, - _ => return Err("no such format"), - }) - } } #[derive(Parser)] #[clap(next_help_heading = "STACK TRACE VISUAL")] pub struct TraceOpts { /// Format of stack traces' display in console. - /// `compact` format only shows `filename:line:column`s - /// while `explaining` displays source code with attached trace annotations - /// thus being more verbose. - #[clap(long, possible_values = &["compact", "explaining"])] + #[clap(long)] trace_format: Option, /// Amount of stack trace elements to be displayed. /// If set to `0` then full stack trace will be displayed. --- a/crates/jrsonnet-evaluator/Cargo.toml +++ b/crates/jrsonnet-evaluator/Cargo.toml @@ -31,7 +31,7 @@ jrsonnet-gcmodule = { version = "0.3.4" } pathdiff = "0.2.1" -hashbrown = "0.12.1" +hashbrown = "0.12.3" static_assertions = "1.1" rustc-hash = "1.1" --- a/crates/jrsonnet-interner/Cargo.toml +++ b/crates/jrsonnet-interner/Cargo.toml @@ -22,4 +22,4 @@ structdump = { version = "0.2.0", optional = true } rustc-hash = "1.1" -hashbrown = { version = "0.12.1", features = ["inline-more"] } +hashbrown = { version = "0.12.3", features = ["inline-more"] } --- a/crates/jrsonnet-parser/src/expr.rs +++ b/crates/jrsonnet-parser/src/expr.rs @@ -190,6 +190,7 @@ } } +#[cfg_attr(feature = "structdump", derive(Codegen))] #[cfg_attr(feature = "serde", derive(Serialize, Deserialize))] #[derive(Debug, Clone, PartialEq, Eq, Trace)] pub enum DestructRest { --- a/crates/jrsonnet-stdlib/Cargo.toml +++ b/crates/jrsonnet-stdlib/Cargo.toml @@ -30,7 +30,7 @@ # std.md5 md5 = "0.7.0" # std.base64 -base64 = "0.13.0" +base64 = "0.13.1" # std.parseJson serde_json = "1.0" # std.parseYaml, custom library fork is used for C++/golang compatibility --- a/crates/jrsonnet-types/Cargo.toml +++ b/crates/jrsonnet-types/Cargo.toml @@ -9,4 +9,4 @@ [dependencies] jrsonnet-gcmodule = { version = "0.3.4" } -peg = "0.8.0" +peg = "0.8.1" -- gitstuff