[pbs-devel] [PATCH proxmox] schema: removed excessive newlines in error messages

Thomas Lamprecht t.lamprecht at proxmox.com
Wed Oct 18 19:22:21 CEST 2023

nit: s/removed/remove/, commit message should describe what they
change in the commit itself, so they make most sense if written in
the imperative.

Am 01/09/2023 um 10:12 schrieb Gabriel Goller:
> The output does not look good on console/task view when there is an
> empty line after the first error and trailing newlines after
> the last error. Removed the newlines.

I mean, as there are explicitly two newlines in a literal before
you patch it seems like somebody though it looks better that way

But sure, being more concise and providing less output, while keeping
a good readability, has definitively its merits!

The double occurrence of "error" is also something we could try to

> Signed-off-by: Gabriel Goller <g.goller at proxmox.com>
> ---
>  proxmox-schema/src/schema.rs | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> diff --git a/proxmox-schema/src/schema.rs b/proxmox-schema/src/schema.rs
> index f087706..596adee 100644
> --- a/proxmox-schema/src/schema.rs
> +++ b/proxmox-schema/src/schema.rs
> @@ -101,14 +101,14 @@ impl fmt::Display for ParameterError {
>          let mut msg = String::new();
>          if !self.is_empty() {
> -            msg.push_str("parameter verification errors\n\n");
> +            msg.push_str("parameter verification errors\n");

This is debatable, maybe we could do the following:

1. If there's exactly one parameter error collapse it to a single line, e.g.:

Error: parameter verification failed - 'file-name': value does not match the regex pattern

Or even more condensed:

Error: parameter 'file-name' - value does not match the regex pattern

2. if there are more than one error use a line by error but also use
bulletin point to keep a higher readability, e.g.:

Error: parameter verification failed:
- 'file-name': value does not match the regex pattern
- 'some-number': value is not in range X to Y
- 'foo-bar': value is to common

The only thing, from top of my head, speaking against doing 1. at all would
be that it's making parsing a bit harder, but tbh., we never guaranteed
error message stability, and if one depends on such stuff they should use
the API – so not seeing that as a blocker.

What do you think?

>          }
>          for (name, err) in self.error_list.iter() {
>              let _ = writeln!(msg, "parameter '{}': {}", name, err);
>          }
> -        write!(f, "{}", msg)
> +        write!(f, "{}", msg.trim())

this I'm fine with doing unconditionally.

>      }
>  }

More information about the pbs-devel mailing list