[webkit-dev] Build system update

Dimitri Glazkov dglazkov at chromium.org
Thu Mar 24 09:24:06 PDT 2011


First, let me warm the tone of this thread a bit with an earnest
salute to Adam for trying to solve the problem by actually doing
_something_, rather than talking about it, as we've done for years
now. My own contributions to the matter are small and insignificant in
comparison.

To recall, we do have a real and present problem. Adding files to the
all the build systems (and _always_ missing at least one) sucks balls.
Needing to use XCode to add new files to WebKit is silly. On the other
hand, we have an otherwise well-established and rather smooth workflow
and we don't want to give that up, either.

With the gyp conversion at this stage, we now have a possible solution
to this problem. Given that there aren't any other viable alternatives
in the present, please consider the most productive way of
contributing: filing well-formulated bugs, blocking bug 55018
(https://bugs.webkit.org/showdependencytree.cgi?id=55018&hide_resolved=1).
We can then discuss these specific problems and adjust the shape of
the solution accordingly.

:DG<

On Thu, Mar 24, 2011 at 1:30 AM, Maciej Stachowiak <mjs at apple.com> wrote:
>
> On Mar 24, 2011, at 12:28 AM, Adam Barth wrote:
>
>> On Wed, Mar 23, 2011 at 8:46 PM, Maciej Stachowiak <mjs at apple.com> wrote:
>>> On Mar 23, 2011, at 3:33 AM, Adam Barth wrote:
>>>> From my perspective, approach (2) is more desirable than checking in
>>>> generated project files because approach (2) encapsulates
>>>> Apple-internal build process to Apple folks, more specifically to the
>>>> Apple folks who interact with the Apple-internal build system.
>>>> Checking in generated project files, on the other hand, imposes a
>>>> maintenance burden on all WebKit contributors.
>>>
>>> I believe Apple submissions generally happen with greater frequency than the rate at which new files are added to the project. Furthermore: When files are added to the project, the patch submitted must already run the tool to regenerate projects, and is already going to submit a patch, so the maintenance burden of the Xcode projects being checked in is low. But having to regenerate project files and then check them in on a branch adds extra steps, doing things that are not done in the normal course of development, and therefore may have bitrotted.
>>
>> Thanks, that's helpful information.  Looking at
>> <http://trac.webkit.org/log/trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj>,
>> it looks like files are added to the project on the order of once a
>> day.
>
> I slightly underestimated how often files are added to the project (no wonder our build has gotten so slow!), but the rate is similar.
>
> (Side note: it looks like 382 files have been added to the WebCore build over the past year, a ~25% growth rate - if this rate continues, we are in big trouble.)
>
>>
>>> I don't think you are going to get Apple folks enthusiastic about switching to a build system that creates significantly more work for us, on the basis that it saves everyone else a small amount of work. For that matter, slowing down the pace of Apple engineers' development would be a bad thing for the project overall, not just for Apple.
>>
>> I certainly have no desire to slow down the pace of development for
>> anyone.  My overarching goal here is to increase developer
>> productivity for everyone by removing the need to learn and correctly
>> modify N build systems just to add, remove, or move a file.
>>
>> From this discussion, it sounds like folks are generally comfortable
>> with replacing the existing xcodeproj files with ones generated by
>> GYP.  Before taking that step, I'm going to spend some more time
>> polishing the GYP-generated xcodeproj files, hopefully addressing some
>> of Mark's concerns.  (I'm also told there are some scheduling issues,
>> which I'm happy to accomodate.)
>>
>> I'm slightly skeptical that checking in generated files will scale as
>> we unify more of the build systems, but we can cross that bridge when
>> we come to it.
>
> Other ports probably do not have so many strange requirements driven by an external build system, so I'm not sure it will be as necessary. That being said the average WebKit developer updates or builds much more often than he or she changes a project file, so it may be the right tradeoff to save people the most total time.
>
> Regards,
> Maciej
>
> _______________________________________________
> webkit-dev mailing list
> webkit-dev at lists.webkit.org
> http://lists.webkit.org/mailman/listinfo.cgi/webkit-dev
>


More information about the webkit-dev mailing list