Bug 793989: It's been a few days since my last update, but here is the gist. I am still chasing the issue I mentioned before. It doesn't look like I am able to run any controller function that ends up calling g.mq.* (where g is app_globals), because g.mq is returning NoneType. It appears as though buildapi.lib.mq is never actually added to app_globals, or if it is, I cannot seem to find it… How is this setup in the production version of buildapi? For instance, I am assuming that when an 'authorized' user enters a valid revision into a the box at the bottom of https://secure.pub.build.mozilla.org/buildapi/self-serve/try where it says "Create new dep builds on try revision", that it'll successfully kick-off that functionality. In my instance, this simply fails with "AttributeError: 'NoneType' object has no attribute 'newBuildAtRevision'". I have played with pdb a bit to try and unearth something, but it seems to me that there is simply a configuration of some sort missing in my local instance, that is present in the production environment. I am throwing out these questions to coop to see if he has run into this issue before.
Bug 931580: So, in the meantime, I am back to working on bug 931580.
Add-On Idea: Additionally, I threw an idea around to some devs about making an add-on for Firefox that takes your hg-related email (the one you always use to make checkins on hg), and it'll look for, track/log and alert you when a checkin you have made has completed all builds/tests and if it Passed or Failed (Some issue other than all greens). This plugin would make use of the buildapi extension that I already built this summer which returns json to tell whether a checkin has finished all builds/tests and if it has passed them all or failed (again, something other than all greens)… that extension relates to bug 900318
I am still waiting for some answers from catlee pertaining to how to properly construct a buildrequest and what tables to fill in and where.
In the meantime, I have started breaking into bug 931580. I am looking through the schedulerdb and statusdb schemas, as well as some existing models in buildapis, to determine how to query for, build and respond with a json list of all slaves organized by master/build_id given a branch and revision.
Took a good look over catlee's partial patch after applying it to my buildapi instance so I could play with it a bit. I came up with a good list of questions for him and sent them off. I expect to hear back no sooner than Wednesday since he is traveling currently.
It is looking like the patch is designed with the notion that the UI will be a simple form that allows the user to make a POST request detailing the build to (re)trigger and a priority value for that build, etc. The patch looks mostly done, but there is some obvious parts that need completing. So hopefully after catlee answers back this week I can start hammering away at a solution to the missing pieces of this patch!
Until catlee responds to my questions, I am going to start looking into bug 941580 and answering back comments that have been added to bug 900318.
Today is my first day back on the Release Engineering team and it feels great! Now down to da business.
Right off the bat I am handling 2 bugs, and I’ve read into both to get the jist of what is happening. Also compiling some questions.
- Bug 793989 of primary concern
- Self-serve should be able to manually request trigger of any of the standard test suite jobs/additional build jobs that were not run in the original push (not just retriggers or complete sets of dep/PGO/Nightly builds).
- Useful Files
- Bug 931580
- Bug 923213 referes to adding a USD $ amount to each try report to improve the discussion surrounding build inefficiencies. In order to generate some data for this, we need to have buildapi be capable of returning a list of buildslaves after a job is complete.
Next, I am getting my local buildapi instance running again. I have made some changes to my environment and I suspect it’s behind some wierdness that now exists within the virtualenv for buildapi, so I reran pip install -r requirements.txt to reinstall all of the proper dependancies. Then I danced around with some errors, and am saving it for tomorrow, but it seems to be almost ready to go.