---
title: "Baseline"
description: "The validated Ubuntu 26.04 LTS + GNOME reference baseline: GNOME 50, GTK 4.22, libadwaita 1.9, Qt 6.10, and the packaging toolchain the examples are tested against. The full target matrix is in Platform Targets."
url: "https://digitalesich.github.io/linux-desktop-guide/reference/baseline/"
section: "Reference"
---

# Baseline

> The validated Ubuntu 26.04 LTS + GNOME reference baseline: GNOME 50, GTK 4.22, libadwaita 1.9, Qt 6.10, and the packaging toolchain the examples are tested against. The full target matrix is in Platform Targets.

This page is the validated **Ubuntu 26.04 LTS + GNOME** reference baseline. It is one target in a larger matrix, not the whole guide. The other targets and their roles are documented in [Platform Targets](/linux-desktop-guide/targets/).

The values are stored in `src/data/baseline.json`. The page imports that file, and the local documentation MCP server (`docs`) reads the same data.

## Validated baseline

| Area | Validated value |
| --- | --- |
| Ubuntu | 26.04 LTS (Resolute Raccoon) |
| Display session | Wayland |
| GNOME | 50 |
| GTK | 4.22 |
| libadwaita | 1.9 |
| Qt | 6.10.2 |
| KDE Frameworks | 6.24 |
| KDE Plasma | 6.6 |
| GNOME Flatpak runtime | `org.gnome.Platform//50` |
| KDE Flatpak runtime | `org.kde.Platform//6.10` |
| Snap base | `core26` |
| Flatpak | 1.16.6 |
| snapd | 2.78 |
| Python | 3.14 |
| GCC | 15.2 |
| LLVM/Clang | 21 |
| Rust | 1.93.1 |
| Go | 1.26 |
| .NET | 10 |
| Java | 25 |
| Zig | 0.15.2 |
| Astro | 7.4.8 |
| Starlight | 0.42.10 |
| Node.js | 24 |

## Ubuntu support window

| Support | Ends |
| --- | --- |
| Standard support | May 2031 |
| Ubuntu Pro | May 2036 |
| Legacy add-on | May 2041 |

Ubuntu Pro is optional for app development. The baseline records the support window so readers can judge whether a release is a reasonable target; it does not make Pro a requirement.

## Baseline is not minimum support

The baseline is the **tested reference environment**. It is not a claim that older releases are unsupported, and it is not a promise that every combination of components works together.

-   Use the baseline when you need the current, validated target for examples, screenshots, and recommendations.
-   Define a separate minimum-version policy when you ship a library or a package for an older LTS.
-   Use compile-time version checks (`GTK_CHECK_VERSION`, `QT_VERSION_CHECK`) or Rust feature flags, and guard newer APIs only when you genuinely support older releases.
-   A component can be newer than the baseline in a Flatpak runtime; record that difference in the manifest, not by rewriting this page.

## Review

-   Validated on: November 10, 2026
-   Next review due: May 10, 2027

The review date is a trigger, not a guarantee. When it passes, open an issue for the review, re-check the primary sources below, update `src/data/baseline.json`, and run the verification steps. The review is manual until a scheduled freshness check is in place.

## Local validation

On Ubuntu 26.04.1, the following were checked directly while preparing this baseline:

-   `gnome-shell --version` → GNOME Shell 50.1
-   `apt-cache policy libgtk-4-1 libadwaita-1-0` → GTK 4.22.4, libadwaita 1.9.1
-   `apt-cache policy qt6-base-dev` → Qt 6.10.2
-   `apt-cache policy dotnet10 openjdk-25-jdk zig` → dotnet10, openjdk-25-jdk, and zig are available
-   `snap info core26` → core26 is available in the Snap Store
-   `flatpak --version` → Flatpak 1.16.6
-   `snap --version` → snapd 2.78
-   `desktop-file-validate` and `appstreamcli validate --no-net` on the first-app examples → pass

These checks supplement the upstream sources; they do not replace them. Re-run the commands when the baseline is reviewed.

## Primary sources

-   [Ubuntu 26.04 LTS release notes](https://documentation.ubuntu.com/release-notes/26.04/)
-   [Ubuntu Desktop documentation](https://documentation.ubuntu.com/desktop/en/latest/)
-   [Ubuntu for Developers](https://ubuntu.com/developers/docs/)
-   [GNOME 50 release notes](https://release.gnome.org/50/)
-   [GTK 4 documentation](https://docs.gtk.org/gtk4/)
-   [libadwaita documentation](https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/)
-   [Qt 6.10 release](https://www.qt.io/blog/qt-6.10-released)
-   [Qt 6 documentation](https://doc.qt.io/qt-6/)
-   [KDE Frameworks 6.24](https://kde.org/announcements/frameworks/6/6.24.0/)
-   [KDE Plasma 6.6](https://kde.org/announcements/plasma/6/6.6.0/)
-   [Flatpak documentation](https://docs.flatpak.org/)
-   [Flathub requirements](https://docs.flathub.org/docs/for-app-authors/requirements)
-   [Snap documentation](https://snapcraft.io/docs/)
-   [Snapcraft bases](https://ubuntu.com/docs/snapcraft/stable/reference/bases/)
-   [Snapcraft core24 to core26](https://ubuntu.com/docs/snapcraft/stable/how-to/change-bases/change-from-core24-to-core26/)

## Updating the baseline

1.  Update `src/data/baseline.json`.
2.  Move `validated_on` to the review date and set `review_due` six months later.
3.  Run `npm run check:baseline`.
4.  Run `npm run build` and check the pages that link here.
5.  Update the primary-source links if a source moved.
6.  Commit the change and note the upstream release in the commit message.

The update is a normal OpenSpec change. It should explain which upstream release triggered it and which pages were re-checked.

## See also

-   [Platform Targets](/linux-desktop-guide/targets/)
-   [How Targets Are Chosen](/linux-desktop-guide/targets/selection/)
-   [Ubuntu Platform](/linux-desktop-guide/platform/ubuntu/)
-   [Choose Your Stack](/linux-desktop-guide/start/choose-stack/)
-   [GTK & libadwaita](/linux-desktop-guide/engineering/gtk/)
-   [Qt & Kirigami](/linux-desktop-guide/engineering/qt/)
