From 5b27f2bccbca03a4ed583a723dd2890ea0458812 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Wed, 25 Oct 2023 09:17:22 +0300 Subject: [PATCH 1/4] Harmonize help commands' `--format` to `--output-format` with deprecation warnings Warnings borrowed from #7514 Fixes #7990 --- crates/ruff_cli/src/args.rs | 40 ++++++++++++++++++++++++++++----- crates/ruff_cli/src/lib.rs | 44 +++++++++++++++++++++++++++++++------ 2 files changed, 72 insertions(+), 12 deletions(-) diff --git a/crates/ruff_cli/src/args.rs b/crates/ruff_cli/src/args.rs index c9bd65f80eede3..8776cc00754754 100644 --- a/crates/ruff_cli/src/args.rs +++ b/crates/ruff_cli/src/args.rs @@ -49,16 +49,36 @@ pub enum Command { all: bool, /// Output format - #[arg(long, value_enum, default_value = "text")] - format: HelpFormat, + #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] + output_format: HelpFormat, + + /// Output format (Deprecated: Use `--output-format` instead). + #[arg( + long, + value_enum, + conflicts_with = "output_format", + hide = true, + env = "RUFF_FORMAT" + )] + format: Option, }, /// List or describe the available configuration options. Config { option: Option }, /// List all supported upstream linters. Linter { /// Output format - #[arg(long, value_enum, default_value = "text")] - format: HelpFormat, + #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] + output_format: HelpFormat, + + /// Output format (Deprecated: Use `--output-format` instead). + #[arg( + long, + value_enum, + conflicts_with = "output_format", + hide = true, + env = "RUFF_FORMAT" + )] + format: Option, }, /// Clear any caches in the current directory and any subdirectories. #[clap(alias = "--clean")] @@ -70,8 +90,18 @@ pub enum Command { Format(FormatCommand), /// Display Ruff's version Version { - #[arg(long, value_enum, default_value = "text")] + #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] output_format: HelpFormat, + + /// Output format (Deprecated: Use `--output-format` instead). + #[arg( + long, + value_enum, + conflicts_with = "output_format", + hide = true, + env = "RUFF_FORMAT" + )] + format: Option, }, } diff --git a/crates/ruff_cli/src/lib.rs b/crates/ruff_cli/src/lib.rs index 4056315d67ca9e..652005aca9ca19 100644 --- a/crates/ruff_cli/src/lib.rs +++ b/crates/ruff_cli/src/lib.rs @@ -18,7 +18,7 @@ use ruff_linter::settings::types::SerializationFormat; use ruff_linter::{fs, warn_user, warn_user_once}; use ruff_workspace::Settings; -use crate::args::{Args, CheckCommand, Command, FormatCommand}; +use crate::args::{Args, CheckCommand, Command, FormatCommand, HelpFormat}; use crate::printer::{Flags as PrinterFlags, Printer}; pub mod args; @@ -101,6 +101,22 @@ fn is_stdin(files: &[PathBuf], stdin_filename: Option<&Path>) -> bool { file == Path::new("-") } +/// Get the actual value of the `format` desired from either `output_format` +/// or `format`, and warn the user if they're using the deprecated form. +fn warn_about_deprecated_help_format( + output_format: HelpFormat, + format: Option, +) -> HelpFormat { + if format.is_some() { + if std::env::var("RUFF_FORMAT").is_ok() { + warn_user!("The environment variable `RUFF_FORMAT` is deprecated. Use `RUFF_OUTPUT_FORMAT` instead."); + } else { + warn_user!("The argument `--format=` is deprecated. Use `--output-format=` instead."); + } + } + format.unwrap_or(output_format) +} + pub fn run( Args { command, @@ -137,16 +153,26 @@ pub fn run( set_up_logging(&log_level)?; match command { - Command::Version { output_format } => { + Command::Version { + format, + mut output_format, + } => { + output_format = warn_about_deprecated_help_format(output_format, format); commands::version::version(output_format)?; Ok(ExitStatus::Success) } - Command::Rule { rule, all, format } => { + Command::Rule { + rule, + all, + format, + mut output_format, + } => { + output_format = warn_about_deprecated_help_format(output_format, format); if all { - commands::rule::rules(format)?; + commands::rule::rules(output_format)?; } if let Some(rule) = rule { - commands::rule::rule(rule, format)?; + commands::rule::rule(rule, output_format)?; } Ok(ExitStatus::Success) } @@ -154,8 +180,12 @@ pub fn run( commands::config::config(option.as_deref())?; Ok(ExitStatus::Success) } - Command::Linter { format } => { - commands::linter::linter(format)?; + Command::Linter { + format, + mut output_format, + } => { + output_format = warn_about_deprecated_help_format(output_format, format); + commands::linter::linter(output_format)?; Ok(ExitStatus::Success) } Command::Clean => { From d23031a2e3c1e41d7076d02ef41ec339173f6597 Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 26 Oct 2023 11:37:03 +0300 Subject: [PATCH 2/4] Address review: no more envvars, no legacy `--format` for `version` --- crates/ruff_cli/src/args.rs | 32 +++++--------------------------- crates/ruff_cli/src/lib.rs | 12 ++---------- 2 files changed, 7 insertions(+), 37 deletions(-) diff --git a/crates/ruff_cli/src/args.rs b/crates/ruff_cli/src/args.rs index 8776cc00754754..ba2cca1b165582 100644 --- a/crates/ruff_cli/src/args.rs +++ b/crates/ruff_cli/src/args.rs @@ -49,17 +49,11 @@ pub enum Command { all: bool, /// Output format - #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] + #[arg(long, value_enum, default_value = "text")] output_format: HelpFormat, /// Output format (Deprecated: Use `--output-format` instead). - #[arg( - long, - value_enum, - conflicts_with = "output_format", - hide = true, - env = "RUFF_FORMAT" - )] + #[arg(long, value_enum, conflicts_with = "output_format", hide = true)] format: Option, }, /// List or describe the available configuration options. @@ -67,17 +61,11 @@ pub enum Command { /// List all supported upstream linters. Linter { /// Output format - #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] + #[arg(long, value_enum, default_value = "text")] output_format: HelpFormat, /// Output format (Deprecated: Use `--output-format` instead). - #[arg( - long, - value_enum, - conflicts_with = "output_format", - hide = true, - env = "RUFF_FORMAT" - )] + #[arg(long, value_enum, conflicts_with = "output_format", hide = true)] format: Option, }, /// Clear any caches in the current directory and any subdirectories. @@ -90,18 +78,8 @@ pub enum Command { Format(FormatCommand), /// Display Ruff's version Version { - #[arg(long, value_enum, default_value = "text", env = "RUFF_OUTPUT_FORMAT")] + #[arg(long, value_enum, default_value = "text")] output_format: HelpFormat, - - /// Output format (Deprecated: Use `--output-format` instead). - #[arg( - long, - value_enum, - conflicts_with = "output_format", - hide = true, - env = "RUFF_FORMAT" - )] - format: Option, }, } diff --git a/crates/ruff_cli/src/lib.rs b/crates/ruff_cli/src/lib.rs index 652005aca9ca19..68768d8888a8f6 100644 --- a/crates/ruff_cli/src/lib.rs +++ b/crates/ruff_cli/src/lib.rs @@ -108,11 +108,7 @@ fn warn_about_deprecated_help_format( format: Option, ) -> HelpFormat { if format.is_some() { - if std::env::var("RUFF_FORMAT").is_ok() { - warn_user!("The environment variable `RUFF_FORMAT` is deprecated. Use `RUFF_OUTPUT_FORMAT` instead."); - } else { - warn_user!("The argument `--format=` is deprecated. Use `--output-format=` instead."); - } + warn_user!("The argument `--format=` is deprecated. Use `--output-format=` instead."); } format.unwrap_or(output_format) } @@ -153,11 +149,7 @@ pub fn run( set_up_logging(&log_level)?; match command { - Command::Version { - format, - mut output_format, - } => { - output_format = warn_about_deprecated_help_format(output_format, format); + Command::Version { output_format } => { commands::version::version(output_format)?; Ok(ExitStatus::Success) } From dd16001a3045a015111f20b53ed942cf5c0814fc Mon Sep 17 00:00:00 2001 From: Aarni Koskela Date: Thu, 26 Oct 2023 19:45:59 +0300 Subject: [PATCH 3/4] Update crates/ruff_cli/src/lib.rs Co-authored-by: Zanie Blue --- crates/ruff_cli/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/ruff_cli/src/lib.rs b/crates/ruff_cli/src/lib.rs index 68768d8888a8f6..8c869d0cdb06f4 100644 --- a/crates/ruff_cli/src/lib.rs +++ b/crates/ruff_cli/src/lib.rs @@ -108,7 +108,7 @@ fn warn_about_deprecated_help_format( format: Option, ) -> HelpFormat { if format.is_some() { - warn_user!("The argument `--format=` is deprecated. Use `--output-format=` instead."); + warn_user!("The `--format` argument is deprecated. Use `--output-format` instead."); } format.unwrap_or(output_format) } From 8f4dbf436363c63f397600332c148c0b028a1acb Mon Sep 17 00:00:00 2001 From: Charlie Marsh Date: Fri, 27 Oct 2023 23:27:02 -0400 Subject: [PATCH 4/4] Rename to resolve --- crates/ruff_cli/src/lib.rs | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/crates/ruff_cli/src/lib.rs b/crates/ruff_cli/src/lib.rs index 8c869d0cdb06f4..4cb0db0c8bb9e4 100644 --- a/crates/ruff_cli/src/lib.rs +++ b/crates/ruff_cli/src/lib.rs @@ -103,10 +103,7 @@ fn is_stdin(files: &[PathBuf], stdin_filename: Option<&Path>) -> bool { /// Get the actual value of the `format` desired from either `output_format` /// or `format`, and warn the user if they're using the deprecated form. -fn warn_about_deprecated_help_format( - output_format: HelpFormat, - format: Option, -) -> HelpFormat { +fn resolve_help_output_format(output_format: HelpFormat, format: Option) -> HelpFormat { if format.is_some() { warn_user!("The `--format` argument is deprecated. Use `--output-format` instead."); } @@ -159,7 +156,7 @@ pub fn run( format, mut output_format, } => { - output_format = warn_about_deprecated_help_format(output_format, format); + output_format = resolve_help_output_format(output_format, format); if all { commands::rule::rules(output_format)?; } @@ -176,7 +173,7 @@ pub fn run( format, mut output_format, } => { - output_format = warn_about_deprecated_help_format(output_format, format); + output_format = resolve_help_output_format(output_format, format); commands::linter::linter(output_format)?; Ok(ExitStatus::Success) }