<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Ben Hearsum (Posts about releng)</title><link>https://hearsum.ca/</link><description></description><atom:link href="https://hearsum.ca/categories/releng.xml" rel="self" type="application/rss+xml"></atom:link><language>en</language><copyright>Contents © 2025 &lt;a href="mailto:ben@hearsum.ca"&gt;Ben Hearsum&lt;/a&gt; </copyright><lastBuildDate>Mon, 03 Feb 2025 16:32:01 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Balrog in 2016 &amp; 2017</title><link>https://hearsum.ca/posts/balrog-in-2016-2017/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;This past year has been a big and exciting one for Balrog. We made the &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1234546"&gt;transition to Docker&lt;/a&gt;, migrated to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1248741"&gt;new infrastructure&lt;/a&gt;, participated in &lt;a href="https://summerofcode.withgoogle.com/archive/2016/projects/5120863737217024/"&gt;Google's Summer of Code&lt;/a&gt; for the first time, bootstrapped &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1213348"&gt;System Addon updates&lt;/a&gt;, and &lt;a href="https://bugzilla.mozilla.org/buglist.cgi?list_id=13363813&amp;amp;chfield=resolution&amp;amp;chfieldfrom=2016-01-01&amp;amp;resolution=FIXED&amp;amp;chfieldto=Now&amp;amp;query_format=advanced&amp;amp;component=Balrog%3A%20Backend&amp;amp;component=Balrog%3A%20Frontend"&gt;much, much more&lt;/a&gt;. In total, 129 tickets were closed, with a &lt;a href="https://bugzilla.mozilla.org/buglist.cgi?emailtype3=notequals&amp;amp;emailtype2=notequals&amp;amp;list_id=13363825&amp;amp;emailtype1=notsubstring&amp;amp;emailassigned_to1=1&amp;amp;chfield=resolution&amp;amp;chfieldfrom=2016-01-01&amp;amp;email2=nobody%40mozilla.org&amp;amp;email1=%40mozilla.com&amp;amp;email3=bwong%40mozilla.com&amp;amp;emailassigned_to3=1&amp;amp;resolution=FIXED&amp;amp;chfieldto=Now&amp;amp;query_format=advanced&amp;amp;emailassigned_to2=1&amp;amp;component=Balrog%3A%20Backend&amp;amp;component=Balrog%3A%20Frontend"&gt;significant portion of those&lt;/a&gt; being done by volunteers. I'd like to highlight a few things in particular.&lt;/p&gt;
&lt;h3&gt;Toolchain Improvements&lt;/h3&gt;
&lt;p&gt;Early on in the year I spent a good deal of time &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1232436"&gt;modernizing Balrog's toolchain&lt;/a&gt;. I upgraded most of the Python packages, switched to Tox, added Taskcluster for CI, and started &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1234546"&gt;using Docker&lt;/a&gt; for local development and testing. All of these things combined made it dead-simple to run Balrog on your laptop. This helps with reproducing bugs and testing new work, but the most important aspect ended up being how easy it made it for new developers to get to work. Without this change I wouldn't have felt comfortable proposing Balrog work for Summer of Code, and I highly doubt we would've had many (if any) volunteers working on it.&lt;/p&gt;
&lt;p&gt;Looking back on this, I'm now firmly of the belief that if you have some extra time, spending it on things that reduce developer friction is one of the best things you can do. For new projects, make sure you build in time for this at the start.&lt;/p&gt;
&lt;h3&gt;Volunteers are Awesome&lt;/h3&gt;
&lt;p&gt;Speaking of volunteers, we've got some awesome ones, and that's pretty much a first for Release Engineering. We've always had a tough time opening up our work to volunteers, primarily because our systems are often difficult to hack on locally. All the work I just talked about to reduce developer friction made this a non-issue for Balrog, and opened the door to start advertising good first bugs, and applying for Summer of Code. I was so amazed and impressed with how many people came knocking when it was made much easier to get started.&lt;/p&gt;
&lt;p&gt;But as I look back, I've also realized that there's another part to it: spending the time. When I submitted a Summer of Code proposal, I knew I would have to spend some time mentoring, and it helped put me in the right mindset when volunteers started coming along. While some will just send a PR with a great patch out of the blue, others need a bit more guidance to get started. This doesn't mean that the latter group are less skilled or less valuable, so you shouldn't ignore them. In fact, one of the most active contributors to Balrog is someone that started out in this group. If you can find the time to help these people learn and grow, it can pay dividends down the road.&lt;/p&gt;
&lt;p&gt;I want to send out a special thanks to a few of our volunteers in particular. &lt;a href="https://mozillians.org/en-US/u/varunjoshi/"&gt;Varun Joshi&lt;/a&gt;, our Summer of Code student, who improved the efficiency of our &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1223872"&gt;l10n update submissions&lt;/a&gt;, and did much of the initial work on System Addons. &lt;a href="https://github.com/njirap"&gt;Njira Perci&lt;/a&gt;, who has done &lt;a href="https://github.com/mozilla/balrog/commits/master/ui"&gt;the vast majority of the UI work&lt;/a&gt; in the past year (I'm pretty sure she's our resident expert on it now!). And &lt;a href="https://github.com/NinadBhat"&gt;Ninad Bhat&lt;/a&gt;, who did all of the &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1281347"&gt;other work on System Addons&lt;/a&gt;, and is now helping out a lot with Multiple Signoff. Without you three I don't know what we would've done!&lt;/p&gt;
&lt;h3&gt;Transition to Cloud Operations&lt;/h3&gt;
&lt;p&gt;Early in the year we made the decision to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1248741"&gt;move the production infrastructure&lt;/a&gt; of Balrog to CloudOps' platform. While there was a lot of small details to figure out, this went extremely well, and I want to thank the Web Operations, Database Operations, and Cloud Operations teams for making it so smooth. Because it's AWS and Docker based, we now have much more control over the production stack, and are able to scale much more easily as we add more load to Balrog.&lt;/p&gt;
&lt;h3&gt;System Addon Updates&lt;/h3&gt;
&lt;p&gt;One of the things I'm most proud of this year is how quickly we were able to spin up updates for System Addons. In the past this may have been a huge headache, but because of Balrog's flexible design we were able to get them working quite quickly, and make some improvements later. Ninad in particular spent considerable time making improvements to that process.&lt;/p&gt;
&lt;h3&gt;Multifile Updates&lt;/h3&gt;
&lt;p&gt;Since we began shipping them, Balrog has served updates to Gecko Media Plugins. And since we added a second one, they've been a huge headache for us to manage. After Varun &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1245941"&gt;implemented multifile updates&lt;/a&gt;, shipping new versions of these plugins became trivial.&lt;/p&gt;
&lt;h3&gt;Scheduled Changes&lt;/h3&gt;
&lt;p&gt;Code-wise, this was my biggest accomplishment of the year. The Scheduled Changes work &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1246675"&gt;allows us queue changes&lt;/a&gt; to be enacted at a later time, and once we have lower latency ADI information, release uptake. Once the latter is available, we'll be able to do much better throttled rollouts rather than the guesswork we currently do. This system has also become the basis for the Multiple Signoff work we started in Q4.&lt;/p&gt;
&lt;h2&gt;2017&lt;/h2&gt;
&lt;p&gt;This past year has been a great one for Balrog, but I expect 2017 to be even better. Here's some of the things we're looking at for 2017:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Finishing up the work on &lt;a href="http://hearsum.ca/blog/rings-of-power-multiple-signoff-in-balrog.html"&gt;Multiple Signoffs&lt;/a&gt;, which will make Balrog much more resilient to bad actors or credential theft.&lt;/li&gt;
&lt;li&gt;Digging into unifying update requests that Firefox makes. Laura talked a lot about this at Mozloha, and I think we can greatly improve uptake of a lot of different things that Firefox queries for.&lt;/li&gt;
&lt;li&gt;Authentication improvements. I'd like to look into switching to Okta or another service that allows for MFA.&lt;/li&gt;
&lt;li&gt;Getting more involved with Cloud Operations QA, who want to help us with better load and contract testing in our deployment pieline.&lt;/li&gt;
&lt;li&gt;Various improvements to the Rules:&lt;ul&gt;
&lt;li&gt;Supporting new business requirements like CPU/GPU filtering and &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1312499"&gt;multiple matching&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Allowing for Rules to be treated as sets, to make it safer when adjusting intertwined Rules.&lt;/li&gt;
&lt;li&gt;Improvements to the UI to give better &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1241766"&gt;insight into the effects of a change&lt;/a&gt; to a Rule.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Investigating some architectural changes such as upgrading to Python 3 or &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1313742"&gt;adding a service layer&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Here's to another great year of Balrog development!
&lt;img alt="Happy Firefox and Balrog ^.^" src="https://hearsum.ca/blog/balrog-firefox.jpg"&gt;
&lt;br&gt;&lt;sub&gt;(Photo credit: &lt;a href="https://github.com/daoberes"&gt;Donna Oberes&lt;/a&gt;)&lt;/sub&gt;&lt;/p&gt;</description><category>balrog</category><category>planet-mozilla</category><category>releng</category><guid>https://hearsum.ca/posts/balrog-in-2016-2017/</guid><pubDate>Fri, 23 Dec 2016 17:57:55 GMT</pubDate></item><item><title>Building and Pushing Docker Images with Taskcluster-Github</title><link>https://hearsum.ca/posts/building-and-pushing-docker-images-with-taskcluster-github/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;Earlier this year I spent some time modernizing and improving Balrog's toolchain. One of my goals in doing so was to switch from Travis CI to &lt;a href="https://docs.taskcluster.net/"&gt;Taskcluster&lt;/a&gt; both to give us more flexibility in our CI configuration, as well as help dogfood &lt;a href="https://docs.taskcluster.net/manual/vcs/github"&gt;Taskcluster-Github&lt;/a&gt;. One of the most challenging aspects of this was how to build and push our Docker image, and I'm hoping this post will make it easier for other folks who want to do the same in the future.&lt;/p&gt;
&lt;h2&gt;The Task Definition&lt;/h2&gt;
&lt;p&gt;Let's start by breaking down &lt;a href="https://github.com/mozilla/balrog/blob/b0404ab22649c650def7e4c9c90ce2576e28d8a9/.taskcluster.yml#L31"&gt;Task definition&lt;/a&gt; from &lt;a href="https://github.com/mozilla/balrog/blob/b0404ab22649c650def7e4c9c90ce2576e28d8a9/.taskcluster.yml"&gt;Balrog's .taskcluster.yml&lt;/a&gt;. Like other Taskcluster-Github jobs, we use the standard &lt;em&gt;taskcluster.docker&lt;/em&gt; provisioner and worker.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;  - provisionerId: "{{ taskcluster.docker.provisionerId }}"
    workerType: "{{ taskcluster.docker.workerType }}"
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Next, we have something a little different. This section grants the Task access to a secret (managed by the &lt;a href="https://docs.taskcluster.net/reference/core/secrets"&gt;Secrets Service&lt;/a&gt;). More on this later.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;    scopes:
      - secrets:get:repo:github.com/mozilla/balrog:dockerhub
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The &lt;em&gt;payload&lt;/em&gt; has a few things of note. Because we're going to be building Docker images it makes sense to use Taskcluster's image_builder Docker image as well as enabling the docker-in-docker feature. The taskclusterProxy feature is needed to access the Secrets Service.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;    payload:
      maxRunTime: 3600
      image: "taskcluster/image_builder:0.1.3"
      features:
        dind: true
        taskclusterProxy: true
      command:
        - "/bin/bash"
        - "-c"
        - "git clone $GITHUB_HEAD_REPO_URL &amp;amp;&amp;amp; cd balrog &amp;amp;&amp;amp; git checkout $GITHUB_HEAD_BRANCH &amp;amp;&amp;amp; scripts/push-dockerimage.sh"
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;The &lt;em&gt;extra&lt;/em&gt; section has some metadata for Taskcluster-Github. Unlike CI tasks, we limit this to only running on pushes (not pull requests) to the master branch of the repository. Because only a few people can push to this branch, it means that only these can trigger Docker builds.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;    extra:
      github:
        env: true
        events:
          - push
        branches:
          - master
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Finally, we have the metadata, which is just standard Taskcluster stuff.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;    metadata:
      name: Balrog Docker Image Creation
      description: Balrog Docker Image Creation
      owner: "{{ event.head.user.email }}"
      source: "{{ event.head.repo.url }}"
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;Secrets&lt;/h2&gt;
&lt;p&gt;I mentioned the "Secrets Service" earlier, and it's the key piece that enables us to &lt;strong&gt;securely&lt;/strong&gt; push Docker images. Putting our Dockerhub password in it means access is limited to those who have the right scopes. We store it in a secret with the key "repo:github.com/mozilla/balrog:dockerhub", which means that anything with the "secrets:get:repo:github.com/mozilla/balrog:dockerhub" scope is granted access to it. My own personal Taskcluster account has it, which lets me set or change the password:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://hearsum.ca/blog/dockerhub-secret.png" title="Screenshot of Taskcluster Secrets Manager"&gt;&lt;/p&gt;
&lt;p&gt;We also have a Role called "repo:github.com/mozilla/balrog:branch:master" which has that scope:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://hearsum.ca/blog/balrog-role.png" title="Screenshot of Taskcluster Role Manager"&gt;&lt;/p&gt;
&lt;p&gt;You can see from its name that this Role is associated with the Balrog repository's master branch. Because of this, any Tasks created for as a result of pushes to that branch in that repository and branch may assign the scopes that Role has - like we did above in the "scopes" section of the Task.&lt;/p&gt;
&lt;h2&gt;Building and Pushing&lt;/h2&gt;
&lt;p&gt;The last piece of the puzzle here is &lt;a href="https://github.com/mozilla/balrog/blob/b0404ab22649c650def7e4c9c90ce2576e28d8a9/scripts/push-dockerimage.sh"&gt;the actual script that does the building and pushing&lt;/a&gt;. Let's look at a few specific parts of it.&lt;/p&gt;
&lt;p&gt;To start with, we deal with retrieving the Dockerhub password from the Secrets Service. Because we enabled the &lt;em&gt;taskclusterProxy&lt;/em&gt; earlier, "taskcluster" resolves to the hosted Taskcluster services. Had we forgotten to grant the Task the necessary scope, this would return a 403 error.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;password_url="taskcluster/secrets/v1/secret/repo:github.com/mozilla/balrog:dockerhub"
dockerhub_password=$(curl ${password_url} | python -c 'import json, sys; a = json.load(sys.stdin); print a["secret"]["dockerhub_password"]')
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;We build, tag, and push the image, which is very similar to building it locally. If we'd forgotten to enable the &lt;em&gt;dind&lt;/em&gt; feature, this would throw errors about not being able to run Docker.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;docker build -t mozilla/balrog:${branch_tag} .
docker tag mozilla/balrog:${branch_tag} "mozilla/balrog:${date_tag}"
docker login -e $dockerhub_email -u $dockerhub_username -p $dockerhub_password
docker push mozilla/balrog:${branch_tag}
docker push mozilla/balrog:${date_tag}
&lt;/pre&gt;&lt;/div&gt;

