On 3/12/2014 5:57 PM, Mike Hommey wrote:
On Tue, Mar 11, 2014 at 08:02:31AM -0700, 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 :)
Here's a thought: how about just making things work with plain msys2 and
not require MozillaBuild at all anymore? We don't have a MozillaBuild
for mac, we just rely on homebrew or whatever else. Why not just aim
for the same?

Let me provide a bit of history/context for how Mozillabuild came to be in the first place!

Back when I started at Mozilla, the process of building on Windows was far worse. We used cygwin, and the process of getting everything working was something like this:

* Install visual studio
* Install cygwin
* In the cygwin GUI package manager, select a list of packages to install based on a list. * The cygwin maintainers changed the package list frequently enough that our documented list of package names was always wrong. * You had to configure the Windows -> cygwin path mappings by hand to deal with emulated unix permission handling and case sensitivity because the defaults weren't correct. * You had to create a batch file by hand to load the visual studio environment variables and then load the cygwin shell.
* You had to configure an editor (for commit messages and whatnot) by hand.
* Setup put all sorts of configuration in the registry which wasn't undone if you tried to uninstall, so people frequently ended up in situations where they had a broken system and couldn't figure out how to fix it.

I don't oppose using more modern system to do this, but I do want to express the following items as being really important:

* the number of steps from "download from an MDN link" to "working shell" should be as small as possible. Contributors who are used to working in Windows are already at a disadvantage having to learn how to use a unix-style shell, and we shouldn't make them responsible for installing the right list of packages. * It should include sensible defaults so that mercurial, git, and commit-message editors all work out of the box * Something early in the process should be able to check whether you have a working setup including a working compiler and whatever D3D/DX headers we need (maybe mach bootstrap can serve this role).
* Uninstall should work correctly and not leave residue.

--BDS

_______________________________________________
dev-builds mailing list
dev-builds@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-builds

Reply via email to