Thanks for the comments.

On 18 July 2016 at 14:49, Barros Pena, Belen <[email protected]>
wrote:

> On 15/07/2016 12:51, "[email protected] on behalf of Smith,
> Elliot" <[email protected] on behalf of
> [email protected]> wrote:
>
> >Because this contains a new JS file (jsrender) which has lines too long
> >for
> >git send-email, I'm sending it as a pull request.
> >
> >The branch containing the work described below is:
> >
> >  poky-contrib, elliot/toaster/9631-recent_builds_states
>
> Hi Elliot,
>
> I've had a look at this branch and have a few comments / questions:
>
> Regarding the build progress feedback:
>
> * One question: does the build say "parsing" while "cloning" is taking
> place? I can't be sure, but builds with new layers that need to be cloned
> say parsing at 0% for a very long time. Hence the question
>

Yes, that is probably the case. I have no way of knowing atm when the
cloning starts or is done. I raised a bug to add that:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=9916

I could hold off showing parsing until the first ParseProgress event if
that would be better. You'd be swapping "Parsing" for "Queued" while
waiting for the clone.


>
> * I am seeing some projects where the information in the latest builds
> section never moves from "loading". Here is a screenshot:
> http://imgur.com/2GOHBHx


Probably when the build crashes and we don't catch it, as reported in
https://bugzilla.yoctoproject.org/show_bug.cgi?id=9951

I don't think I introduced the "hanging" behaviour, as you will see the
same problem in Toaster on master when a build crashes.

This needs some work to figure out how to capture the failures we're
missing atm.


> * Maybe we can replace the "target unknown" that we show at the beginning
> for cli builds with something more hopeful like: "Fetching recipe name". I
> don't think we use the word 'target' to refer to build targets anywhere
> else.
>

I'll do that.


>
> Regarding the build dashboard changes
>
> * Warnings in the latest builds section look like errors: they have the
> wrong colour and icon
>

I messed that up.


>
> * For builds that fail early, warnings are reported (you see the number),
> but the content of the warnings is not displayed. For example:
> http://imgur.com/14eiK4S


I'll look into that. Probably got the logic wrong for deciding what to show
when.


>
>
> * Finally, it looks like builds with task failures no longer display the
> build summary information. Here is an example: http://imgur.com/m0OBKx5
>
>
Ditto.

Cheers.
Elliot