&lt;p&gt;Finally, we attach an artifact to our Task containing the sha256 of the Docker images. This allows consumers of the Docker image to verify that they're getting exactly what we built, and not something that may have been tampered on Dockerhub or in transit.&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code literal-block"&gt;sha256=$(docker images --no-trunc mozilla/balrog | grep "${date_tag}" | awk '/^mozilla/ {print $3}')
put_url=$(curl --retry 5 --retry-delay 5 --data "{\"storageType\": \"s3\", \"contentType\": \"text/plain\", \"expires\": \"${artifact_expiry}\"}" ${artifact_url} | python -c 'import json; import sys; print json.load(sys.stdin)["putUrl"]')
curl --retry 5 --retry-delay 5 -X PUT -H "Content-Type: text/plain" --data "${sha256}" "${put_url}"
&lt;/pre&gt;&lt;/div&gt;

&lt;h2&gt;The Result&lt;/h2&gt;
&lt;p&gt;Now that you've seen how it's put together, let's have a look at the end result. &lt;a href="https://tools.taskcluster.net/task-graph-inspector/#CLnMzzpSQ3Wysl9EpkG0rQ/MYD_j8yKTgy7lZFYkt6Bzg/"&gt;This is the most recent Balrog Docker build Task&lt;/a&gt;. You can see the sha256 artifact created on it:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://hearsum.ca/blog/balrog-dockerbuild.png"&gt;&lt;/p&gt;
&lt;p&gt;And of course, the newly built image has shown up &lt;a href="https://hub.docker.com/r/mozilla/balrog/tags/"&gt;on the Balrog Dockerhub repo&lt;/a&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img alt="" src="http://hearsum.ca/blog/balrog-dockerhub.png"&gt;&lt;/p&gt;</description><category>aus</category><category>balrog</category><category>planet-mozilla</category><category>releng</category><category>taskcluster</category><guid>https://hearsum.ca/posts/building-and-pushing-docker-images-with-taskcluster-github/</guid><pubDate>Thu, 30 Jun 2016 19:29:00 GMT</pubDate></item><item><title>A Flurry of Balrog Activity</title><link>https://hearsum.ca/posts/a-flurry-of-balrog-activity/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;This past quarter I spent some time &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1232436"&gt;modernizing Balrog's toolchain&lt;/a&gt; to make it more approachable. We've switched from Vagrant to Docker, cleaned up setup.py, started using tox, and updated the sample data included in the repo. At the same time, I started &lt;a href="https://wiki.mozilla.org/Balrog#Getting_Involved"&gt;identifying some good first bugs&lt;/a&gt;, and put together a &lt;a href="https://wiki.mozilla.org/Community:SummerOfCode16#Release_Engineering"&gt;proposal for a Summer of Code project&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;I feel very lucky that this work has paid off so quickly. There's been great interest in the Summer of Code project, and we've had 5 new volunteers submit patches to Balrog. These people are doing really great work, and I'd like to highlight their contributions today (in no particular order).&lt;/p&gt;
&lt;h3&gt;Njira Perci&lt;/h3&gt;
&lt;p&gt;Njira has focused on UI improvements, and has already improved the &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1150538"&gt;confirmation dialog for deleting Rules&lt;/a&gt; and added the ability to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1257293"&gt;autocomplete Products and Channels&lt;/a&gt; in form fields. She continues to hack away and is now working on improving the Releases UI to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1113689"&gt;highlight whether or not a release is active&lt;/a&gt; in any way.&lt;/p&gt;
&lt;h3&gt;Ashish Sareen&lt;/h3&gt;
&lt;p&gt;Ashish fixed a bug where the Admin server would hit an &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1134190"&gt;ISE 500 under certain conditions&lt;/a&gt;. With his patch, it now correctly returns a 400 error to the client.&lt;/p&gt;
&lt;h3&gt;Varun Joshi&lt;/h3&gt;
&lt;p&gt;Varun has been diving deep into the Admin server. He started off by fixing a small bug where some &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1113111"&gt;weirdly formed Releases caused ISE 500s&lt;/a&gt;, and has since provided a patch that gives us the ability to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1127875"&gt;mark Releases as "read only"&lt;/a&gt;. This is something we intend to make use of in our new Release Promotion system to guard accidental (or malicious...) changes to Release metadata.&lt;/p&gt;
&lt;h3&gt;Aybüke Özdemir&lt;/h3&gt;
&lt;p&gt;Aybüke enhanced the UI to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1146496"&gt;show rule_ids&lt;/a&gt;, which makes it esaier for humans to find them when they need to put them into a script or automation.&lt;/p&gt;
&lt;h3&gt;Kumar Rishabh&lt;/h3&gt;
&lt;p&gt;Kumar fixed a very annoying bug where diffs of different versions of Releases would be &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1140262"&gt;generated against the wrong base version&lt;/a&gt;, making them essentially useless.&lt;/p&gt;
&lt;h3&gt;You?&lt;/h3&gt;
&lt;p&gt;If &lt;em&gt;you&lt;/em&gt; would like to get involved in the development of Balrog, we'd love to have you. The wiki page &lt;a href="https://wiki.mozilla.org/Balrog#Hacking"&gt;can get you bootstrapped&lt;/a&gt;, and you can find us all on &lt;a href="irc://irc.mozilla.org/#balrog"&gt;irc.mozilla.org in #balrog&lt;/a&gt;.&lt;/p&gt;</description><category>aus</category><category>balrog</category><category>planet-mozilla</category><category>releng</category><guid>https://hearsum.ca/posts/a-flurry-of-balrog-activity/</guid><pubDate>Thu, 24 Mar 2016 16:13:40 GMT</pubDate></item><item><title>Configuring uWSGI to host an app and static files</title><link>https://hearsum.ca/posts/configuring-uwsgi-to-host-an-app-and-static-files/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;This week I started using &lt;a href="http://uwsgi-docs.readthedocs.org/en/latest/"&gt;uWSGI&lt;/a&gt; for the first time. I'm in the process of switching &lt;a href="http://wiki.mozilla.org/Balrog"&gt;Balrog&lt;/a&gt; from Vagrant to Docker, and I'm moving away from Apache in the process. Because of &lt;a href="https://github.com/mozilla/balrog/blob/f58d3d6803bf0f91092d8d88d83033fe18b3644d/puppet/files/etc/httpd/conf.d/balrog.conf#L27"&gt;Balrog's somewhat complicated Apache config&lt;/a&gt; this ended up being more difficult than I thought. Although uWSGI's docs are OK, I found it a little difficult to put them into practice without examples, so here's hoping this post will help others in similar situations.&lt;/p&gt;

