Tuesday, November 22, 2011

Changing how talos.zip gets deployed

For the longest time I have been looking to have time to work on this project to make everyone's life easier. 
Bug 673131 - when minor talos changes land, the a-team should be able to deploy with minimal releng time required

What about if we could limit talos changes as any other change that lands on the tree?

Currently what we do is to download a talos.zip that replaces the old one in one of our build machines. This means that as soon as any job starts a talos job it will grab the newest talos.zip.
To read about some of the problems that this causes you can go at the bottom of this post.

I will tell you what I want to change even though I don't yet know exactly how to do it.

  • the talos job downloads a text file:
    • e.g. hg.mozilla.org/mozilla-central/raw-file/abcd1234567/path/to/talos/config/file.json
  • that file will contain the URL of the talos bundle
    • e.g. people.mozilla.com/~armenzg/talos/talos.zip
  • the talos bundle will be downloaded
  • how to prevent a talos.zip to contain malicious code and cause us harm?
    •  anyone with try commit level could tinker with a machine inside of the build network (even though we don't ship anything from such machine)
    • we should find a way to limit this
    • perhaps have this feature only available to a give project branch? A-team branch?
      • we could add a cgi script to upload a talos.zip
      • maybe we should redesign this to just indicate a "revision" and update to it for http://hg.mozilla.org/build/talos
  • it forces to match a build to a given talos.zip
    • this means that if you want to try another talos.zip you will have to push a different changeset to specify a different talos.zip to be used even though the build is exactly the same
I am also afraid that this project could easily start scope creeping knowing how many artifacts we download for talos (e.g. pageloader.xpi, plugins et all).

I wanted to have this section in case there was somebody curious about the problems we face with the current setup:
  • no need for downtimes as changes are isolated to a changeset landing
  • a changeset can have some talos jobs test the old talos.zip and the new one
    • this can make some platforms to show a new regression on that changeset and some on the next one. This makes it hard to figure things out
  • a build that started before the talos.zip was deployed can be blamed for causing a regression even though the talos.zip was deployed *after* the talos.zip was deployed
  • a talos.zip change does not show up on the pushlog
    • this means that it can only be noticed if a note is sent to dev.tree-management or if the Maintenance page was updated correctly
    • this means that it can not be backed out by a developer

Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Friday, November 18, 2011

My first mobile testing hours

I decided to spend few hours learning the process of submitting Fennec issues and documenting it. I would like to be doing this 30-45 minutes every day to help the project.

I documented my learning process in:

For the record, I had to remove the multi fennec build from latest-birch as it was broken.

At the end of this post there are some easy to hit bugs which would save you the time to figure out if it is already filed.

I hope this can help you get started and see that is not hard to do it.

First steps

NOTE: Here's the list of bugs that I've filed or have CCed myself to.


  • If you hit a bug check the list of know bugs Fennec Native UI list.
    • I normally just use the integrated search (Ctrl + F) that comes with Firefox to search through the list
    • I keep open the list all the time
  • If you don't find it file it by typing the steps you followed plus your expected behavious.
Not tried yet:
  • blassey told me to use "adb am start " to tell from my laptop to my phone to open a URL
  • Note on taking screen shots:
You can take screenshots using the Android SDK; you don't have to root
the device.  The other way is to upgrade to ICS if that is an available option
for you.

The android sdk will install the ddms, in which you can select a device and
then take a screenshot

Issues found

These are issues that I have not yet filed or have not have had time to check if they are valid.
  • On first start up I go to the Firefox Nightly start page and it is crazy wide
  • "Reformat text on zoom" is not "on" by default

Easy to hit bugs

Last updated: Nov. 18th, 2011
  • bug 702633 - painting is broken for google.ca
  • bug 701380 - have a different start up page
  • bug 701594 - Should not be able to stay zoomed out further than the page width
  • bug 700940 - Favicon transparency results in purple background sometimes
  • bug 701797 - "save as PDF" is broken

Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.

Tuesday, November 01, 2011

How FSOSS was for me

Last week at FSOSS a lot of good things happened for me and writing about it in an organized manner will be a bit challenging :)

As I mentioned last week, I gave a new talk at FSOSS on Saturday morning. I spoke about what is involved on shipping open-source software to millions of users (I will add the presentation in another blog post). I had the opportunity to bring my sweet beloved Veronica with me and according to her "[my] presentation was wonderful! best looking guy there ... and [my] talk wasn't too bad either!... I learned so much (though your handsome face was quite distracting! :) )". A little biased but I got to say that it felt like it came about right and I had a lot of fun.
During Q&A for my presentation.

I had started working on this presentation on Tuesday and had the opportunity to run it through Mike Hoye who had encouraged me to give the talk a month ago. His input was valuable and helped me with some problems I was having.

Besides my presentation there were many things that happened on Thursday, Friday and Saturday.

As soon as I got my bag of swags I realized that most sponsors (and not sponsors) were represented in it (see pic below). I was surprised that I did not see anything from us even though Mozilla was the biggest sponsor of the event.
Mike Hoye giving his presentation.
No Mozilla swag on the welcome bag.

Me, Jeff Griffiths and two Microsoft evangelists

I spent most of my day with Jeff Griffiths at the Mozilla booth. Over there, I realized what big of a brand Mozilla is and the affinity that Seneca students have with us. I was overwhelmed with how many came to us to find out how to contribute or how to take part of an internship.

I also noticed a couple of things while I was at the booth. I noticed there were a couple of non-open-source booths like Microsoft. I guess events like this need sponsors to give money regardless of how much open-source they do. Regardless of this, I went and spent some time with them as I was curious on the Microsoft phone (which felt much better than I had expected). I was really impressed that they had three people and all sorts of cool swags and phones all over. They also had a very cool shirt that says "I love Windows phone" with icon-apps rather than words (see pic). I also like their slogan "Make web not war" which is catchy.

I wish this event was more widely known and have more people coming to it as there are some good talks. Seneca staff and students did an excellent job at running this event. It felt like they do this every day.

I also had an opportunity to meet again many of my former professors and Shaz (I used to work for her as a student ambassador at student services). Tim McKeena (Seneca prof.) was extremely excited to hear my talk and gave me a small gift from Seneca.

I wish I attended more sessions but working on the booth and preparing for the presentation took most of my time.

Keep it up Seneca!

Creative Commons License
This work by Zambrano Gasparnian, Armen is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.