Ubuntu Feature Freeze Exceptions: How They Really Work
Why do big updates still land in Ubuntu after feature freeze? Here's how the FFE process actually decides what gets in and what waits.

Ubuntu 26.10 hit feature freeze on 20 August. Skim the announcement and you might assume that's the end of the story: no new features, just bug fixes until release day on 15 October. That's not quite true.
Canonical engineer Paride Legovini told developers on the mailing list that they "should all now be focusing on bug fixing rather than getting new features into the release." Yet GNOME 51, expanded Rust tooling, and GPU driver management in App Center are all still in play for Stonking Stingray. The mechanism that makes this possible is the Feature Freeze Exception, or FFE, and understanding how it works explains why some big changes survive a freeze while others get bounced to the next cycle.
What Actually Counts as a "Feature"
The freeze doesn't ban new code. It bans new user-visible behavior that hasn't already been vetted. Ubuntu draws a fairly clean line: if an upload only fixes broken behavior, even in a package jumping several version numbers, it doesn't need an exception. This pairs well with see also: why gnome extensions break after every shell update.
A GTK library that patches a crash, a kernel module that fixes a regression, a Python package bump that squashes a security hole — none of that trips the freeze, no matter how large the diff looks in the changelog.
What does trip it is anything that changes what the software does or how it behaves for the end user: a new settings panel, a changed default, an entirely new binary, or a version bump that pulls in features nobody asked for as a side effect of chasing a bug fix upstream. Packagers often hit this exact trap. They want a single bug fix, but the only available upstream release bundles it with three new features, and that combined package now needs sign-off even though the packager's actual goal was modest. This pairs well with our guide to linux kernel smb3/cifs maintenance: who's in charge now.
Also read: gtk vs gnome shell theme: why your theme isn't working — background
This is also where judgment calls get messy. Rust tooling updates, for instance, frequently ship compiler improvements alongside genuine new capabilities, and reviewers have to decide where the fix ends and the feature begins.
Related Articles

Transforming Mobile Devices: AI Chips from Arm for Developers
Explore how Arm's AI chips are transforming mobile devices and influencing software development. Insights from Geraint North reveal future trends for developers.
Sep 18, 2025

How to Use Claude Code Subagents to Parallelize Development
Learn how to enhance your development workflow using Claude Code Subagents. This guide provides practical examples for parallelizing coding tasks.
Sep 13, 2025

Secure, Traceable Builds with GitHub and JFrog Integration
Discover how to integrate GitHub and JFrog for secure, traceable builds from commit to production. Streamline your workflow without switching tools.
Sep 11, 2025