What’s New for Developers and System Administrators

GNOME 3.24 includes many new features and improvements for those working with GNOME technologies. Read on for more details!

Builder

Builder has made significant progress for 3.24, with a number of major new features. This includes enhanced support for a range of build systems, including Flatpak, CMake, Meson and Rust. This has been enabled by a new build pipeline architecture, which allows different build systems to be more easily supported.

Clicking a few buttons is all it takes to set up a development environment in 3.24, thanks to the ability to install and update SDKs and toolchains directly from Builder (either for Flatpak or Rust).

Valgrind integration makes it easy to profile your project. If Valgrind is available (as it always is with a Flatpak SDK), it is available from the run menu — just select it to run your project with it.

Flatpak support has had a significant amount of polish since last release, making it far more reliable and thoroughly integrated. This means it is now possible to seamlessly clone and build many GNOME applications using Flatpak, all from within Builder. This is a major step forward for the GNOME developer experience, and avoids the need to build a fragile dependency chain in order to contribute.

Flatpak

While Flatpak is independent of the GNOME project, GNOME is actively promoting its use as a part of its developer experience. Since the 3.22 release, Flatpak has made significant progress. There have been a total of eight Flatpak releases since then, which have introduced a host of major new features and improvements.

  • Applications can now specify where their runtime can be downloaded from. This allows Flatpak to automatically download the required runtime for an application, if it isn’t installed.

  • A new 0.8.0 stable series has been introduced, which provides a path for long-term support distributions to include Flatpak.

  • The command line interface has been reworked and improved.

  • Flatpak now supports downloading URIs as a part of application installation. This allows applications like Spotify and Skype to be supported.

  • OpenGL driver support allows applications to use proprietary drivers, if they are already installed on the host system.

  • Support for the OCI standard has been updated to the latest version, and support has been added to directly install Flatpak applications from OCI images.

In addition, there has been a great many smaller improvements and bug fixes. The Flatpak releases page provides more details.

Progress Towards GTK+ 4

GTK+ development has been focused on the next major GTK+ release, GTK+ 4. This development branch is not currently ready for use. However, new features have started to land, including a recorder feature in GTK+ Inspector and support for the CSS filter specification. Other changes include cleanup of deprecated APIs and the creation of a new Vulkan renderer.

The stable 3.22 branch has continued to receive bug fixes this development cycle. These can be found in the GTK+ 3.22.10 release, which forms part of GNOME 3.24.

Other Changes

Other changes for developers in GNOME 3.24 include:

  • gspell, the spell-checking library for GTK+, now supports spell-checking within GtkEntry widgets. This work was supported by a successful fundraiser run by gspell developer Sébastien Wilmet. Thanks to everyone who supported this effort!

  • The performance of image shrinking in GdkPixbuf has been improved, thanks to a long-standing bug being resolved.

  • A number of potential security issues have been eliminated in GdkPixbuf.

  • GJS has been updated to use SpiderMonkey 38. This provides a more modern JavaScript implementation with a number of ES6 features. Highlights include promises, iterators, symbols, template strings, generators, method shorthand syntax, as well as many new standard library methods. See the GJS news file for more details.

  • libgd is a convenience library that provides a set of composite template widgets that can be used to build applications. For 3.24, the “content view” template, which presents a grid of items, has been updated to use GtkFlowBox rather than GtkIconView. This delivers dynamic resizing of items to ensure even grid layouts and efficient use of space.

  • In addition to allowing you to cook tasty treats from your favorite GNOME hackers, the new Recipes application also serves as a useful example for a fully sandboxed Flatpak application using portals.