&lt;p&gt;Balrog's Admin app consists of a pretty standard &lt;a href="https://github.com/mozilla/balrog/tree/master/auslib/admin"&gt;Python WSGI app&lt;/a&gt;, and a &lt;a href="https://github.com/mozilla/balrog-ui"&gt;static Angular app&lt;/a&gt; hosted on the same domain. To complicate matters, the version of Angular that we use does not support being hosted anywhere except the root of the domain. It took a bit of futzing, but we came up with an Apache config to host both of these pieces on the same domain pretty quickly:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;VirtualHost *:80&amp;gt;
    ServerName balrog-admin.mozilla.dev
    DocumentRoot /home/vagrant/project/ui/dist/

    # Rewrite virtual paths in the angular app to the index page
    # so that refreshes/linking works, while leaving real files
    # such as the js/css alone.
    &amp;lt;Directory /home/vagrant/project/ui/dist&amp;gt;
        RewriteEngine On
        RewriteCond %{REQUEST_FILENAME} -f [OR]
        RewriteCond %{REQUEST_FILENAME} -d

        RewriteRule ^ - [L]
        RewriteRule ^ index.html [L]
    &amp;lt;/Directory&amp;gt;

    # The WSGI app is rooted at /api
    WSGIScriptAlias /api /home/vagrant/project/admin.wsgi
    WSGIDaemonProcess aus4-admin processes=1 threads=1 maximum-requests=50 display-name=aus4-admin
    WSGIProcessGroup aus4-admin
    WSGIPassAuthorization On

    # The WSGI app relies on the web server to do the authentication, and will
    # bail if REMOTE_USER isn't set. To simplify things, we just set this
    # variable instead of prompting for auth.
    SetEnv REMOTE_USER balrogadmin

    LogLevel Debug
    ErrorLog "|/usr/sbin/rotatelogs /var/log/httpd/balrog-admin.mozilla.dev/error_log_%Y-%m-%d 86400 -0"
    CustomLog "|/usr/sbin/rotatelogs /var/log/httpd/balrog-admin.mozilla.dev/access_%Y-%m-%d 86400 -0" combined
&amp;lt;/VirtualHost&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Translating this to uWSGI took way longer than expected. Among the problems I ran into were:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Using --env instead of --route's addvar action to set REMOTE_USER (--env turns out to be for passing variables to the overall WSGI app).&lt;/li&gt;
&lt;li&gt;Forgetting to escape "$" when passing routes on the command line, which caused my shell to interpret variables intended for uWSGI&lt;/li&gt;
&lt;li&gt;Trying to rewrite URLs to a static path, which I only discovered is invalid after stumbling on &lt;a href="http://lists.unbit.it/pipermail/uwsgi/2013-March/005654.html"&gt;an old mailing list thread&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Examples from uWSGI's own documentation did not work! I discovered that depending on how it was compiled, you may need to pass "--plugin python,http" to give all of the necessary command line options for what I was doing.
&lt;/li&gt;&lt;/ul&gt;

