... I'll also add in these cases that the only one where assuming unknown means infinite is #1.
Looking through the uses of terminal_width:
_help_commands_to_text: wants to wrap text, which is a bit like #2.
LineLogFormatter: truncates, case #1.
TextProgressView and TTYProgressBar: case #3 obviously, and also case #1 in that it truncates the pb text to fit.
show_pending_merges: calls in to LineLogFormatter, so also case #1.
report_test_start: wants to show the test name truncated to the terminal width and also show the outcome or time aligned to the right (#1 and #2).
I wonder if we should just handle this by eliminating case #1 altogether: show the whole first line of the log message, and rely on people putting a reasonably short first line, as for docstrings. But perhaps people have entered long single-line arguments to ci -m.
... I'll also add in these cases that the only one where assuming unknown means infinite is #1.
Looking through the uses of terminal_width:
_help_commands_ to_text: wants to wrap text, which is a bit like #2.
LineLogFormatter: truncates, case #1.
TextProgressView and TTYProgressBar: case #3 obviously, and also case #1 in that it truncates the pb text to fit.
show_pending_ merges: calls in to LineLogFormatter, so also case #1.
report_test_start: wants to show the test name truncated to the terminal width and also show the outcome or time aligned to the right (#1 and #2).
I wonder if we should just handle this by eliminating case #1 altogether: show the whole first line of the log message, and rely on people putting a reasonably short first line, as for docstrings. But perhaps people have entered long single-line arguments to ci -m.