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
