On February 3rd, Carlos García Campos came to MSWL Case Studies II to talk about Webkit.
He works in Igalia on this multiplatform web engine, designed in a modular way, to be used in many different applications that require to understand and show web content: web browsers as Safari, Chrome or the default browser of Android, but also it is ported to GTK+ and Qt so it may be used in email clients, RSS readers, instant messengers and other kind of applications.
Webkit was originally developed by Apple as a fork of KHTML + KJS (both free software projects from KDE). Webkit is free software and it is delivered with permissive licenses so it can be used in privative applications as the Apple end-user stuff. Webkit is currently developed by a community including people of Apple, Igalia, Google, and other (also individuals, volunteers).
One thing that called my attention of this project is the whole infrastructure created around the development, to support it. It is a kind of macro forge, but not using a specific forge but an aggregation of services:
- Website of the project (normal) webkit.org, but also websites of the different ports (for example http://webkitgtk.org/)
- Track for the wiki http://trac.webkit.org/wiki, and browse the code online, but Bugzilla for the Issue tracker https://bugs.webkit.org/
- A planet of Blogs: http://planet.webkit.org/
- They were using SVN for the code, but they are migrating to Git.
- A buildbot: http://build.webkit.org/
- Mailman for mailing lists, and channels in Freenode for IRC
In addition to this, they developed a bunch of scripts and tools to automate the development, and for quality assurance. For example, a script to check your code to make sure your changes follow WebKit coding style rules (check-webkit-style script), or the prepare-ChangeLog script. They also tuned Bugzilla to include fields for asking for revision to any submitted patch, and they have a Commit Queue for approved patches to be committed automatically. In the IRC, they have asheriffbot alerting the developer if her pacth breaks the build system!
And all these small big tools are libre software too, so they can be used in other projects, improved, or integrated in upstreams as Bugzilla, Trac, or different software forges.