A Firefox dev VM?

I’ve been toying with the idea of creating a virtual machine that’s ready to build mozilla-central out of the box. The original idea I had was that it would be really easy to get new contributors started, and it would allow us to set up finicky things like the hgrc correctly. However, it was pointed out to me that build times in VMs are pretty terrible, which does make it less attractive. However however, I have seen comments from technical people in bugs that they would like to help find regression ranges smaller than 24 hours, but they lack the time to figure out how to set up a build. Is it worth creating a VM for finding regression ranges? I can imagine it being really pleasant to start a VM, run a script, and check back in every 30 minutes to see if the next build is ready for testing. Alternatively, implementing Kyle Huey’s proposed solution would also be a pretty big step to easing those pains.

12 Responses to “A Firefox dev VM?”

  1. I would love such a vm.
    A usual 24h regression range is in nearly all cases not enough to identify the checkin that regressed a bug.

    I had a build environment several times in the last 10 years but i have recently problems to get a working win32 build environment.
    khuey approach is also nice but only if you could download the builds and do the regression test manually instead of writing a test.

  2. “and it would allow us to set up finicky things like the hgrc correctly. ”

    It might be more useful to make the existing documentation of how to set up a build environment more complete. You can find everything on MDN somewhere, but it takes quite a few pages. You could go about setting up a fresh development environment, and just write down every single step you need to take, including things like hgrc, then make sure they are on the “how to set up your build environment” page somewhere.

  3. Each step isn’t that hard to do, it is just hard to find out what to do. Is what I am saying.

  4. DO EET! (As long as the VM can be loaded into both Xen and VirtualBox)

  5. I would definitely love to have a VM to use to find regression ranges!

  6. We’re starting to do this for webdev projects with Vagrant (vagrantup.com), Puppet, and Virtualbox and it’s very handy. Not the best performance, CPU wise, but very nice to wrap up a sharable machine config in a bow.

    If you want to share any notes, let me (or anyone on #webdev) know. Webdev is for sure different than building Firefox, but there are probably some lessons learned that are sharable

  7. Also, the nice thing about Puppet vs writing more detailed documentation is that Puppet is machine-executable rather than human-executable, and therefore much less error prone and more easily repeated

  8. Also also, I’ve started assembling notes on our VM’s here:


  9. I love the idea. My only problem is that VMs can be horribly large, so the download time might make this untractable.

  10. I’d use it, definitely. As an occasional contributor I find getting a build environment set up to take up most of my contribution time.

  11. [...] Fox in a Box project. The enthusiasm for my idea of putting together a dev VM was loud and clear in my last post, mainly from testers who expressed interest in hunting regressions at a more granular level. The [...]

  12. Nice title, Dysfunctional Programming » A Firefox dev VM?, I couldn’t refrain from commenting. Exceptionally well written! I wanted to give you thanks for your effort.

Leave a Reply