[Buildbot-devel] Google Summer of Code proposal for Javascript Frontend

Tom Prince tom.prince at ualberta.net
Fri Mar 30 17:48:38 UTC 2012

On Wed, 28 Mar 2012 23:31:01 +0530, Naveen Kumar <naveen.iitm90 at gmail.com> wrote:
> Rationale: Currently buildbot web pages are rendered synchronously
> with jinja2 templates, some of the data(build details) in these pages
> is fetched from pickled objects. This process is slow and blocks whole
> buildmaster while rendering the pages. With json api data is sent
> synchronously but the time required to extract data and amount of data
> is less. So it will be faster than regular webpages.

Well, so the issue is less speed of rendering, and more of load on the
server, since there are potentially *lots* of clients. Another facet of
this, is that the current status api is synchronous (which is a
side-effect of the data being in pickles, but that is beside the point),
but that is going away, and so the web ui needs to be rewritten *anyway*
to handle that.

> 1. Javasciprt frameworks:
> Possible options:
>         1. jQuery
>         2. Dojo
>         3. YUI
> Personally I am in favor of jQuery. It is widely used and have very
> good documentation.
> And I have some experience with jQuery. Besides, I don’t think we will
> use it very extensively to prefer something else over jQuery for some
> remote features. I think all we need is a framework which is can make
> ajax calls, json data retrieval and some nice dynamic UI funcatlity.
> As per wikipedia Dojo has some advantages over jQuery. I don’t know if
> we are going to need those features but we need to discuss pros and
> cons of each of these frameworks and decide which one to use. If we
> decide against jQuery I am open to learn other frameworks.

I don't have any experience writting for the web, so take the following
with a large grain of salt. jQuery seems to be useful for manipulating
the dom, and so adding behavior to webpages, but it doesn't seem to have
any tools to make building complex pages from dynamic data. I'm sure
there are plugins that do this, but then it really comes down to a
choice of plugins, rather than a choice of jQuery.

One thing to keep in mind when selecting a framework, is how to write
test of the UI using the framework. This isn't at all a recomendation
but angular [1] looks like a framework that is desgined with testing in
mind explictly.

[1] http://angularjs.org/

> 2. User interface design:
> This is the best time to implement a better looking design. I am not
> very good with web design. I am going to need help with that part. My
> idea of implementation is, first implement a general template which
> will be used in all the pages then implement rest of the features on
> it.

Well, there are two parts to the design.
1) Making it useable
2) Making it look nice.
1 is probably much more important than 2. You can probably get
reasonable results by looking at the current UI, how various projects
have extended the current UI, and by asking people what deficencies they
find in the current UI.

> Schedule:
> Google Summer of Code program is spanned over 12 weeks(excluding
> community bonding period).
> 2 weeks: familizing with code, deciding upon things(javascript
> framework, features to implement).

Some of this is probably appropriate for the community bonding period.

> 5 -6 weeks: implement existing features i.e. builders, buildslaves,
> build details, waterfall. As directed in other thread of devel list
> tests also will be written along with the code.
> 2-3 weeks: Survey for extra features and implement them.

It isn't clear how these two steps differ. In any case, I'd like to see
some more thought put into this part of schedule. This is really the
entire project and your schedule is
1) Implement features
2) Implement some more features
Any schedule at this point is going to involve estimates, but it would
be nice to see a preliminary break down.

> 2 weeks: Wrap up. Merge missing code(if any).


More information about the devel mailing list