&lt;p&gt;After much struggle, I came up with an invocation that worked exactly the same as the Apache config:&lt;/p&gt;
&lt;code&gt;
uwsgi --http :8080 --mount /api=admin.wsgi --manage-script-name --check-static /app/ui/dist --static-index index.html --route "^/.*$ addvar:REMOTE_USER=balrogadmin" --route-if "startswith:\${REQUEST_URI};/api continue:" --route-if-not "exists:/app/ui/dist\${PATH_INFO} static:/app/ui/dist/index.html"
&lt;/code&gt;
&lt;br&gt;&lt;br&gt;
&lt;p&gt;There's a lot crammed in there, so let's break it down:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;--http :8080&lt;/code&gt; tells uWSGI to listen on port 8080&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--mount /api=admin.wsgi&lt;/code&gt; roots the "admin.wsgi" app in /api. This means that when you make a request to http://localhost:8080/api/foo, the application sees "/foo" as the path. If there was no Angular app, I would simply use "--wsgi-file admin.wsgi" to place the app at the root of the server.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--manage-script-name&lt;/code&gt; causes uWSGI to rewrite PATH_INFO and SCRIPT_NAME according to the mount point. This isn't necessary if you're not using "--mount".&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--check-static /app/ui/dist&lt;/code&gt; points uWSGI at a directory of static files that it should serve. In my case, I've pointed it at the fully built Angular app. With this, requests such as http://localhost:8080/js/app.js returns the static file from /app/ui/dist/js/app.js.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;--static-index index.html&lt;/code&gt; tells uWSGI to serve index.html when a request for a directory is made - the default is to 404, because there's no built-in directory indexing.&lt;/li&gt;
&lt;li&gt;The &lt;code&gt;--route&lt;/code&gt;'s chain together, and are evaluated as follows:&lt;/li&gt;
&lt;li&gt;If the requested path matches &lt;code&gt;^/.*$&lt;/code&gt; (all paths will), set the REMOTE_USER variable to balrogadmin.&lt;/li&gt;
&lt;li&gt;If the REQUEST_URI starts with /api do not process any more --route's; just satisfy the request. All requests intended for the WSGI app will end up matching here. REQUEST_URI is used instead of PATH_INFO because the latter is written by --manage-script-name&lt;/li&gt;
&lt;li&gt;If the requested file does not exist in /app/ui/dist, serve /app/ui/dist/index.html instead. PATH_INFO and REQUEST_URI will still point at the original file, which lets Angular interpret the virtual path and serve the correct thing.&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;In the end, uWSGI seems to be one of the things that's very scary when you first approach it (I count about 750 command line arguments), but is pretty easy to understand when you get to know it a better. This is almost the opposite of Apache - I find it much more approachable, perhaps because there's such a littany of examples out there, but things like mod_rewrite are very difficult for me to understand after the fact, at least compared to uWSGI's --route's.&lt;/p&gt;</description><category>aus</category><category>balrog</category><category>planet-mozilla</category><category>python</category><category>releng</category><guid>https://hearsum.ca/posts/configuring-uwsgi-to-host-an-app-and-static-files/</guid><pubDate>Thu, 24 Dec 2015 14:44:50 GMT</pubDate></item><item><title>Going Faster with Balrog</title><link>https://hearsum.ca/posts/going-faster-with-balrog/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;&lt;a href="https://wiki.mozilla.org/Firefox/Go_Faster"&gt;Go Faster is a broad initiative&lt;/a&gt; at Mozilla that is focused on shipping things to users much faster than the current 6 week cycle. One important part of this project is having a mechanism to make Firefox aware of updates they need or may want to download. This is nothing entirely new of course - we've been shipping updates to users since Firefox 1.5 - but with Go Faster we will be updating bits and pieces of Firefox at a time rather than always updating the entire install. In this post I'm going to outline these new types of updates that we've identified, and talk about how things will work in the Glorious Future.&lt;/p&gt;

&lt;h2&gt;A Primer on Updates&lt;/h2&gt;
&lt;p&gt;Firefox updates work on a "pull" system, meaning Firefox regularly queries the update server (&lt;a href="https://wiki.mozilla.org/Balrog"&gt;Balrog&lt;/a&gt;) to ask if there's an update available. For example, my Firefox is currently polling for updates by making a GET request to this URL:&lt;/p&gt;
&lt;blockquote&gt;&lt;a href="https://aus5.mozilla.org/update/3/Firefox/41.0/20150915150946/Linux_x86_64-gcc3/en-GB/beta/default/default/default/update.xml"&gt;https://aus5.mozilla.org/update/3/Firefox/41.0/20150915150946/Linux_x86_64-gcc3/en-GB/beta/default/default/default/update.xml&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;All of the information in that URL is mapped against a set rules in Balrog, and eventually points to a single release. If that release is newer than the incoming one (based on the incoming version and buildid), Balrog returns the information necessary for the client to update to it:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;updates&amp;gt;
    &amp;lt;update type="minor" displayVersion="41.0" appVersion="41.0" platformVersion="41.0" buildID="20150917150946" detailsURL="https://www.mozilla.org/en-GB/firefox/41.0/releasenotes/"&amp;gt;
        &amp;lt;patch type="complete" URL="&lt;a href="http://download.mozilla.org/?product=firefox-41.0build3-complete&amp;amp;os=linux64&amp;amp;lang=en-GB"&gt;http://download.mozilla.org/?product=firefox-41.0build3-complete&amp;amp;os=linux64&amp;amp;lang=en-GB&lt;/a&gt;" hashFunction="sha512" hashValue="ea0757069363287f67659d8b7d42e0ac6c74a12ce8bd3c7d3e9ad018d03cd6f4640529c270ed2b3f3e75b11320e3a282ad9476bd93b0f501a22d1d9cb8884961" size="48982398"/&amp;gt;
    &amp;lt;/update&amp;gt;
&amp;lt;/updates&amp;gt;
&lt;/pre&gt;

&lt;p&gt;It's important to note that Balrog only contains metadata about the update. The actual payloads of the updates are hosted on CDN networks.&lt;/p&gt;

&lt;h2&gt;New Types of Updates&lt;/h2&gt;
&lt;p&gt;We've identified three different new types of updates that we'll be implementing as part of Go Faster. They are:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href="https://wiki.mozilla.org/Firefox/Go_Faster#Project_1:_Ship_features_as_system_add-ons"&gt;System Addons&lt;/a&gt;: These are core (aka required) parts of Firefox that happen to be implemented as Addons.&lt;/li&gt;
&lt;li&gt;Security Policy: This is a medium sized piece of JSON that instructs NSS about special security policies to enforce for various websites.&lt;/li&gt;
&lt;li&gt;Optional Features: These are optional parts of Firefox that may be implemented as Addons or other means.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Each one of these will be implemented as an additional update request to Balrog (we may collapse these into a single request later). Eg, Firefox will look for new System Addons by making a GET request to an URL such as:&lt;/p&gt;
&lt;blockquote&gt;&lt;a href="https://aus5.mozilla.org/update/3/SystemAddons/41.0/20150915150946/Linux_x86_64-gcc3/en-GB/beta/default/default/default/update.xml"&gt;https://aus5.mozilla.org/update/3/SystemAddons/41.0/20150915150946/Linux_x86_64-gcc3/en-GB/beta/default/default/default/update.xml&lt;/a&gt;&lt;/blockquote&gt;

&lt;p&gt;The responses will vary a bit depending on the type of update. More on that below.&lt;/p&gt;

&lt;h3&gt;System Addons&lt;/h3&gt;
&lt;p&gt;Seeing as Firefox can't function without them, System Addons may seem like a contradiction at first. The advantages are quite clear though: with them, we can ship updates to self contained pieces of Firefox at a substantionally faster rate. Shipping an update to all of Firefox takes nearly 24 hours (when we're moving as fast as we can); shipping an update to a System Addon could take as little as minutes.&lt;/p&gt;

&lt;p&gt;Although they are implemented as Addons, we can't simply ship them through the AMO. Because Firefox cannot function without them we must ship them in the installers and full updates that happen every 6 weeks. This has the nice side effect of minimizing dependency problems -- we won't run into a case where Firefox updates but System Addons don't, which could cause incompatibilities. In between the 6 week cycles Firefox will poll Balrog for updates to System Addons and apply them as they become available. This graph may show this more clearly:&lt;/p&gt;
&lt;img src="https://hearsum.ca/posts/going-faster-with-balrog/system-addon-updates.png"&gt;
&lt;br&gt;&lt;br&gt;

&lt;p&gt;As you can see, Firefox 50.0 can be assumed to have any of Fizz 1.0, 1.1, 1.2, 1.3, or 2.0, while Firefox 51.0 is known to &lt;em&gt;only&lt;/em&gt; have Fizz 2.0 (but may receive newer versions later).&lt;/p&gt;

&lt;p&gt;When Firefox pings Balrog for System Addon updates, the response will look something like this:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;updates&amp;gt;
    &amp;lt;addons&amp;gt;
        &amp;lt;addon id="fizz@mozilla.org" URL="http://download.cdn.mozilla.net/fizz-1.1.xpi" hashFunction="sha512" hashValue="abcdef123456" version="1.1"/&amp;gt;
        &amp;lt;addon id="pop@mozilla.org" URL="http://download.cdn.mozilla.net/pop-2.5.xpi" hashFunction="sha512" hashValue="abcdef123456" version="2.5"/&amp;gt;
        &amp;lt;addon id="bam@mozilla.org" URL="http://download.cdn.mozilla.net/bam-3.4.xpi" hashFunction="sha512" hashValue="abcdef123456" version="3.4"/&amp;gt;
    &amp;lt;/addons&amp;gt;
&amp;lt;/updates&amp;gt;
&lt;/pre&gt;

&lt;p&gt;Firefox will compare the list against its currently installed versions and update anything that's out of date. The exact details on where System Addons will live on disk are &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1207287"&gt;still being ironed out&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;Security Policy&lt;/h3&gt;
&lt;p&gt;Every version of Firefox ships with the most up-to-date set of security policies that were available when it was built. However, these policies are updated more frequently than we ship, and it's crucial that we keep them up to date to keep our users safe. As with System Addons, Firefox will regularly ping Balrog to check for updated security policies. When one is found, Firefox downloads it from Kinto, which will serve it an incremental update to its security policies. The details of this process have been &lt;a href="http://www.servicedenuages.fr/en/notifications-kinto-preamble"&gt;outlined in much more detail by the Cloud Services team.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The Balrog response for these updates is extremely simple, and simply contains a version that Firefox passes along to Kinto:&lt;/p&gt;
&lt;pre&gt;
&amp;lt;updates&amp;gt;
    &amp;lt;settings&amp;gt;
        &amp;lt;setting id="security" lastModified="129386427328"/&amp;gt;
    &amp;lt;/settings&amp;gt;
