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.
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
Section titled “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
Section titled “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
Section titled “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
Section titled “Review”- Validated on:
- Next review due:
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
Section titled “Local validation”On Ubuntu 26.04.1, the following were checked directly while preparing this baseline:
gnome-shell --version→ GNOME Shell 50.1apt-cache policy libgtk-4-1 libadwaita-1-0→ GTK 4.22.4, libadwaita 1.9.1apt-cache policy qt6-base-dev→ Qt 6.10.2apt-cache policy dotnet10 openjdk-25-jdk zig→ dotnet10, openjdk-25-jdk, and zig are availablesnap info core26→ core26 is available in the Snap Storeflatpak --version→ Flatpak 1.16.6snap --version→ snapd 2.78desktop-file-validateandappstreamcli validate --no-neton 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
Section titled “Primary sources”- Ubuntu 26.04 LTS release notes
- Ubuntu Desktop documentation
- Ubuntu for Developers
- GNOME 50 release notes
- GTK 4 documentation
- libadwaita documentation
- Qt 6.10 release
- Qt 6 documentation
- KDE Frameworks 6.24
- KDE Plasma 6.6
- Flatpak documentation
- Flathub requirements
- Snap documentation
- Snapcraft bases
- Snapcraft core24 to core26
Updating the baseline
Section titled “Updating the baseline”- Update
src/data/baseline.json. - Move
validated_onto the review date and setreview_duesix months later. - Run
npm run check:baseline. - Run
npm run buildand check the pages that link here. - Update the primary-source links if a source moved.
- 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.