On 3/11/14, 8:02 AM, Ryan VanderMeulen wrote:
As some of you on this list are already aware of, I have recently been toying 
with the idea of overhauling MozillaBuild. I'm sending this message out to 
flesh out the plan more and collect some early feedback before moving forward 
formally with this.

As I see it, the current MozillaBuild has a few problems:
* High barrier of entry for new contributors due to requiring a specialized 
build setup (or a custom VM image) to package
* Difficulty updating core components due to being pinned to an extremely old 
revision of MSYS (version 1.0.11)
   - This leaves us unable to fix bugs like bug 703986 without jumping through 
hoops to do so
* Inability to ship small incremental updates (even an update to just Hg 
requires a full 80+MB release)
* Difficulty including git due to side-by-side MSYS versions

I think that the above issues are largely fixable, but difficult without a more 
extensive rebuild of MozillaBuild. Therefore, I would like to take this on as a 
Q2 project. The rewrite would be based around MSYS2 
(http://sourceforge.net/projects/msys2/), a more recent cygwin fork.

MSYS2 offers many nice improvements to the current MSYS:
* A built-in package manager (ported from Arch Linux - 
https://wiki.archlinux.org/index.php/pacman), enabling smaller updates of core 
components.
* Native builds of many core components included with MozillaBuild (or on the 
wish list), like Hg, git, python, etc. No more side-by-side installations, 
py2win, or other ugliness.
* Includes the mintty terminal, a very capable improvement over the native 
Windows command line.

In the end, I think the rebuilt MozillaBuild will end up being simpler than the 
current setup. Easier to package, easier to update, and easier to customize.

Let me know what you think :)

This all sounds fantastic. Thanks for taking this up!

I feel improving MozillaBuild is long overdue. I feel many developers (myself included) avoid developing Firefox on Windows because the development experience is horrible. The MozillaBuild environment is partly to blame (build speed being the other, but mozmake / GNU make 4 has changed the game). We really should have more developers developing Firefox on Windows because that's where our users are. I feel an overhauled MozillaBuild would be a terrific carrot to lure people over.

It isn't a shipping requirement, but I'd like to eventually roll Windows support into the in-tree bootstrapper. https://github.com/indygreg/mozilla-central/compare/master...windows-bootstrap contains some experimental work using a VBScript to bootstrap a Python environment from which we can do real bootstrap work. We should be able to easily plug msys2 package management into the mix.

The only major question I have is over the impact to release automation. I'm not sure to what degree they rely on MozillaBuild, if any. We want the build environments to remain as similar as possible to prevent surprises. It would be great if you could get a commitment from automation to transition to msys2 at or around the same time as MozillaBuild. IIRC they are talking about moving their Windows infra out of Mozilla data centers and into the cloud. So now would seem like the best time to approach them with this looming requirement.

I can't wait for this to happen.
_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to