Re: [BuildStream] Responsive, but not overly verbose UX - not-in-scheduler
- From: Jonathan Maw <jonathan maw codethink co uk>
- To: buildstream-list gnome org
- Subject: Re: [BuildStream] Responsive, but not overly verbose UX - not-in-scheduler
- Date: Tue, 28 May 2019 18:23:22 +0100
Hi,
I've picked up this task and am looking into ways to solve this problem
(created https://gitlab.com/BuildStream/buildstream/issues/1029, which
has a summary of my understanding of the problem).
I have also created a Merge Request with a very basic implementation of
progress reporting as I envision it at the moment
(https://gitlab.com/BuildStream/buildstream/merge_requests/1358)
I think the implementation will probably diverge from the proposed
implementation described in
https://mail.gnome.org/archives/buildstream-list/2019-April/msg00054.html,
specifically in regards to how it's presented to the user, as there is
currenlty ongoing work to move the UI into a separate process
(https://gitlab.com/BuildStream/buildstream/issues/1036), so my primary
concern at the moment is to create a consistent and useful interface,
with a rough implementation in the existing UI that can be updated to
use the UI in a separate process later.
So far, my task breakdown is:
* Report progress when loading elements (read file to make a
MetaElement)
- This has been accomplished in the MR, but the calculation for the
total number of elements isn't very helpful.
- There are some ways to make this total more useful (create a set of
loaded elements and compare it to a set of elements to be loaded), but
I'm not sure if they're performant enough.
* Report progress when resolving elements (convert MetaElements into
Elements)
- This has been accomplished in the MR.
* Report progress when resolving cached state
- This is where I'll be focussing on next
* Emit status messages when fetching a junction
- This won't be represented with a progress indicator, but fetching
junctions is another case of not-readily-apparent slowdowns when
building.
* Define an API for reporting status messages
- Currently this is defined by a Context.progress_activity() method
and a Context.report_progress() method, though it's very rough and I'd
appreciate feedback.
Once this is in a good mergeable state, my next step will be to define
an API for plugins to report their progress, and implement progress
messages in the git source, since that is another point where we spend a
long time sitting and waiting with no feedback.
Please let me know if you have any suggestions.
Thanks,
Jonathan
--
Jonathan Maw, Software Engineer, Codethink Ltd.
Codethink privacy policy: https://www.codethink.co.uk/privacy.html
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]