What’s New for Developers and System Administrators

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

Builder

Builder, the GNOME integrated development environment (IDE), has made major advances in 3.26, with general improvements as well as new features. One of the most obvious changes in the new version is a redesigned editor interface. This makes it easier to open and switch between files, terminals and documentation, using either the header popover or the project sidebar. There have been a lot of user interface refinements as part of this work, including document headers which blend into the background.

With 3.26 it’s now possible to search for symbols throughout your project. Selecting a search result jumps to that location, so you can quickly navigate using only the keyboard. The presentation of search results has also been improved.

Builder includes a debugging feature for the first time in 3.26. This is an initial preview and is expected to mature in subsequent releases. The debugger allows running your project in debug mode and to step through to find the source of issues. It supports debugging Flatpak applications.

Contextual documentation popovers are another new feature for this release. To quickly look up documentation for the code that you’re working on, just hover the pointer over the function that you’re interested in or place the text cursor within the function and press F2 (or Shift+K in Vim mode).

There are many other improvements in Builder 3.26. These are just some of them:

  • You can now jump from a symbol to where it’s defined. To do this, open a context menu for the symbol and select Go to Definition. Alternatively, place the text cursor within the symbol and press Alt+. (in Vim mode the equivalent is g d).

  • Word completion now provides better suggestions. This can be activated using Ctrl+N (or Ctrl+P when in Vim mode).

  • SDKs are no longer automatically downloaded on metered connections, in order to save bandwidth.

  • The Todo plugin has been rewritten to be faster and use less memory.

  • It’s now possible to live preview Sphinx documentation as you edit it. To use this feature, select Open Preview from the document header.

  • Builder’s project templates now use Meson and allow specifying JavaScript as the language, so that they follow modern GNOME development practices.

  • Background operations are now displayed in the project popover and can be paused. This is used to communicate when source code is being indexed.

  • More preferences have been added, such as controls for autosave behavior.

For more information about how to make the most of Builder, see the documentation (which has also been improved for 3.26!)

Flatpak

Flatpak is the new technology for distributing and installing applications. While it’s independent of the GNOME project, Flatpak is an increasingly important part of GNOME’s developer experience, and is integrated throughout GNOME.

Major improvements have been seen in Flatpak since GNOME 3.24. Most development has been seen on the 0.9.x branch, which is well on its way to a 1.0 release. Enhancements that have been introduced in the last six months include:

  • Improved support for the Open Container Initiative (OCI) specification.

  • flatpak-builder has been separated into its own module.

  • Flatpak applications can now be used through accessibility frameworks.

  • It’s now possible to use input methods within Flatpak applications.

  • An experimental peer to peer installation method allows using dynamically available software sources, including removable media or resources on the local network.

  • Flatpak now supports a default language setting, which is used to ensure that the correct translations are installed for each application.

  • Improved progress reporting, particularly for download and installation progress.

  • Lots of improvements to the command line interface, including a new flatpak repo command, better presentation of results and smarter handling of .flatpakref files.

flatpak-builder, the tool for generating Flatpak applications, has been split out into its own module and has had a lot of improvements. These include:

  • Performance improvements which make building much faster.

  • It’s now possible to specify both a tag and commit ID for Git sources.

  • Manifests can specify SDK extensions to be installed for the application to build.

  • A new add-extension property makes it easier to create extension points.

  • --from-git=URL allows pulling the JSON manifest and related files directly from a Git repository.

More details can be found in the various Flatpak release notes.

Other Improvements

Other improvements in GNOME 3.26 include:

  • GLib Unicode support has been updated to 10.0.0.

  • The gtk3-icon-browser tool can now copy the icon name to the clipboard.

  • GTK+ has gained support for color emoji. New input hints (GTK_INPUT_HINT_EMOJI and GTK_INPUT_HINT_NO_EMOJI) are available and a new emoji picker can be enabled for text entry fields with the show-emoji-icon property.

  • libcloudproviders is a new library that allows cloud providers to integrate with GNOME’s file browsing experience. The library can be used to display cloud drives in the files sidebar, which is shown in the file chooser dialogs and in the Files application. Each cloud provider can display its status and can also specify a menu of options which users can access.

  • GJS has continued to make progress towards a more modern ES6 JavaScript, with its adoption of SpiderMonkey 52. Highlights include classes, async/wait and many new standard library methods. More details about this can be found in the NEWS file and Philip Chimento’s blog.

  • A full set of API documentation for writing applications in JavaScript is now available online.