Open Bug 616089 Opened 14 years ago Updated 2 years ago

Create a new contributor linux development VM appliance that is constantly kept up to date

Categories

(Core :: General, enhancement)

All
Linux
enhancement

Tracking

()

People

(Reporter: christian, Unassigned)

References

Details

Though it is fairly well documented, it isn't trivial to set up a system for Firefox development. I figured there would be a pre-configured linux VM one could just download and immediately start coding on. I can't seem to find such a thing if it exists...feel free to tell me where it is if I missed it. Having something we could easily point new contributors at would lower the barrier to contribution considerably. This is what I envision: * A linux VM * Friendly boot screen graphic in the Mozilla.com style, thanking the user for helping out * A copy of mozilla-central already loaded on the VM * A script to update mozilla-central on the VM at initial launch, or reposting the VM with updated source with every nightly * A helpful PDF guide on the desktop, telling people about the VM, walking them through how to create a bugzilla account, generate keys, etc. This could just be a dump from MDC or it could have sections w/ generic blurbs and link off to MDC * A (XUL) wizard wizard that comes up on first launch (and has a link on the desktop for future launches), walking the user through bugzilla account creation, key generation, asking what versions/apps they want to work on and downloading the proper source, etc * Link on the desktop to a bugzilla query for "good first bugs" * A graphical IRC client (InstantBird?) already configured to connect to irc.mozilla.org (specific channels too), with a link on the desktop * Any and all development utilities already installed (Mercurial, gcc, etc) * Links on the desktop to generate assorted builds (opt/debug/clobber/etc) from the preloaded source * Any and all utilities installed for running local test suites, already set up and configured * A link on the desktop to run test suites against the last local build * A link on the desktop with a wizard that will create a patch from the current source tree and (optionally) upload it to a bug * A status notification popup that informs the user if the source they are working on is out of date (how? they've changed a file that changed locally that changed in the tree?) and suggests they update their repository (with an easy way to do so) I'm sure there are tools (like http://www.rpath.org/ui) that can make creating this fairly easy. (I'm not sure about the correct place for this bug, please free to bounce to another component)
This sounds like a great idea but I have no clue where it belongs in Bugzilla. Pretty sure Documentation Requests isn't the right spot...
Component: Documentation Requests → Engagement
QA Contact: doc-request → engagement
I'd suggest updating users to beta milestones instead of the very latest mozilla-central, as that can theoretically still be in a funky state at any given time... or at least making that the default.
OS: Mac OS X → Linux
Hardware: x86 → All
We do have a list of current Reference Platforms here: <https://wiki.mozilla.org/ReferencePlatforms> These are mostly for running unit tests, so they may not be too relevant here, but I thought I'd mention it anyway.
Have you considered that a VM image may not be necessary here? We could have a XUL wizard that takes the user through downloading from a selected repository, setting up keys, optionally setting up MQ, choose editors, etc. This would mean that users could install any version of Linux that they want inside or outside a VM, install the wizard, run it and set everything up. If we are careful about the way this is done the wizard driven approach could be extremely informative to new contributors.
Component: Engagement → Build Config
Product: Mozilla Developer Network → Firefox
QA Contact: engagement → build.config
I don't pretend to know where this belongs, but Build Config is not the right place.
Component: Build Config → Engagement
Product: Firefox → Mozilla Developer Network
QA Contact: build.config → engagement
Component: Engagement → Contributor Engagement
Product: Mozilla Developer Network → Mozilla Communities
QA Contact: engagement → contributer-engagement
WebDev folks have been using Vagrant to make development VMs lately. rhelmer has one for Socorro, for example: https://github.com/rhelmer/socorro-vagrant The beauty of Vagrant is that you take a base image (say, Ubuntu), and then write Puppet manifests to configure the system the way you want. Then people who want to use your VM can more or less do a "vagrant up" and have it created locally. We could also run those steps on a regular basis and provide the VM image for download.
I've been working on a vagrant environment (https://github.com/jdm/foxinabox), but the problem is that the lucid box I got working includes a version of gcc that builds a broken Firefox, and the 11.04 box I tried didn't have puppet support for some reason. It looks like there's actually a new one that includes puppet, so I think I'll give that a shot.
Moved to Marketing General component, following a clean up of Mozilla Communities product
Component: Contributor Engagement → General
Product: Mozilla Communities → Marketing
No one from marketing is going to be building a VM. Moving to something more engineering focused.
Product: Marketing → Core
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.