dev/breeze/doc/adr/0011-unified-communication-with-the-users.md
Table of Contents generated with DocToc
<!-- END doctoc generated TOC please keep comment here to allow auto update -->Date: 2022-04-27
Accepted
We communicate with the user via messages printed in get_console() And we should make sure we communicate the msssages in a consistent way so that the users would understand:
The messages should be:
We are using rich and colours to communicate the type of messages:
By default, we map those styles to those colors, but we can change configuration of Breeze to
be colour-blind-friendly by disabling colours in communication via breeze setup config --no-colour.
When signalling warning or error The communication should not be confusing and should not contain "noise". It should contain simple - usually one-liner - information on what's wrong or what the user is warned against, possibly followed by instructions telling the user what to do. When we are able to foresee that error will happen, we should print the message only with explanation, and we should suppress any stack-traces as they are not really useful for the users. When an error is unexpected, full stack trace should be written to allow easier investigation of the problem.
We should also support --verbose flag to display all the commands being executed, and
the --dry-run flag to only display commands and not execute the commands. This will allow to
diagnose any problems that the user might have.
Whenever we print a logically separated message we should add EOL to separate the logical part of the message as well as when you want to separate the header description from bullet lists (very similar to what .rst rules are for readability). Whitespace improves readability of communication and messages separated in sections separated by whitespace and marked with colors are much more readable than the wall of text without visible structure.
Users will get consistent approach when it comes to context and expectations of their reaction for the messages. Developers will use consistent styles.