A simple, clean, beautiful view of the web

Development Resources

Epiphany Technology Preview

Epiphany Technology Preview is the recommended way for developers to run Epiphany. It is, of course, our equivalent to Safari Technology Preview. Unlike Safari TP, where both Safari and WebKit are updated once every other week, for us Epiphany is updated nightly, while WebKit is updated on a less-regular (usually monthly) basis.

Development Tips

There are must-read tips for newcomers in the HACKING file at the toplevel of the source tree.

Getting Involved

This is a step-by-step guide for getting involved with the Epiphany development. If you are new to GNOME development and need some guidance, make sure to also visit the Newcomers page.

Step 1: Join #epiphany channel on irc.gnome.org

This is where people talk about Epiphany and where you can ask questions when you need to find out how to do something or want to decide what to work on next. The etiquette of IRC is such that you don't need to say "hi" when you join and you can lurk in the channel for a while until you have a specific question or want to share your view in a discussion. So just joining a channel is pretty non-committal.

Step 2: Building Epiphany the Easy Way

The recommended way of building and testing Epiphany is to use JHBuild. Follow our JHBuild introduction to learn how to build a GNOME application. Simply replace the demo application on that page with 'epiphany'. For example, once you have JHBuild installed and passed the sanity check:

$ jhbuild sysdeps --install epiphany
$ jhbuild build epiphany
$ jhbuild run epiphany

Keep in mind that there are many dependencies and some of them are quite large (like WebKit), so the entire process can take a couple hours.

Once you have built Epiphany the first time, you'll generally want to rebuild without building all dependencies again or running git pull:

$ jhbuild buildone -n epiphany

Step 3: Bugzilla

If you'd like to report a bug or a feature request, use the GNOME Bugzilla tracker.

Fixing bugs in WebKit can be difficult, so newcomers are encouraged to start by working on bugs with the GTK+ user interface around the web view instead. We have a list of easy newcomer bugs to get started on. If you run into trouble or need help getting started, ask for help on #epiphany or epiphany-list.

Step 4: Contact

In addition to IRC, there are other ways to keep up with the project, such as the mailing list, Bugzilla updates, and commit updates. You can browse or subscribe to them as you decide on your level of involvement in the project. Beyond the Epiphany project, Planet GNOME is an aggregator of blogs of people involved with GNOME in general and is a good place to find out what people are working on and what other projects are out there.

Developing WebKit with Epiphany

Newcomers should try to avoid bugs that require making changes in WebKit. Once you've contributed a few easier patches to Epiphany and are ready to start making code changes in WebKit, then your development setup becomes a bit more complicated. You will need to build WebKit from trunk, which is not available in GNOME JHBuild as it is very unstable and would cause problems for the vast majority of GNOME developers who never modify WebKit.

  • Build Epiphany using JHBuild and skipping WebKit:

$ jhbuild build -s WebKit epiphany
  • This is expected to fail, as Epiphany is not going to be able to compile without WebKit, but we will compile it in the next point.

  • Download WebKit. Compile and install to your JHBuild installation prefix. If you kept the default JHBuild configuration, that would look like this:

$ git clone git://git.webkit.org/WebKit.git WebKit
$ mkdir -p WebKit/WebKitBuild/Release
$ cd WebKit/WebKitBuild/Release
$ jhbuild run cmake -DPORT=GTK -DDEVELOPER_MODE=ON -DCMAKE_INSTALL_PREFIX=$HOME/jhbuild/install/ -DCMAKE_INSTALL_LIBDIR=lib -GNinja ../..
$ jhbuild run ninja
$ jhbuild run cmake -P cmake_install.cmake

You may need to install ninja (which is like 'make', but faster).

  • Then you can test Epiphany with the last changes in WebKit:

$ jhbuild buildone -n epiphany
$ jhbuild run epiphany

Apps/Web/Development (last edited 2018-08-04 22:56:15 by MichaelCatanzaro)