Thanks for sharing this.

On Jan 30, 2013, at 1:28 PM, Eric Seidel <e...@webkit.org> wrote:

> I wish we only had one build system (it were easy to add/remove/move files).
> 
> I believe changes like http://trac.webkit.org/changeset/74849 are an 
> unhealthy sign for the project.  Adam is not the only person who has chosen 
> to empty files instead of removing them.  The pain of updating 8 build system 
> is so great, we jump through hoops to avoid it.  Which means it took us 
> months to move JavaScriptCore/wtf to WTF, and will take us years to kill 
> WebCore/platform.

+1

This is a hard problem.  It is a problem worth solving.

Do you have more thoughts on this, particularly since you know quite well how 
both Xcode and gyp work?

I suspect this is one of those things that it would be hard to achieve 
consensus on since there are so many stakeholders.  But it may be fruitful to 
have a "what if" discussion about what this might look like.

> 
> 
> I wish I felt like reviewers understood/trusted each other more.
> 
> I’ve worked at both Apple and Google.  The WebKit community is full of 
> brilliant engineers.  Yet I frequently feel a lack of trust in my (or others) 
> judgement, or witness hot-headed remarks on bugs, lists or IRC.  I don’t 
> think it’s that people don’t trust me after nearly 8 years (!?) on this 
> project, but rather that we forget, or fail to communicate trust among 
> ourselves.  Social problems are perhaps harder to solve for us technical 
> types, but I worry that for many of us it’s just become “us” and “them” and 
> we’ve stopped trying.
> 
> 
> I wish it were easy to work on feature branches.
> 
> We have no good solution for features.  For one-patch features, you do them 
> on your own.  For larger, you maybe use github or most likely you just land 
> on trunk behind a #define.  None of these have worked well.  Some of this is 
> the limits of SVN, but it should be trivial for someone to work on a new 
> feature a long time, w/o endangering trunk or having massive merge pain every 
> day.  Other projects can do this.  So should we.  This is both impeding 
> progress, and destabilizing trunk.

I've done this for JSC JIT optimization work before, and I think it worked 
quite well.  The pain of merging the branch back into trunk was bad, but the 
reward was that I had ~2 months of time where I didn't have to worry about 
breaking other people's junk.  Merging only took a week.  One week of pain in 
return for 2 months of bliss?  I'll take that.

I concur that we can do better on this.  I would especially love to see feature 
branching and merging follow a review process as if it were on trunk.  Creating 
a branch involves a bug and a review.  Patches that land on the branch are 
reviewed.  Merging is either reviewed or rubber stamped.

> 
> 
> I wish we didn’t have to worry about platforms we couldn’t test.
> 
> It can’t be the job of the core maintainers to care about all the peripheral 
> ports which contribute very little core code. Our code needs to be structured 
> in such a manner that its easy for the core to march forward, while letting 
> the ports catch up as they need to asynchronously.  Platform support code 
> shouldn’t even need to be in webkit.org!  Porting webkit.org’s platform 
> abstractions should be trivial, but core developers (which probably 90% of 
> them use only 2 ports Mac WK2 + Chromium Linux) shouldn’t need to worry about 
> keeping all ports working.

+1

> 
> 
> I wish that the tree always built and tested cleanly.
> 
> Other (much larger) projects than WebKit accomplish this.  Yet somehow Google 
> pays 2 full-time engineers to watch our bots and yet we fail.  I know other 
> companies do similar.  Automated rollouts is one solution.  Branched-based 
> development, or trybots are others.  But at the size and scale we’re at now, 
> every minute of a broken tree, is 100x or more minutes of potentially lost 
> developer productivity.

I actually think this just goes along with the territory.  Browser engines are 
hard.  Browser engines that achieve the configurability and portability of 
WebKit: even harder.

Maybe I'm naive but I think we're doing quite well on this front given the 
circumstances.  I also suspect that this problem ought to be diminished with 
your other suggestions, particularly having more branch-based development, and 
especially if there was a magical way to simplify building.

> 
> 
> I wish I felt like I could follow what was going on (and trust WebKit to 
> guard the web, instead of depending on Apple or Google).
> 
> We’re the leading browser engine, with hundreds of committers, any of whom 
> can add an API to 50% of internet browsers with a single commit.  I wish we 
> had a public process for feature/web-api review.  I wish I felt like both 
> major companies were willing participants in such.  (Google has an internal 
> process, but it sees limited use, in part because it’s powerless -- a ‘yes’ 
> from our process is not a ‘yes’ from WebKit.)  I want to feel like I can 
> better observe and participate in the development of our web-api (and trust 
> that it’s being done well!) without scanning every changeset just to be able 
> to comment post-facto.  (This is also reflected in the fact that the features 
> enabled by the major Apple or Google ports are wildly different, with 
> seemingly little rhyme or reason.)

This is made harder by the fact that a lot of the "API" is poorly specified to 
begin with, and the things we have to do to mold the API into a form where it 
doesn't break the web leads to dark and difficult to grok corners.  I think a 
lot of this goes with the territory and perhaps just being more cognizant of 
the implications of the things we do is the best solution.

> 
> 
> I wish WebCore was not trapped by Mac WebKit1’s legacy designs.
> 
> WebKit2 is obviously a step towards the future.  But until we can kill the 
> Widget tree, the insanely fragile loader complexity, and the limits imposed 
> by the least-common-denominator on classes like ResourceRequest, we’re still 
> trapped in the past. One of the things I’ve learned in working on Chromium, 
> is that we were wrong many years ago to fold our platform abstraction 
> (Qt-implementation) and khtml into one library.  In a sand-boxed 
> multi-process world, the rendering library is just a hunk of code running the 
> same on every platform.  And platform code has no place in our core engine 
> code (aka WebCore).
> 
> 
> I write less out of pain, and more out of hope for the future.  I believe all 
> of these are solvable problems, but I believe we need the will to solve them. 
>  Apple’s recent announcement of WebKit2 lockdown is clearly one attempt at 
> some of these.  But for the other 50% of WebKit developers who don’t work on 
> WebKit2, locking down WebCore is not a good solution.
> 
> I think we need to work together to bring about some of these dreams, for the 
> short and long term health of the WebKit project.
> 
> Thank you for listening.
> 
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to