&amp;lt;/updates&amp;gt;
&lt;/pre&gt;

&lt;h3&gt;Optional Features&lt;/h3&gt;
&lt;p&gt;These are parts of Firefox that are not core to the browser, but may be useful to subsets of users. For example: We currently ship a ton of hyphenation dictionaries as part of Firefox for Android. These are locale-specific, so only one ever gets used for each user. We can also distribute opt-in features that not everyone wants or needs, eg: Developer Tools may be a good candidate (there are no plans to do so at this time though).&lt;/p&gt;

&lt;p&gt;Optional features may also be implemented in various ways. Hyphenation dictionaries are simple zip files, while something like Developer Tools would likely be an Addon. They will not be included in Firefox installers or update packages. Instead Firefox will regularly query Balrog to see what packages may be available to it. Some things may automatically install based on the user's environment (eg: hyphentation dictionaries for your locale), while other things may require opt-in (eg: optional features).&lt;/p&gt;

&lt;p&gt;Balrog responses are not yet set in stone for these, but Kinto is likely to be involved, so the response may end up being similar to the one above for Security Policy updates.&lt;/p&gt;

&lt;h2&gt;Summary&lt;/h2&gt;
While System Addons, Security Policy, and Optional Features overlap in some areas, each has its own unique combination of requirements. The chart below summarizes these:
&lt;table style="border: solid 1px black; border-collapse: collapse; margin: 15px 12px 15px 12px;"&gt;
&lt;tr style="border: solid 1px black;"&gt;
&lt;th style="border: solid 1px black; padding: 2px 5px 2px 5px"&gt;&lt;/th&gt;
&lt;th style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Required?&lt;/th&gt;
&lt;th style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Shipped in Installer?&lt;/th&gt;
&lt;th style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Payload Type&lt;/th&gt;
&lt;th style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Payload Location&lt;/th&gt;
&lt;/tr&gt;
&lt;tr style="border: solid 1px black;"&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;System Addons&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: limegreen;"&gt;Yes&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: limegreen;"&gt;Yes&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: coral;"&gt;Addons&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: yellow;"&gt;CDN&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="border: solid 1px black;"&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Security Policy&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: limegreen;"&gt;Yes&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: limegreen;"&gt;Yes&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: plum;"&gt;JSON&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: tan;"&gt;Kinto&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style="border: solid 1px black;"&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: lightgray;"&gt;Optional Features&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: red;"&gt;No&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: red;"&gt;No&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: skyblue;"&gt;Anything&lt;/td&gt;
&lt;td style="border: solid 1px black; padding: 2px 5px 2px 5px; background-color: tan;"&gt;Kinto&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;</description><category>aus</category><category>balrog</category><category>go-faster</category><category>planet-mozilla</category><category>releng</category><guid>https://hearsum.ca/posts/going-faster-with-balrog/</guid><pubDate>Fri, 25 Sep 2015 19:15:00 GMT</pubDate></item><item><title>Mozilla Software Release GPG Key Transition</title><link>https://hearsum.ca/posts/mozilla-software-release-gpg-key-transition/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;Late last week we discovered the expiration of the GPG key that we use to sign Firefox, Fennec, and Thunderbird nightly builds and releases. We had &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1139929"&gt;been aware that this was coming up&lt;/a&gt;, but we unfortunately missed our deadline to renew it. This caused failures in many of our automated nightly builds, so it was quickly noticed and acted upon.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://gpg.mozilla.org/pks/lookup?op=get&amp;amp;search=0x61B7B526D98F0353"&gt;Our new GPG key is as follows&lt;/a&gt;, and available on keyservers such as &lt;a href="https://gpg.mozilla.org"&gt;gpg.mozilla.org&lt;/a&gt; and &lt;a href="https://pgp.mit.edu/"&gt;pgp.mit.edu&lt;/a&gt;:&lt;/p&gt;
&lt;pre&gt;
pub   4096R/0x61B7B526D98F0353 2015-07-17
      Key fingerprint = 14F2 6682 D091 6CDD 81E3  7B6D 61B7 B526 D98F 0353
uid                            Mozilla Software Releases &lt;release&gt;
sub   4096R/0x1C69C4E55E9905DB 2015-07-17 [expires: 2017-07-16]
&lt;/release&gt;&lt;/pre&gt;

&lt;p&gt;The new primary key is signed by many Mozillians, the old master key, as well as our OpSec team's GPG key. Nightlies and releases will now be signed with the subkey (0x1C69C4E55E9905DB), and a new one will be generated from the same primary key before this one expires. This means that you can validate Firefox releases with the primary public key in perpetuity.&lt;/p&gt;

&lt;p&gt;We are investigating a few options to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1185610"&gt;make sure key renewal happens without delay in the future.&lt;/a&gt;&lt;/p&gt;</description><category>planet-mozilla</category><category>releng</category><category>signing</category><guid>https://hearsum.ca/posts/mozilla-software-release-gpg-key-transition/</guid><pubDate>Tue, 21 Jul 2015 18:45:18 GMT</pubDate></item><item><title>This week in Mozilla RelEng – June 13th, 2014 - *double edition*</title><link>https://hearsum.ca/posts/this-week-in-mozilla-releng-june-13th-2014-double-edition/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;I spaced and forgot to post this last week, so here's a double edition covering everything so far this month. I'll also be away for the next 3 Fridays, and &lt;a href="http://relengofthenerds.blogspot.ca/"&gt;Kim&lt;/a&gt; volunteered to take the reigns in my stead. Now, on with it!



Major highlights:

&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;We had a busy couple of weeks of important, but relatively boring work. We shipped 5 releases (2 betas, Firefox 30.0 &amp;amp; 24.6.0esr, Thunderbird 24.6.0), did a &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987980"&gt;series of uplifts&lt;/a&gt;, and continued &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=981124"&gt;moving machines from scl1 to scl3&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/catlee/"&gt;Catlee&lt;/a&gt; did some &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1025048"&gt;investigation into our CDN bandwidth&lt;/a&gt; and found that on average, &lt;em&gt;20%&lt;/em&gt; of users who have a partial update available still end up downloading the complete update.&lt;/li&gt;

&lt;li&gt;I finished &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=918068"&gt;switching B2G updates to aus4.mozilla.org&lt;/a&gt;. The updates should now be more reliable, and we'll be able to &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1025081"&gt;kill update.boot2gecko.org&lt;/a&gt; in the near future. Because we're abiding by standard update channel names now, this also means that the Socorro folks are able to process crashes for most B2G builds.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/mshal/"&gt;Mike&lt;/a&gt; got his patch that &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978211"&gt;allows RelEng builds to be built with mach&lt;/a&gt; ready to land. This is the step along the path making automation steps reproducible by developers, and enabling parallelization of post-build steps.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/edmorley/"&gt;Ed&lt;/a&gt; had us &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=684436"&gt;disable coalecing for changes that land within a few minutes of each other&lt;/a&gt;. During tree closures for bustage, this should help get the tree open faster because fewer builds will be needed for bisection.&lt;/li&gt;

&lt;/ul&gt;



Completed work (resolution is 'FIXED'):

&lt;ul&gt;

