GSoC 2019 [Collect build statistics]

Mojca Miklavec mojca at macports.org
Wed Mar 20 01:10:17 UTC 2019


Dear Arjun,

On Tue, 19 Mar 2019 at 13:47, Arjun Salyan
<arjun.salyan.che17 at itbhu.ac.in> wrote:
>
> I have some more improvements to demo app:
>
> Build History is now Dynamic: By Making some minor tweaks to the python script sent by Mojca, I was able to load build history from buildbot into the database.

Awesome!

> I loaded only few recent logs for "10.14_x86_64" & "10.13_x86_64". Since, build history of all ports is not yet on the database, so it would not appear on port-detail page for all ports.

That's understandable / OK.

> To see it working, gmsh would be a fine example: https://frozen-falls-98471.herokuapp.com/ports/gmsh/ . It is not very neat yet, the os filter is 'just working'. But now we have a good starting point to improve upon.

Thanks.

> Link to Github.

This is super useful. But I would probably link directly to the
Portfile rather than the directory. Most ports don't have any patches,
but if they do, one can easily browse one level higher once on the
GitHub website.

I would probably make those link (in particular the homepage link)
open in a new window.

> I am not very sure if the representation of build history is on the right track.

- The entries are not unique as they should be. You seem to have two
entries for the same build (26315) for example.
- Sorting for 10.13 should be in reverse order (newest builds on top)
- I'm more interested in duration than end time. (Not sure if it's
more useful to have start or stop time, but one is sufficient. The
other one would be duration of the build.)
- That "marine blue" hurts my eyes. I only want "build successful" to
be of different colour, no the whole table.

The "All builds" table looks fine (other than having duplicate
entries). I would change your existing page in such a way that you
could apply the OS version filter to that table. You would then
provide options "All", "macOS 10.14", "macOS 10.13".

The missing table (no urgency) would then be more similar to this one:

10.14 10.13
OK    OK

or maybe

10.13 || 10.14
OK [link to 52248] || OK [link to 26315]

or something along those lines.

Some comments about the source code:

- In BuildHistory the port_name should hold a foreign key to the port
id rather than just holding a string with port's name (I guess that's
many-to-one relationship in Django?).
- Status should probably be implemented in a slightly smarter way, so
that perhaps number 0 or "OK" stands for success, other numbers
represent other statuses, making it also easier and more efficient to
count and filter (no need to do this now, but in the real
implementation it needs a change).
- builder_name should probably point to another table (like for
categories, but no need to do it now)
- a useful addition would be information about commit's shasum which
triggered this change (but that might be tricky to extract in a proper
way)
- You point to "port builder"'s build number. It would be useful to
have "port watcher"'s build number and link as well.
- Not needed now, but later it would be nice to have a list of all the
(recent) builds as a separate view.

Mojca


More information about the macports-dev mailing list