[chromium-dev] WebKit Chromium Port Update Sep 29th

2009-09-29 Thread Yaar Schnitman
Hi,

As some of you probably noticed, fundamental changes are underway in how we
build and integrate webkit into chromium. Here is a status update and some
answers for frequently asked questions:

*Recent changes:*
1. Chromium now builds using gyp files living on the webkit.org tree
(WebCore.gyp  JavaScriptCore.gyp).
2. The Webkit Chromium Port has its own DEPS file, which lives on the
webkit.org tree too (third_party/WebKit/WebKit/chromium/DEPS). This DEPS
file includes a minimal set of dependencies that our port requires in order
to be independently built outside of a full chromium checkout.
3. The useful update-webkit and build-webkit scripts now allow a
--chromium argument which syncs and builds the chromium port with the help
of gclient and gyp.

*Next steps:*
1. An internal webkit chromium port try bot: Will help test webkit-only
patches. At first stage, it will test build failures (saving many of us the
need to manually test on 3 platforms), but later will also conduct chromium
port layout tests and api unit tests.
2. Upstreaming chromium's webkit api to webkit.org, which will further
reduce the need for 2-sides commits and blockage.
3. Upstreaming chromium's test_shell and layout tests, allowing us to detect
webkit-chromium breakage before we integrate into chromium.

*FAQs:*
Q: Which dependencies does webkit use when built into chromium?
A: When built independently, webkit will link with revisions as specified in
the upstream DEPS file. When built as part of chromium, it will link with
the revisions specified in the downstream DEPS.

Q: When I change src/DEPS, do I also have to change upstream
third_party/WebKit/WebKit/chromium/DEPS?
A: It depends why you update src/DEPS. Theoretically, you should only update
the upstream DEPS if the fix to the dependency actually changes the way
webkit interacts with it, or fixes a bug in the webkit layout tests.
However, if the change is only relevant to chromium, than webkit's DEPS need
not be updated. If that change breaks webkit, we will surely find it when we
build chromium.

Q: Why don't we control webkit's dependencies in a single place?
A: Most of the dependencies that webkit uses are also used directly by
chromium. Therefore, we will often find ourselves rolling webkit revisions
just because chromium needs a third party revision update. We have been
there once, it was painful, we don't want to go there again. As explained
above, we don't mind upstream webkit builds using older deps.

Q: Wouldn't dependencies be fetched twice because they are specified in both
upstream and downstream DEPS?
A: No, because when synched as part of a full chromium checkout, all DEPS
files under third_party are ignored. We only want the port's DEPS fetched on
a standalone webkit checkout.

Q: We already have layout try bots. Why also have a webkit chromium port try
bots?
A: The existing layout try bot builds webkit along with the rest of
chromium. We want to be able to try an independent upstream-only build and
eventually contribute our try system to webkit.org so all webkit developers
can use it. This will help protect chromium from disruptive upstream
changes.

Q: Wait, do we have .gyp and DEPS files on the webkit tree?
A: Yes. And we believe other webkit ports could follow our example and use
gclient and gyp too.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] WebKit Chromium Port

2009-09-08 Thread Yaar Schnitman
Hi all,

I'm working on the Webkit Chromium Port, an attempt at upstreaming a
chromium-specific build target into the webkit tree. This is a large project
that involves many steps (see: http://trac.webkit.org/wiki/Chromium).
I plan to do the following:
1. Merge chromium's webkit/config.h.in into webkit's
WebKit/WebCore/config.h. These files have been forked in the past, and now
should be merged so they can be shared by both the chromium build and the
chromium port build processes.

2. Extract the ncpe, wtf and webcore targets out of chromium's
webkit/webkit.gyp and upstream them into gyp/gypi files that will be placed
in the webkit tree, so they can be shared by both chromium and the chromium
port. A side benefit will be that these configuration files will live closer
to the source files they control, which will allow easier code management
and enable atomic commits.

3. Create a new directory WebKit/WebKit/chromium, which will have the
chromium port's .gyp file and a DEPS file with minimal dependencies. A build
bot will use gclient to fetch the dependencies and then build the webkit
chromium port.

Throughout this process, I plan to eliminate unnecessary dependencies,
contributing to the effort of making our builds faster.

Suggestions, concerns and warnings will be appreciated.

Yaar

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---