On Fri, Aug 16, 2013 at 2:43 AM, Andreas Gal <andreas....@gmail.com> wrote:

> I would like to propose the opposite approach:
>
> - Remove all conditional feature configuration from configure. WebRTC et
> al are always on. Features should be disabled dynamically (prefs), if at
> all.
> - Reduce configure settings to choice of OS and release or developer.
> - Require triple super-reviews (hand signed, in blood) for any changes to
> configure.
> - Make parts of the code base more modular and avoid super include files
> cross modules (hello LayoutUtils.h).
>

I would much rather we try (a milder version of) what Andreas suggests
before we start disabling shipping features by default in developer builds.
If we had closer to 100% test coverage then turning things off by default
might maybe make sense. But, as it is, it is important that any manual
testing we do is testing something as close as possible to what we ship.

I do think we could benefit from a much simpler build system with fewer
options that result in us modifying configure.in and other
rebuild-the-world dependencies much less often. I don't think we should
completely eliminate conditionals in our build system. Like jlebar, I have
found there are cases where we can eliminate a lot of dead code on a
per-platform basis. However, we should be able to do said dead-code-removal
conditional compilation without modifying configure.in. Maybe that is as
simple as allowing support for a mozconfig-like addendum mechanism for
configure.in that lets somebody enable off-by-default features in their
local build without first needing to modify configure.in in a way that
would affect everybody else's builds.

If I think back to some of my recent changes to configure.in, they were
often changes that only affected one or two modules, and that logic could
have been done in a whatever.mk file or moz.build file that was included by
the affected modules instead of modifying configure.in. The only reason I
modified configure.in is because that's how we've always done it. For my
next such change, I will try to localize the conditional logic to my module
to avoid touching configure.in and whatever/confvars.sh. Perhaps others can
try the same experiment.

Cheers,
Brian
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to