&lt;li&gt;Balrog: Backend&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=748698"&gt;Support new attributes for update.xml in Balrog&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1000221"&gt;add support for "isOSUpdate" attribute&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017575"&gt;need a way to delete releases in balrog&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Buildduty&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019523"&gt;Large set of t-snow-r4 slaves is disabled (broken in slave-health)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018118"&gt;Pending queue for tegras &amp;gt; 1000 and time between jobs per tegra is &amp;gt; 6 hours&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020210"&gt;All Trees Closed -&amp;gt; building backlog of linux jobs because of issues with dynamic jacuzzi allocation&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019700"&gt;Trees closed due to "Error: Cannot retrieve repository metadata (repomd.xml) for repository: centos6. Please verify its path and try again"&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015063"&gt;Deploy trychooser to production from tools repo tip to pick up bug 1012689&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=999930"&gt;put tegras that were on loan back onto a foopy and into production&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;General Automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1006082"&gt;Run Android 2.3 tests against armv6 builds, on Ash only&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023966"&gt;Bumper Bot doesn't seem to be always seem to be in sync when updating sources.xml and gaia.json for Gaia changes on Aurora&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019914"&gt;Tooltool upload request for GCC with plugin headers to use for B2G hazard analysis&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019659"&gt;bm84 spamming about Unauthorized Logins&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014287"&gt;kill b2g26_v1_2 on june 9 merge day&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019920"&gt;Tooltool upload request for version of sixgill compatible with b2g gcc&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019032"&gt;Schedule Mn on opt Linux/Linux64 on trunk trees&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018386"&gt;B2G nonunified builds are running across all release branches&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1000215"&gt;set-up initial balrog rules for b2g updates&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=980120"&gt;Add tooltool support to Windows builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009565"&gt;Triggering arbitrary jobs gets branch wrong&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1001118"&gt;[Flame] Get seccomp enabled on jellybean based flame builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023353"&gt;06/10/2014 No Tarako 1.3t build available to smoketest&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019170"&gt;no new hamachi/helix/nexus-4 updates since may 30th&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021091"&gt;servo builder git clean should clean ignored files too&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021873"&gt;rm_old_symbols step is failing for win64-ff64 nightlies&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021086"&gt;Disable buildbot-master69 (bm69) until needed&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=989128"&gt;Need Tarako 1.3t FOTA updates for testing purposes&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=918068"&gt;switch b2g builds to use aus4.mozilla.org as their update server&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=936222"&gt;nextSlave should take into account retries and spot instances&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021623"&gt;Add 'uz' to the Firefox build&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011129"&gt;[Dolphin] Create Dolphin builds for 1.4&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019578"&gt;Run Flame builds per-push instead of periodically&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1022267"&gt;B2G non-unified builds are falling way behind&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=981825"&gt;Handle reverting fake branch values in build-{running, pending}.js and builds-4hr.js.gz&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014212"&gt;Remove the need to create Puppet changes for BuildSlaves*.py.erb, production_config.py and production-master.json&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018439"&gt;Mn tests on Windows 8 fail with:  WindowsError: [Error 740] The requested operation requires elevation&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=873928"&gt;Intermittent command timed out: 3600 seconds without output, attempting to kill fetching b2g bits from gitmo&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987980"&gt;Tracking bug for 09-jun-2014 migration work&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024725"&gt;B2G and Android builds failing with yum errors&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021817"&gt;[mozharness] Move structured logging support code into mozharness proper&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023581"&gt;Disable MOZ_AUTOMATION for Hf builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011550"&gt;include device in fota mar filenames&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014751"&gt;Clean up b2g names in our configs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020384"&gt;Give Jetpack tests a shorter maxTime than 2 hours&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009763"&gt;Upload the list of all functions from hazard analysis&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=986213"&gt;Schedule (mostly) B2G tests on Mozilla-B2g28-v1.3t&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=965608"&gt;lock reporepo to a tag - b2g builds failing with AttributeError: 'list' object has no attribute 'values' |  caught OS error 2: No such file or directory while running ['./gonk-misc/add-revision.py', '-o', 'sources.xml', '--force', '.repo/manifest.xml']&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009770"&gt;Add 'dsb' to the Firefox build&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=985837"&gt;emulator-kk builds crash make half the time (which it describes as "failed to build")&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021685"&gt;[mozharness] Allow web-platform-tests to be split by test type and into chunks.&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=920569"&gt;Add support for webapprt-test-chrome test jobs &amp;amp; enable them per push on Cedar&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Loan Requests&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023307"&gt;Request for OS X 10.6 test machine for jchen&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018212"&gt;Loan :kmoir talos-linux64-ix-005&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=988501"&gt;Please loan shu OS X 10.6 test runner&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=892318"&gt;Requesting a loaner machine bld-linux64-ec2 to diagnose bug 887761&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020094"&gt;Slave loan request for a OSX 10.6 (snow leopard) machine to glandium&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Other&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=933080"&gt;Add b2g-inbound, fx-team, and mozilla-central to regression archive&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1007976"&gt;Switch in house try builds from ceph to reverse-proxied S3&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=684436"&gt;Stop merging builds for pushes within 3 minutes of each other&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018614"&gt;sign Thunderbird hot-fix testing addon&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Platform Support&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017634"&gt;New spot test images don't have v4l2loopback configured&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020804"&gt;Most Win64 Windows 8 Debug tests are failing -- mozjs.dll issue?&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011207"&gt;cancelled 2.3 mochitest jobs put ix slaves into weird state (and so need rebooting)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013035"&gt;scl1 Move Train A releng config Work&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=949740"&gt;Intermittent Android x86 We have not been able to establish a telnet connection with the emulator&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1022838"&gt;add r3.xlarge to our bids&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=727551"&gt;Create a Windows-native alternate to msys rm.exe to avoid common problems deleting files&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017599"&gt;disable selected tests on tegras&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;release-automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013705"&gt;release l10n repacks failed due to failed "rm"&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024034"&gt;Stop automatically pushing ESR deliverables to mirrors&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024961"&gt;B2G device image builds failing with "error: packfile &amp;lt;...&amp;gt; does not match index" (followed by: "Output exceeded 52428800 bytes, remaining output has been truncated (output was 52467067 bytes)")&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023031"&gt;No 'ready for releasetest testing' email for Firefox 30.0 build2&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Releases&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009893"&gt;Show /whatsnew tour URL to users updating to 30.0 and 31.0 (from all past versions of Firefox)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1002475"&gt;Disable Aurora 30 daily updates until merge to mozilla-aurora has stabilized&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019151"&gt;Remove sw during beta-release migration for Firefox 30&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=984214"&gt;Tracking bug for 28-april-2014 migration work&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1022715"&gt;Disable Aurora daily updates until merge to mozilla-aurora has stabilized&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=998781"&gt;Remove sw during beta-release migration for Firefox 29&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Releases: Custom Builds&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015320"&gt;Modify AOL Repack Configuration&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019656"&gt;Yandex partner repack changes for Fx 30 release&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020074"&gt;Version bumps for Yahoo FF 30&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Repos and Hooks&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016801"&gt;Fix missing trailing slashes for repositories in push_printurls.py&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019074"&gt;Please move https://github.com/eamsen/node-gonzales to the Mozilla github org&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1010053"&gt;Disable try_gcc45 hook&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019206"&gt;Add an exception to the WebIDL hook for code uplifts&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020225"&gt;Request for a new repository in /gaia-l10n: son&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023036"&gt;Request to mirror darwinstreamingserver for FFOS emulator builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023370"&gt;[Flame] Adding qcom prima wlan git mirror&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1012849"&gt;Need branches of mozilla-b2g/codeaurora_kernel_msm for mako/hammerhead&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011414"&gt;[RTSP] Request for a new repository: darwinstreamingserver&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017623"&gt;external/sprd-aosp/platform/system/core not accepting a non-fast-forward change&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017464"&gt;New git repositories to mirror for Flame&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017916"&gt;Request for a new repository in /gaia-l10n: mai&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Tools&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021600"&gt;slave_health needs to be updated to manage b-linux64-hp boxes for "build" slaveclass&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1003361"&gt;b2g tagging script&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018531"&gt;Panda tests retrying more than necessary&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018377"&gt;Update trychooser for Android 2.3&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=932396"&gt;implement "disable" action in slaveapi&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1012689"&gt;Trychooser should not select opt/debug by default and leave the user to choose&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014836"&gt;Please add treeherder to allowed origins response headers for BuildAPI self-serve&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019893"&gt;Link to TBPL in trychooser job result emails&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023030"&gt;https://secure.pub.build.mozilla.org/builddata/reports/slave_health/buildduty_report.html is 404&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019292"&gt;Balrog release submissions should adjust productName as needed&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=875164"&gt;kill b2g18 + b2g18_v1_1_0_hd&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;/ul&gt;

In progress work (unresolved and not assigned to nobody):

&lt;ul&gt;

