epiphany-logo.png

GNOME Web

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 Technology Preview, where both Safari and WebKit are updated once every second 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.md 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:gnome.org on Matrix

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

If you don't need to make any changes to WebKit, then the simplest way to build Epiphany is to use GNOME Builder. When you create a new project for Epiphany, Builder should automatically recognize the org.gnome.Epiphany.json file in the toplevel of the source tree and use it to build Epiphany with flatpak-builder.

Step 3: Developing Dependencies with Epiphany

Newcomers should try to avoid bugs that require making changes in WebKit or other dependencies of Epiphany. Once you've contributed a few easier patches to Epiphany and are ready to start making code changes in WebKit or other dependencies, then your development setup becomes a bit more complicated. You are welcome to use whatever method you prefer for development, but the recommended method is to use JHBuild. Follow the JHBuild introduction to learn how to use JHBuild. 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/GNOME
$ cd WebKit/WebKitBuild/GNOME
$ jhbuild run cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -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 2021-06-04 15:13:52 by MichaelCatanzaro)