[2/2] knotty: Improve setscene task display

Message ID 20220306133526.442843-2-richard.purdie@linuxfoundation.org
State Accepted, archived
Commit 8055ec360507e6a678ee5c4018ec1ab7f5a9cce5
Headers show
Series [1/2] knotty: Correctly handle multiple line items | expand

Commit Message

Richard Purdie March 6, 2022, 1:35 p.m. UTC
There is general agreement the current display of the total setscene and
executed full tasks is confusing. Fixing it is tricky to be clear to new
users whilst not wasting screen real estate for experienced users and not
compromisng features like the progress bar.

As a compromise, move the setscene total to the previous line making
the status display a two line summary for interactive terminals. This
makes it clear what two of the numbers represent (setscene task) whilst
separating this out from the other items.

Also tweak the non-interactive output to use a comma as a separator,
the use of the forward slash was a poor choice.

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
---
 lib/bb/ui/knotty.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Jose Quaresma March 7, 2022, 11:17 p.m. UTC | #1
Hi Richard,

The following patch on master next is very different from this one
https://git.yoctoproject.org/poky/commit/?h=master-next&id=4639952adfe139d91899cf9a58a9f165bfbfef58

Jose

Richard Purdie <richard.purdie@linuxfoundation.org> escreveu no dia
domingo, 6/03/2022 à(s) 13:35:

> There is general agreement the current display of the total setscene and
> executed full tasks is confusing. Fixing it is tricky to be clear to new
> users whilst not wasting screen real estate for experienced users and not
> compromisng features like the progress bar.
>
> As a compromise, move the setscene total to the previous line making
> the status display a two line summary for interactive terminals. This
> makes it clear what two of the numbers represent (setscene task) whilst
> separating this out from the other items.
>
> Also tweak the non-interactive output to use a comma as a separator,
> the use of the forward slash was a poor choice.
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
>  lib/bb/ui/knotty.py | 6 +++---
>  1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
> index 1bcdc0023a..b02e59c1fe 100644
> --- a/lib/bb/ui/knotty.py
> +++ b/lib/bb/ui/knotty.py
> @@ -276,11 +276,11 @@ class TerminalFilter(object):
>              print(content)
>          else:
>              if self.quiet:
> -                content = "Running tasks (%s of %s/%s of %s)" %
> (self.helper.setscene_current, self.helper.setscene_total,
> self.helper.tasknumber_current, self.helper.tasknumber_total)
> +                content = "Running tasks (%s of %s, %s of %s)" %
> (self.helper.setscene_current, self.helper.setscene_total,
> self.helper.tasknumber_current, self.helper.tasknumber_total)
>              elif not len(activetasks):
> -                content = "No currently running tasks (%s of %s/%s of
> %s)" % (self.helper.setscene_current, self.helper.setscene_total,
> self.helper.tasknumber_current, self.helper.tasknumber_total)
> +                content = "Setscene tasks: %s of %s\nNo currently running
> tasks (%s of %s)" % (self.helper.setscene_current,
> self.helper.setscene_total, self.helper.tasknumber_current,
> self.helper.tasknumber_total)
>              else:
> -                content = "Currently %2s running tasks (%s of %s/%s of
> %s)" % (len(activetasks), self.helper.setscene_current,
> self.helper.setscene_total, self.helper.tasknumber_current,
> self.helper.tasknumber_total)
> +                content = "Setscene tasks: %s of %s\nCurrently %2s
> running tasks (%s of %s)" % (self.helper.setscene_current,
> self.helper.setscene_total, len(activetasks),
> self.helper.tasknumber_current, self.helper.tasknumber_total)
>              maxtask = self.helper.tasknumber_total
>              if not self.main_progress or self.main_progress.maxval !=
> maxtask:
>                  widgets = [' ', progressbar.Percentage(), ' ',
> progressbar.Bar()]
> --
> 2.32.0
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#13417):
> https://lists.openembedded.org/g/bitbake-devel/message/13417
> Mute This Topic: https://lists.openembedded.org/mt/89588749/5052612
> Group Owner: bitbake-devel+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/bitbake-devel/unsub [
> quaresma.jose@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

Patch

diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index 1bcdc0023a..b02e59c1fe 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -276,11 +276,11 @@  class TerminalFilter(object):
             print(content)
         else:
             if self.quiet:
-                content = "Running tasks (%s of %s/%s of %s)" % (self.helper.setscene_current, self.helper.setscene_total, self.helper.tasknumber_current, self.helper.tasknumber_total)
+                content = "Running tasks (%s of %s, %s of %s)" % (self.helper.setscene_current, self.helper.setscene_total, self.helper.tasknumber_current, self.helper.tasknumber_total)
             elif not len(activetasks):
-                content = "No currently running tasks (%s of %s/%s of %s)" % (self.helper.setscene_current, self.helper.setscene_total, self.helper.tasknumber_current, self.helper.tasknumber_total)
+                content = "Setscene tasks: %s of %s\nNo currently running tasks (%s of %s)" % (self.helper.setscene_current, self.helper.setscene_total, self.helper.tasknumber_current, self.helper.tasknumber_total)
             else:
-                content = "Currently %2s running tasks (%s of %s/%s of %s)" % (len(activetasks), self.helper.setscene_current, self.helper.setscene_total, self.helper.tasknumber_current, self.helper.tasknumber_total)
+                content = "Setscene tasks: %s of %s\nCurrently %2s running tasks (%s of %s)" % (self.helper.setscene_current, self.helper.setscene_total, len(activetasks), self.helper.tasknumber_current, self.helper.tasknumber_total)
             maxtask = self.helper.tasknumber_total
             if not self.main_progress or self.main_progress.maxval != maxtask:
                 widgets = [' ', progressbar.Percentage(), ' ', progressbar.Bar()]