&lt;li&gt;Balrog: Backend&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=797033"&gt;update balrog blob schema to support multiple partials&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021022"&gt;support comparison operators for matching version &amp;amp; buildID in rules&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Balrog: Frontend&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=929555"&gt;balrog's rules page is excessively wide&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Buildduty&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024448"&gt;Stale slaverebooter lockfile&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1004813"&gt;Investigate Windows 8 machines that are still out of action&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013511"&gt;[tracking] Eliminate buildduty&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;General Automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=986112"&gt;Make blobber uploads discoverable&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018887"&gt;[mozharness] Make web-platform-tests output match TEST-UNEXPECTED-.* regexp for test_end messages.&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009807"&gt;Figure out the correct path setup and mozconfigs for automation-driven MSVC2013 builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1000217"&gt;disable uploading to update.boot2gecko.org for mozilla-central/mozilla-aurora/1.4&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018907"&gt;timestamps for build directories are off by timezone offset (7 hours)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=770995"&gt;Partial update generation service&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017759"&gt;AWS region-local caches for https stuff&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024560"&gt;Remove config for ubuntu64_hw-b2g-dt platform&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=940068"&gt;[Meta] Some "Android 4.0 debug" tests fail&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=971176"&gt;[tracker] run Android 2.3 test jobs on EC2&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1020970"&gt;Schedule all Android 2.3 armv6 tests, except mochitest-gl, on all trunk trees and make them ride the trains&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019824"&gt;Move emulator gaia-ui-tests on cedar from AWS to IX slaves&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=961075"&gt;Add the build step or else process name to buildbot's generic command timed out failure strings&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019962"&gt;Make b2g_emulator_unittest.py easier to run outside of automation&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011131"&gt;[Dolphin] Need a way to build Dolphin builds for 1.4&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021375"&gt;Tooltool doesn't work on (at least) windows c-c&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1001416"&gt;Monitor aws_stop_idle.py hungs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=942167"&gt;Please add non-unified builds to mozilla-central&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=991707"&gt;Don't generate nightly builds on a tree if no new changes have landed since the previous nightly&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019869"&gt;Remove spot instances from inventory&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=979554"&gt;revamp b2g upload configs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=869051"&gt;Race condition between builders that push updates to in-tree files&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019238"&gt;Add hazards builds to ash branch&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014632"&gt;FlatFish: Integrate boot.img and recovery.img into the build system&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023595"&gt;Schedule Mnw on cedar on emulator-jb and emulator-kk&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=986477"&gt;Don't require puppet or DNS to launch new instances&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=997096"&gt;Start doing mulet builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023477"&gt;reduce EBS writes by removing journal, tweaking writeout&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1004279"&gt;create in-tree CA pinning preload list&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021759"&gt;Split web-platform-tests into two testsuites by type&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Loan Requests&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023856"&gt;Slave loan request for a talos-r4-snow machine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=974634"&gt;Loan an ami-6a395a5a instance to Aaron Klotz&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017046"&gt;Slave loan request for a t-mavericks-r5 machine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019135"&gt;Please loan Dan Glastonbury an OSX 10.9 test slave&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Other&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=940789"&gt;[tracking] infrastructure improvements&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Platform Support&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=895845"&gt;Deploy new clang when available to fix ASan: Intermittent crashes [@ NS_IsMainThread] with heap-buffer-overflow&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987303"&gt;evaluate mac cloud options&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=712205"&gt;slaves should always have tools checked out and up to date&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=712206"&gt;slave pre-flight tasks&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009584"&gt;Deploy hg.m.o/build/buildbot production-0.8 to buildslaves to pick up bug 961075&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024091"&gt;address high pending count in in-house Linux64 test pool&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1022431"&gt;scl1 Move Train C releng config Work&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;release-automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019724"&gt;Update channels for single local Beta and Release builds of Firefox for Android 30 (and beyond)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=908134"&gt;Figure out how to offer release build to beta users&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Releases&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=996137"&gt;tracking bug for build and release of Firefox and Fennec 30.0&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=996139"&gt;tracking bug for build and release of Firefox 24.6.0 ESR&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=996142"&gt;tracking bug for build and release of Thunderbird 24.6.0&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Releases: Custom Builds&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019660"&gt;Yandex partner builds for Turkey&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Repos and Hooks&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017837"&gt;[tracker] hg.mozilla.org user repository issues&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Tools&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=946019"&gt;cut over gecko.git to the new vcs-sync system&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=962853"&gt;vcs-sync needs to populate mapper db once it's live&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=918055"&gt;port b2g branching script to mozharness, with revision locking&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023624"&gt;Figure out tools versioning for partial generation&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=976106"&gt;tegra/panda health checks (verify.py) should not swallow exceptions&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023541"&gt;Deploy relengapi 0.2.1 and mapper 0.2.1 into production https://api.pub.build.mozilla.org/&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019438"&gt;end_to_end_reconfig.sh should store logs from manage_foopies.py&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=962863"&gt;cut over l10n repos to the new vcs-sync system&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978514"&gt;Move mqext into the new https://hg.mozilla.org/hgcustom/version-control-tools repo&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023843"&gt;Possible bug in end_to_end_reconfig.sh when using -p option?&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019732"&gt;implement 'aws_create_instance' action in slaveapi&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1023502"&gt;slaveapi disable - comment in bug while disabling is in progress and add a reason dep bug option&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018975"&gt;buildfarm/maintenance/manage_foopies.py not executable&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1024055"&gt;Make mozharness use structured logging for marionette tests&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=847640"&gt;db-based mapper on web cluster&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1021893"&gt;implement 'enable' in slaveapi.&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=965691"&gt;Create a Comprehensive Slave Loan tool&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1019434"&gt;update_maintenance_wiki.sh is truncating text content&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983813"&gt;AWS Sanity Check lies about how long an instance was shut down for...&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;/ul&gt;</description><category>planet-mozilla</category><category>releng</category><guid>https://hearsum.ca/posts/this-week-in-mozilla-releng-june-13th-2014-double-edition/</guid><pubDate>Fri, 13 Jun 2014 15:45:10 GMT</pubDate></item><item><title>More on "How far we've come"</title><link>https://hearsum.ca/posts/more-on-how-far-weve-come/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;After I posted &lt;a href="http://hearsum.ca/blog/how-far-weve-come/"&gt;"How far we've come"&lt;/a&gt; this morning a few people expressed interest in what our release process looked like before, and what it looks like now.



The earliest recorded release process I know of was called the &lt;a href="https://wiki.mozilla.org/ReleaseEngineering/Unified_Release_Process"&gt;"Unified Release Process"&lt;/a&gt;. (I presume "unified" comes from unifying the ways different release engineers did things.) As you can see, it's a very lengthy document, with lots of shell commands to tweak/copy/paste. A lot of the things that get run are actually scripts that wrap some parts of the process - so it's not as bad as it could've been.



I was around for much of the improvements to this process. Awhile back I wrote a series of blog posts detailing some of them. For those interested, you can find them here:

&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href="http://hearsum.ca/blog/release-automation-part-1-bootstrap/"&gt;Part 1: Boostrap&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://hearsum.ca/blog/release-automation-part-2-mercurial-based-v1/"&gt;Part 2: Mercurial based&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="http://hearsum.ca/blog/release-automation-part-3-improvements-optimizations-2009-to-early-2011/"&gt;Part 3: Improvements and Optimizations&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;



I haven't gotten around to writing a new one for the most recent version of the release automation, but if you compare &lt;a href="https://wiki.mozilla.org/Releases/RelEngChecklist#Beta_2"&gt;our current Checklist&lt;/a&gt; to the old &lt;a href="https://wiki.mozilla.org/ReleaseEngineering/Unified_Release_Process"&gt;Unified Release Process&lt;/a&gt;, I'm sure you can get a sense of how much more efficient it is. Basically, we have push-button releases now. Fill in some basic info, push a button, and a release pops out:

&lt;a href="http://people.mozilla.org/~bhearsum/shipit.png"&gt;&lt;img src="http://people.mozilla.org/~bhearsum/shipit.png"&gt;&lt;/a&gt;</description><category>planet-mozilla</category><category>release-automation</category><category>releng</category><guid>https://hearsum.ca/posts/more-on-how-far-weve-come/</guid><pubDate>Wed, 04 Jun 2014 17:57:16 GMT</pubDate></item><item><title>How far we've come</title><link>https://hearsum.ca/posts/how-far-weve-come/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;When I joined Mozilla's Release Engineering team (Build &amp;amp; Release at the time) back in 2007, the mechanics of shipping a release were a daunting task with zero automation. My earliest memories of doing releases are ones where I get up early, stay late, and spend my entire day on the release. I logged onto at least 8 different machines to run countless commands, sometimes forgetting to start "screen" and losing work due to a dropped network connection.



Last night I had a chat with Nick. When we ended the call I realized that the Firefox 30.0 release builds had started mid-call - completely without us. When I checked my e-mail this morning I found that the rest of the release build process had completed without issue or human intervention.



It's easy to get bogged down thinking about current problems. Times like this make me realize that sometimes you just need to sit down and recognize how far you've come.&lt;/p&gt;</description><category>planet-mozilla</category><category>release-automation</category><category>releng</category><guid>https://hearsum.ca/posts/how-far-weve-come/</guid><pubDate>Wed, 04 Jun 2014 12:26:51 GMT</pubDate></item><item><title>This week in Mozilla RelEng – May 30th, 2014</title><link>https://hearsum.ca/posts/this-week-in-mozilla-releng-may-30th-2014/</link><dc:creator>Ben Hearsum</dc:creator><description>&lt;p&gt;Major highlights:

&lt;/p&gt;&lt;ul&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/nthomas/"&gt;Nick&lt;/a&gt; landed a &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=748698"&gt;big patch to Balrog (our new update server)&lt;/a&gt; that has unblocked &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=933414"&gt;the remaining work to move Beta users over to it&lt;/a&gt;.&lt;/li&gt;

