GIMP 2.10 blockers and the road to 3.0

During WilberWeek 2017 in Barcelona, the GEGL/GIMP team discussed further development plans.

What’s Blocking The 2.10 Release

Deprecation of libgimp API. Some functions in libgimp need to be deprecated, and capable replacements need to be introduced. We started this shortly before WilberWeek, a lot more work needs to be done.

Introduction of the linear workflow. Currently GIMP has a few loose ends with regards to linear pixel data workflow introduced by Michael Natterer and Øyvind Kolås. The Linear switch in the histogram dialog is more of a prototype and needs a better implementation. Both the Curve and the Levels tools have to be adjusted to work on linear data and need a simple way to switch between linear/gamma-corrected modes. And there’s more work to be done here.

Rework of the layer modes. Michael and Øyvind introduced significant changes to how layer modes are stored in XCF. We now have legacy modes (from GIMP 2.8 and earlier), gamma-corrected modes and linear modes. We have a prototype UI to switch between these sets, but we need a more solid implementation that we’d be happy to ship in 2.10. And there’s more internal work to do.

Icon and UI themes. With dark themes, insensitive menu items are brighter than sensitive menu items. The problem may lie with the GTK+ pixbuf engine. We need to investigate that further. The new symbolic icon theme has design issues and is incomplete. Our current stance is that we may likely revert to color icons and a light theme as a default one (though we will still release symbolic icons and dark themes as alternatives settable in Preferences), unless dedicated designers step up to complete themes and icons.

Color management. While most of GIMP is now color-managed, the big missing bit is complete implementation of color management for GEGL-based filters. Currently it’s slow and clutters the UI. We need to fix that.

Warp Transform tool. The tool works well enough for small images, but lags on larger ones. We need to make it faster.

The usual bugfix routine. Currently, we have ca. 60 bug reports with the 2.10 milestone. Some of them are not essential and can be safely reassigned to the next milestone, but some definitey need our attention.

GTK+3 Port May Prove to Be A Bigger Change Than Expected

We have barely touched the ‘gtk3-port’ branch since 2012, while most of GIMP’s source code is actually related to UI.

The GTK+3 port compiles and appears to work at least for some users. However we need to sit down and do a complete code audit to figure out, how much work needs to be done to finish the port. We can’t provide any completion estimations at this time.

Depending on how much time this takes, we may end up switching to GTK+4 (we do like some aspects of the GTK+ Scene Graph Kit). This will be decided upon in due time.

Relaxing The No-New-Features Policy

We pride ourselves at releasing software that is very stable, although not state-of-the-art fast. This is because for stable releases, we have a policy of not introducing new features to keep the releases as bug-free as possible. Yet this policy proved a blocker for 2.10 since we have too many incomplete features, started by contributors, promising, yet not in release-shape.

We decided that these features should be disabled in 2.10, but can be added later in the stable branch, if they reach the stable state. This way, we don’t block exciting new features arrival for years, while still being able to ship regular releases. This would make our blocker list much smaller, and we could work in smaller steps.

Therefore if the GTK+3 port proves to be too long of a journey, we will start adding new features to 2.10 or launch a 2.11.x/2.12 series. This is too early to talk about it, but we think we need to be transparent about it.

How You Can Contribute

One of the reasons development of GIMP isn’t moving as fast as we’d like to is that we are stuck with completing v2.10, and we have a mostly featureless v3.0 ahead of us. We realize that it doesn’t motivate new developers to join and work on new features, but there is no easy solution. 2.10 has to be released, and the GTK+3 port has to be done.

However we see some ways to help contributors making GIMP better without waiting for the opening of the 3.1/3.2 series. One of the most common questions we hear is how to find bugs that are easy to fix to get started with hacking on GIMP. To amend that, we are tagging such bug reports as ‘newcomers‘, following recommendations of the GNOME Newcomers Initiative. You are welcome to come on IRC to discuss patches directly with the GIMP team. Jehan is also available for questions as the mentor for newcomers, if you feel lost.

If you do not write code, we shall soon be releasing Flatpak builds of GIMP, so you can help testing and providing feedback. This is currently in works by Jehan Pagès.

We shall post a complete report on WilberWeek 2017 once the event is over.