On 8/27/2014 6:52 AM, Benjamin Smedberg wrote:
> On 8/27/14, 9:47 AM, Gregory Szorc wrote:
>>
>> I interpret this this use case as building a related set of object
>> files for the purpose of quick/imprecise validation of changes to a
>> specific component. So what you really want is to build specific
>> "modules." Is that accurate?
> That sounds like a complex way to phrase it: how about "I changed some
> files in toolkit/locales and toolkit/modules and I'm pretty sure there
> aren't external dependencies, so I just want to rebuild toolkit/* to see
> those changes".
> 
> I've done something similar with "mach build browser/experiments && mach
> build browser/locales && mach build toolkit/modules", although I'd
> really love that to just be "mach build browser/experiments
> browser/locales toolkit/modules".

There is additional cognitive load required to map a logical feature
into a set of directories. I would prefer this burden go away, as it
only breeds confusion and a higher barrier to contributing (new
contributors don't know these shortcuts so they sit through painfully
long full builds).

I would support additions to moz.build that defined high-level "targets"
that mapped to various directories/targets. i.e. we would move aspects
of dumbmake into the build system itself, rather than stapled on top of
|mach build|. The purist in me doesn't like this - I'd much prefer to
have a full DAG that builds instantaneously. But I'm pragmatic about the
needs of developers and view |mach build <feature>| as a step in the
right direction.

Also, for the JS-centric use case you mentioned, if we invested in those
parts of the build system, we could probably get full tree builds with
no binary changes to under 10s. e.g. |mach build nonbinaries|. At that
point, I argue |mach build <feature>| is only marginally useful for
non-binaries people and that partial tree build is really only useful
for the C/C++/IDL developers so they don't have to sit through many
minutes of compiling after they change a widely used header file.
However, the non-binaries part of the build hasn't received much love
and it's unclear who will work on it. Since we'd have to build |mach
build <feature>| for Gecko developers, I guess we could piggyback
non-binaries parts onto it for the time being.
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform

Reply via email to