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 to run Epiphany if you want to test the next version of Epiphany in advance and report bugs. 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 Matrix 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. After you install and configure JHBuild, you will need to build WebKit from git, which is not available in GNOME JHBuild as it is unstable and would cause problems for the vast majority of GNOME developers who never modify WebKit.

$ jhbuild build -s WebKit epiphany

$ git clone https://github.com/WebKit/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).

$ jhbuild buildone -n epiphany
$ jhbuild run epiphany

Apps/Web/Development (last edited 2023-09-01 20:13:13 by MichaelCatanzaro)