&lt;li&gt;I moved our &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=918068"&gt;Flame builds over to Balrog&lt;/a&gt;, which is a huge step towards killing update.boot2gecko.org.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/kmoir/"&gt;Kim&lt;/a&gt; disabled many &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017599"&gt;Android 2.2 tests on trunk branches on Tegras&lt;/a&gt; since these now run on 2.3 emulators.  This should help reduce the load on our overburdened Tegra pool and is a first step toward deprecating this hardware completely.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/rail/"&gt;Rail&lt;/a&gt; brought up our first &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=986477"&gt;DNS-less AWS instances&lt;/a&gt;. These new instances take jobs more quickly than the older ones, and it's much easier for us to add more to the pool.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/mgerva/"&gt;Massimo&lt;/a&gt; moved our &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1008241"&gt;ccache for AWS machines onto SSDs&lt;/a&gt;. This should result in a small improvement to build times.&lt;/li&gt;

&lt;li&gt;&lt;a href="https://mozillians.org/en-US/u/aki/"&gt;Aki&lt;/a&gt; killed the &lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=875164"&gt;now-unused b2g18 (1.1) branches&lt;/a&gt;.&lt;/li&gt;

&lt;/ul&gt;



Completed work (resolution is 'FIXED'):

&lt;ul&gt;

&lt;li&gt;Balrog: Backend&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=994419"&gt;Requesting data of non-existent release yields a 500 error&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=999423"&gt;tracebacks on versions like "3.6.3plugin1"&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Buildduty&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=826265"&gt;Install loopback audio/video drivers on Linux test slaves&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016418"&gt;Completed builds not appearing on TBPL&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015934"&gt;Failure "TypeError: request() got an unexpected keyword argument 'config'" on amazon dnsless spot instances&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;General Automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011489"&gt;hamachi device builds submitting bad urls to balrog&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014914"&gt;Make it easier to run b2g_desktop_automation.py&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016579"&gt;tons of UnauthorizedLogin errors on build/try masters&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016487"&gt;[Flame] Please update the blobs to use blobs from 10G-2&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017073"&gt;Tarako build for 5/28 is busted due to no rule to make target error.&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009197"&gt;[Flame] Please update the blobs to use blobs from 10F-3&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018193"&gt;Delay in Update availability (Aurora and Nightly)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015407"&gt;nexus 4 builds need to upload mars publicly&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1008241"&gt;Put ccache on SSDs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013683"&gt;ESR24 trying to run OSX 10.8 Cpp unit tests&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013526"&gt;Schedule mochitest-oop against linux64_gecko on trunk branches&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011257"&gt;/builds/slave is read only for cltbld&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=997946"&gt;Stop running cppunit and jittest on OS X 10.8 on all branches&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011550"&gt;include device in fota mar filenames&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Loan Requests&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978489"&gt;Connect a linux and mac slave to dev-master1:8950 for pkewisch&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Other&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=957865"&gt;Upgrade ASan Clang in Q1&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Platform Support&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=985625"&gt;Releng Config/Automation support of staging run of scl1-&amp;gt;scl3 move&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017634"&gt;New spot test images don't have v4l2loopback configured&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017599"&gt;disable selected tests on tegras&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017166"&gt;Build make 3.82&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=727551"&gt;Create a Windows-native alternate to msys rm.exe to avoid common problems deleting files&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;release-automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017553"&gt;Don't use hardcoded hg.mozilla.org in release-runner.py&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011566"&gt;release automation can't update balrog blobs during the update step&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Repos and Hooks&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1010563"&gt;Create post-push hook to print cset url for QA repositories on hg.mozilla.org&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Tools&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=875164"&gt;kill b2g18 + b2g18_v1_1_0_hd&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;/ul&gt;

In progress work (unresolved and not assigned to nobody):

&lt;ul&gt;

&lt;li&gt;Balrog: Backend&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=748698"&gt;Support new attributes for update.xml in Balrog&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1000221"&gt;add support for "isOSUpdate" attribute&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Buildduty&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=978928"&gt;Reconfigs should be automatic, and scheduled via a cron job&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013511"&gt;[tracking] Eliminate buildduty&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;General Automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1006082"&gt;Run Android 2.3 tests against armv6 builds, on Ash only&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009807"&gt;Figure out the correct path setup and mozconfigs for automation-driven MSVC2013 builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009565"&gt;Triggering arbitrary jobs gets branch wrong&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1012647"&gt;Create mozilla-esr31 branch&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=971176"&gt;[tracker] run Android 2.3 test jobs on EC2&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=784681"&gt;[Meta] Fix + unhide broken testsuites or else turn them off to save capacity&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014318"&gt;Use properties to handle chunking&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=918068"&gt;switch b2g builds to use aus4.mozilla.org as their update server&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011129"&gt;[Dolphin] Create Dolphin builds for 1.4&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014212"&gt;Remove the need to create Puppet changes for BuildSlaves*.py.erb, production_config.py and production-master.json&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987980"&gt;Tracking bug for 09-jun-2014 migration work&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017300"&gt;Schedule Marionette tests on Windows on cedar&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=942167"&gt;Please add non-unified builds to mozilla-central&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014287"&gt;kill b2g26_v1_2 on june 9 merge day&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014751"&gt;Clean up b2g names in our configs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=979554"&gt;revamp b2g upload configs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017315"&gt;Schedule Mn tests on opt Linux builds on cedar&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014632"&gt;FlatFish: Integrate boot.img and recovery.img into the build system&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017448"&gt;Add --disable-mock option to b2g_build.py&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=986477"&gt;Don't require puppet or DNS to launch new instances&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=997096"&gt;Start doing mulet builds&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1004279"&gt;create in-tree CA pinning preload list&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=920569"&gt;Add support for webapprt-test-chrome test jobs &amp;amp; enable them per push on Cedar&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Loan Requests&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018212"&gt;Loan :kmoir talos-linux64-ix-005&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017046"&gt;Slave loan request for a t-mavericks-r5 machine&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017303"&gt;Slave loan request for a bld-linux64-ec2 vm&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Other&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=940789"&gt;[tracking] infrastructure improvements&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Platform Support&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013035"&gt;scl1 Move Train A releng config Work&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016453"&gt;[tracker] Stop testing on tegras&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=987303"&gt;evaluate mac cloud options&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1011207"&gt;cancelled 2.3 mochitest jobs put ix slaves into weird state (and so need rebooting)&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1004682"&gt;FHR on Android should not be attempting to connect to the internet in automation jobs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=692715"&gt;Windows slaves often get permission denied errors while rm'ing files&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=932431"&gt;Run unittests/talos on OS X 10.9 Mavericks&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1009584"&gt;Deploy hg.m.o/build/buildbot production-0.8 to buildslaves to pick up bug 961075&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1003729"&gt;Update version of pip installed on automation machines from 0.8.2 to 1.5.4+&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1001714"&gt;Add cloud-init to our base AMIs&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;release-automation&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1013705"&gt;release l10n repacks failed due to failed "rm"&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Releases&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015968"&gt;tracking bug for build and release of Firefox and Fennec 31.0&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015969"&gt;tracking bug for build and release of Firefox 24.7.0 ESR&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015942"&gt;tracking bug for build and release of thunderbird 31.0&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1012648"&gt;tracking bug for build and release of Firefox 31.0 ESR&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=996137"&gt;tracking bug for build and release of Firefox and Fennec 30.0&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1015320"&gt;Modify AOL Repack Configuration&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Repos and Hooks&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1012849"&gt;Need branches of mozilla-b2g/codeaurora_kernel_msm for mako/hammerhead&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017916"&gt;Request for a new repository in /gaia-l10n: mai&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1017837"&gt;[tracker] hg.mozilla.org user repository issues&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1016801"&gt;Fix missing trailing slashes for repositories in push_printurls.py&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;li&gt;Tools&lt;/li&gt;

&lt;ul&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=962853"&gt;vcs-sync needs to populate mapper db once it's live&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018248"&gt;End-to-end reconfig should also update tools version on foopies&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1018377"&gt;Update trychooser for Android 2.3&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=932396"&gt;implement "disable" action in slaveapi&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1005235"&gt;Transplant tool (Hg to Hg) for sheriffs&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=1014836"&gt;Please add treeherder to allowed origins response headers for BuildAPI self-serve&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=847640"&gt;db-based mapper on web cluster&lt;/a&gt;&lt;/li&gt;

&lt;li&gt;&lt;a href="https://bugzilla.mozilla.org/show_bug.cgi?id=983813"&gt;AWS Sanity Check lies about how long an instance was shut down for...&lt;/a&gt;&lt;/li&gt;

&lt;/ul&gt;

&lt;/ul&gt;</description><category>planet-mozilla</category><category>releng</category><guid>https://hearsum.ca/posts/this-week-in-mozilla-releng-may-30th-2014/</guid><pubDate>Fri, 30 May 2014 19:20:29 GMT</pubDate></item></channel></rss>