> Thanks!
>
> Belén
>
>
> >
> >OVERVIEW
> >
> >This is a rewrite of the "most recent builds" area.
> >
> >The most recent builds area (on the all builds and project builds pages)
> >now
> >shows state for a build as follows:
> >
> >* Queued (not shown for cli builds): build request created but not
> >actioned
> >* Parsing recipes: shown as progress bar, using ParseProgress events to
> >drive it
> >* Tasks starting: shown while bitbake is constructing the runqueue and
> >before
> >any tasks have been completed
> >* Task progress: as tasks are being completed, shown as progress bar
> >* Completed or failed state
> >
> >If a build is cancelled, you will see:
> >
> >* Cancelling state, while waiting for bitbake to exit (note that this is
> >also
> >persistent across state reloads, and not just temporarily visible after
> >the
> >cancel button is clicked)
> >
> >* Cancelled state
> >
> >In addition, because this area also impacts and overlaps with fixes for
> >other bugs in the build dashboard which I had hanging around, the
> >following
> >pieces are also on this branch:
> >
> >* Addition of a BuildInit event to capture failed builds (with bad
> >targets)
> >earlier. This was required as we need to make a Build object earlier, so
> >that
> >we have something to attach recipe parse progress to.
> >
> >* Changes to buildinfohelper so that the Build can be created on
> >ParseStarted,
> >but later embellished as BuildInit and BuildStarted trigger.
> >
> >* Hiding the left-hand menu and build summary area for builds which fail
> >before
> >the BuildStarted event occurs. This entailed adding a started() method to
> >Build so that we can tell when BuildStarted has occurred.
> >
> >* Remove build time links for builds which have no time data (because they
> >failed early).
> >
> >IMPLEMENTATION NOTES
> >
> >I added a BuildInit event to cooker, which I have tried to do
> >(unsuccessfully)
> >in previous patches. However, I have amended where this event is fired so
> >that
> >tasks have been sanitised before they are sent with the event.
> >
> >I added a new get_state() method to the Build model. This puts the logic
> >for
> >determining the state of a build in the business logic, instead of partly
> >in
> >the front end and partly in the UI code.
> >
> >I also added a /mostrecentbuilds JSON API which the most recent builds
> >area
> >uses to fetch the build data. This provides a clean separation between
> >server
> >and client, meaning that the server doesn't have to generate much HTML.
> >
> >Finally, I moved a lot of templating code to the client so that we don't
> >have
> >such an unwieldy mix of client-side and server-side templating. The
> >templating library I used is jsrender (http://www.jsviews.com/), as this
> >integrates simply with jQuery. This makes it much easier to add new state
> >transitions to that area of the page (such as the git checkout progress
> >we want
> >to add later).
> >
> >RELATED BUGS
> >
> >https://bugzilla.yoctoproject.org/show_bug.cgi?id=9631 (add state
> >transitions
> >to most recent builds area)
> >
> >https://bugzilla.yoctoproject.org/show_bug.cgi?id=8443 (custom dashboard
> >for
> >builds which fail at the build request stage)
> >
> >https://bugzilla.yoctoproject.org/show_bug.cgi?id=8440 (better display of
> >builds
> >which fail at the build request stage)
> >
> >CHANGES
> >
> >(I've kept a record of the commits in this pull request for reference, but
> >"toaster: move most recent builds templating to client" can't be handled
> >by git send-email.)
> >
> >The following changes since commit
> >2a127b1a6cd3df47879bda5e0d7bb123484013cb:
> >
> >  toaster-tests: add class SeleniumTestCaseBase for browser tests
> >(2016-07-15 11:29:29 +0100)
> >
> >are available in the git repository at:
> >
> >  git://git.yoctoproject.org/poky-contrib
> ><http://git.yoctoproject.org/poky-contrib>
> >elliot/toaster/9631-recent_builds_states
> >
> >
> http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=elliot/toaster/96
> >31-recent_builds_states
> >
> >Elliot Smith (12):
> >  cooker: add BuildInit event
> >  toaster: move most recent builds templating to client
> >  toaster: show progress of recipe parsing in recent builds area
> >  toaster: show "Tasks starting..." until the first task completes
> >  toaster: tweak styling and typos in recent builds area
> >  toaster: remove links from time field on failed builds
> >  toaster: add started property to Build
> >  toaster: adjust build dashboard for failed builds
> >  toaster-tests: add tests for build time links in the all builds page
> >  toaster-tests: add tests for build dashboard menu and summary
> >    visibility
> >  toaster-tests: add tests for most recent builds state changes
> >  toaster-tests: fix erroneous message when test fails
> >
> > bitbake/lib/bb/cooker.py                           |   4 +
> > bitbake/lib/bb/event.py                            |   6 +-
> > bitbake/lib/bb/ui/buildinfohelper.py               | 118 ++++---
> > bitbake/lib/bb/ui/toasterui.py                     |  31 +-
> > .../migrations/0005_reorder_buildrequest_states.py |  19 ++
> > bitbake/lib/toaster/bldcontrol/models.py           |  12 +-
> > .../0010_recipe_parse_progress_fields.py           |  24 ++
> > .../orm/migrations/0011_allow_empty_buildname.py   |  19 ++
> > bitbake/lib/toaster/orm/models.py                  |  87 ++++-
> > .../toaster/tests/browser/test_all_builds_page.py  |  93 +++++-
> > .../tests/browser/test_builddashboard_page.py      |  44 ++-
> > .../browser/test_builddashboard_page_artifacts.py  |   7 +-
> > .../tests/browser/test_layerdetails_page.py        |   8 +-
> > .../browser/test_most_recent_builds_states.py      | 211 ++++++++++++
> > bitbake/lib/toaster/toastergui/api.py              | 115 ++++++-
> > .../lib/toaster/toastergui/static/css/default.css  |   1 +
> > .../toaster/toastergui/static/js/jsrender.min.js   |   4 +
> > .../lib/toaster/toastergui/static/js/libtoaster.js |  16 +
> > .../lib/toaster/toastergui/static/js/mrbsection.js | 180 ++++++----
> > bitbake/lib/toaster/toastergui/tables.py           |   8 +-
> > bitbake/lib/toaster/toastergui/templates/base.html |   5 +
> > .../toastergui/templates/basebuildpage.html        | 174 +++++-----
> > .../toastergui/templates/builddashboard.html       | 188 ++++++-----
> > .../toastergui/templates/buildrequestdetails.html  |  64 ----
> > .../toaster/toastergui/templates/mrb_section.html  | 371
> >+++++++++++++--------
> > .../templates/projectbuilds-toastertable.html      |   2 +-
> > .../toaster/toastergui/templatetags/projecttags.py |   8 -
> > bitbake/lib/toaster/toastergui/urls.py             |   3 +
> > 28 files changed, 1277 insertions(+), 545 deletions(-)
> > create mode 100644
> >bitbake/lib/toaster/bldcontrol/migrations/0005_reorder_buildrequest_states
> >.py
> > create mode 100644
> >bitbake/lib/toaster/orm/migrations/0010_recipe_parse_progress_fields.py
> > create mode 100644
> >bitbake/lib/toaster/orm/migrations/0011_allow_empty_buildname.py
> > create mode 100644
> >bitbake/lib/toaster/tests/browser/test_most_recent_builds_states.py
> > create mode 100644
> >bitbake/lib/toaster/toastergui/static/js/jsrender.min.js
> > delete mode 100644
> >bitbake/lib/toaster/toastergui/templates/buildrequestdetails.html
> >
> >
> >--
> >Elliot Smith
> >Software Engineer
> >Intel Open Source Technology Centre
> >
> >
> >
>
>


-- 
Elliot Smith
Software Engineer
Intel Open Source Technology Centre
-- 
_______________________________________________
toaster mailing list
[email protected]
https://lists.yoctoproject.org/listinfo/toaster

Reply via email to