* [PATCH 0/3] Minor fixes for progress reporting
@ 2016-07-22 12:18 Paul Eggleton
2016-07-22 12:18 ` [PATCH 1/3] knotty: fix some minor bugs in BBProgress Paul Eggleton
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-07-22 12:18 UTC (permalink / raw)
To: bitbake-devel
Fix/tweak a few things in the progress reporting code.
The following changes since commit 5fa0b3a19e7d0f40790f737abeddf499d53f1f6a:
bitbake: implement idle timeout for xmlrpc server (2016-07-21 07:48:35 +0100)
are available in the git repository at:
git://git.yoctoproject.org/poky-contrib paule/bb-progress-fixes
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=paule/bb-progress-fixes
Paul Eggleton (3):
knotty: fix some minor bugs in BBProgress
knotty: don't display ETA for tasks with progress
lib/bb/progress: avoid possibility of start event being reported twice
lib/bb/progress.py | 5 ++++-
lib/bb/ui/knotty.py | 27 ++++++++++++++-------------
2 files changed, 18 insertions(+), 14 deletions(-)
--
2.5.5
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 1/3] knotty: fix some minor bugs in BBProgress
2016-07-22 12:18 [PATCH 0/3] Minor fixes for progress reporting Paul Eggleton
@ 2016-07-22 12:18 ` Paul Eggleton
2016-07-22 12:18 ` [PATCH 2/3] knotty: don't display ETA for tasks with progress Paul Eggleton
2016-07-22 12:18 ` [PATCH 3/3] lib/bb/progress: avoid possibility of start event being reported twice Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-07-22 12:18 UTC (permalink / raw)
To: bitbake-devel
If you specify custom widgets then we don't want to assume where the
"extra" position is - you should have to specify it, and if it isn't
specified it shouldn't just wipe out the last widget or you can start to
see odd behaviour if you're modifying the code.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
lib/bb/ui/knotty.py | 25 +++++++++++++------------
1 file changed, 13 insertions(+), 12 deletions(-)
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index e8e169f..b92334b 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -40,9 +40,9 @@ logger = logging.getLogger("BitBake")
interactive = sys.stdout.isatty()
class BBProgress(progressbar.ProgressBar):
- def __init__(self, msg, maxval, widgets=None):
+ def __init__(self, msg, maxval, widgets=None, extrapos=-1):
self.msg = msg
- self.extrapos = -1
+ self.extrapos = extrapos
if not widgets:
widgets = [progressbar.Percentage(), ' ', progressbar.Bar(), ' ',
progressbar.ETA()]
@@ -69,15 +69,16 @@ class BBProgress(progressbar.ProgressBar):
self.widgets[0] = msg
def setextra(self, extra):
- if extra:
- extrastr = str(extra)
- if extrastr[0] != ' ':
- extrastr = ' ' + extrastr
- if extrastr[-1] != ' ':
- extrastr += ' '
- else:
- extrastr = ' '
- self.widgets[self.extrapos] = extrastr
+ if self.extrapos > -1:
+ if extra:
+ extrastr = str(extra)
+ if extrastr[0] != ' ':
+ extrastr = ' ' + extrastr
+ if extrastr[-1] != ' ':
+ extrastr += ' '
+ else:
+ extrastr = ' '
+ self.widgets[self.extrapos] = extrastr
def _need_update(self):
# We always want the bar to print when update() is called
@@ -241,7 +242,7 @@ class TerminalFilter(object):
start_time = activetasks[t].get("starttime", None)
if not pbar or pbar.bouncing != (progress < 0):
if progress < 0:
- pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider()])
+ pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2)
pbar.bouncing = True
else:
pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100)
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 2/3] knotty: don't display ETA for tasks with progress
2016-07-22 12:18 [PATCH 0/3] Minor fixes for progress reporting Paul Eggleton
2016-07-22 12:18 ` [PATCH 1/3] knotty: fix some minor bugs in BBProgress Paul Eggleton
@ 2016-07-22 12:18 ` Paul Eggleton
2016-07-22 12:18 ` [PATCH 3/3] lib/bb/progress: avoid possibility of start event being reported twice Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-07-22 12:18 UTC (permalink / raw)
To: bitbake-devel
It turns out that progress information we can extract from a task is
rarely apportioned closely enough to the time taken for the ETA to be
accurate, so showing it is going to be misleading most of the time for
anything but the most basic of examples. Let's just remove it and avoid
misleading (or worse, annoying) the user.
Fixes [YOCTO #9986].
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
lib/bb/ui/knotty.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/bb/ui/knotty.py b/lib/bb/ui/knotty.py
index b92334b..1723a72 100644
--- a/lib/bb/ui/knotty.py
+++ b/lib/bb/ui/knotty.py
@@ -245,7 +245,7 @@ class TerminalFilter(object):
pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.BouncingSlider(), ''], extrapos=2)
pbar.bouncing = True
else:
- pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100)
+ pbar = BBProgress("0: %s (pid %s) " % (activetasks[t]["title"], t), 100, widgets=[progressbar.Percentage(), ' ', progressbar.Bar(), ''], extrapos=4)
pbar.bouncing = False
activetasks[t]["progressbar"] = pbar
tasks.append((pbar, progress, rate, start_time))
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH 3/3] lib/bb/progress: avoid possibility of start event being reported twice
2016-07-22 12:18 [PATCH 0/3] Minor fixes for progress reporting Paul Eggleton
2016-07-22 12:18 ` [PATCH 1/3] knotty: fix some minor bugs in BBProgress Paul Eggleton
2016-07-22 12:18 ` [PATCH 2/3] knotty: don't display ETA for tasks with progress Paul Eggleton
@ 2016-07-22 12:18 ` Paul Eggleton
2 siblings, 0 replies; 4+ messages in thread
From: Paul Eggleton @ 2016-07-22 12:18 UTC (permalink / raw)
To: bitbake-devel
In MultiStageProgressReporter, set a guard when we start the progress
so that it can't happen more than once. This fixes "Initialising
tasks.." being shown twice in succession when running bitbake in
non-interactive terminal mode.
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
---
lib/bb/progress.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/lib/bb/progress.py b/lib/bb/progress.py
index 343b18f..f54d1c7 100644
--- a/lib/bb/progress.py
+++ b/lib/bb/progress.py
@@ -234,10 +234,13 @@ class MultiStageProcessProgressReporter(MultiStageProgressReporter):
"""
def __init__(self, d, processname, stage_weights, debug=False):
self._processname = processname
+ self._started = False
MultiStageProgressReporter.__init__(self, d, stage_weights, debug)
def start(self):
- bb.event.fire(bb.event.ProcessStarted(self._processname, 100), self._data)
+ if not self._started:
+ bb.event.fire(bb.event.ProcessStarted(self._processname, 100), self._data)
+ self._started = True
def _fire_progress(self, taskprogress):
if taskprogress == 0:
--
2.5.5
^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2016-07-22 12:19 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-07-22 12:18 [PATCH 0/3] Minor fixes for progress reporting Paul Eggleton
2016-07-22 12:18 ` [PATCH 1/3] knotty: fix some minor bugs in BBProgress Paul Eggleton
2016-07-22 12:18 ` [PATCH 2/3] knotty: don't display ETA for tasks with progress Paul Eggleton
2016-07-22 12:18 ` [PATCH 3/3] lib/bb/progress: avoid possibility of start event being reported twice Paul Eggleton
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.