Experimental features¶
Experimental features are part of the snapd development process. They allow engineering teams to test both the viability of an idea and its implementation.
If an experimental feature is considered unstable or likely to change, they are demarcated by an experimental feature flag, such as the following for Confdb
sudo snap set system experimental.confdb=true
Request for feedback¶
We’d be grateful for any feedback users of these experimental features may have. Please leave a comment beneath this forum post, chat to us on Matrix.org, or file an issue in the snapd GitHub repository. Thank you!
Feature graduation process¶
When a feature graduates from experimental status, it is first set as default enabled. When the feature flag is set/changed, a warning stating that the feature is enabled by default and will be permanently enabled in a future release will be presented.
In a future release, the experimental feature is graduated to be permanently enabled. At this point, it is impossible to disable the feature. Attempting to set/change its feature flag will present a warning stating that the feature is no longer experimental and is always enabled.
Experimental features being removed¶
Currently, gate-auto-refresh-hook is planned to be removed. Please share your use case for the feature at forum so we can consider it prior to removal.
Previous experimental features¶
The following table lists features that were previously experimental.
Name |
Feature Flag |
Graduated/Removed |
Release |
Notes |
|---|---|---|---|---|
RobustMountNamespaceUpdates |
robust-mount-namespace-updates |
Graduated |
2.68 |
It controlled how snap-update-ns updates existing mount namespaces. |
snapd-snap |
Graduated |
2.68 |
It controlled the possibility of installing the snapd snap. |
|
gpio-chardev-interface |
Removed |
2.70 |
It controlled the availability of the interface allowing access to specific GPIO chardev lines. |
|
PerUserMountNamespace |
per-user-mount-namespace |
Removed |
2.76 |
It controlled the persistence of per-user mount namespaces. |
layouts |
Graduated |
2.77 |
It controlled availability of snap layouts. |
|
ClassicPreservesXdgRuntimeDir |
classic-preserves-xdg-runtime-dir |
Graduated |
2.77 |
It controlled XDG_RUNTIME_DIR in snaps with classic confinement. |
dbus-activation |
Graduated |
2.77 |
It controlled whether snaps daemons can be activated via D-Bus. |
|
refresh-app-awareness |
Graduated |
2.77 |
It controlled refresh being aware of running applications. |
|
quota-groups |
Graduated |
2.78 |
It enabled experimental journal log quotas for quota groups. |
|
gate-auto-refresh-hook |
Removed |
2.79 |
It enables refresh control from snaps via the gate-auto-refresh hook. |
|
CheckDiskSpaceInstall, CheckDiskSpaceRemove, and CheckDiskSpaceRefresh |
check-disk-space-install, check-disk-space-remove, check-disk-space-refresh |
Graduated |
2.79 |
Disk space awareness controls free disk space checks on snap install, remove, and refresh. |
refresh-app-awareness-ux |
Graduated |
2.79 |
It enables experimental UX improvements for refresh-app-awareness. |
Current experimental features¶
The following table lists all the features considered experimental.
Name |
Feature Flag |
Date Introduced |
Enabled by Default |
Notes |
|---|---|---|---|---|
hotplug |
Jul 2018 (snapd 2.34) |
NO |
It controls the availability of dynamically creating slots based on system hardware. Currently only serial ports are supported (serial-port interface). |
|
parallel-instances |
Jun 2018 (snapd 2.34) |
YES (snapd 2.79) |
Some interfaces and app properties are not supported on parallel instances. See Snaps that are unsupported as parallel instances. |
|
HiddenSnapDataHomeDir |
hidden-snap-folder |
Aug 2020 (snapd 2.46) |
NO |
It controls whether snap data is stored in ~/.snap/data instead of ~/snap. |
UserDaemons |
user-daemons |
Aug 2020 (snapd 2.46) |
NO |
It controls the availability of user mode service support. Snapcraft needs to enable the |
MoveSnapHomeDir |
move-snap-home-dir |
Jul 2022 (snapd 2.57) |
NO |
It controls whether snap user data under ~/snap (or ~/.snap/data) can be moved to ~/Snap. |
confdb |
Apr 2024 (snapd 2.62) |
NO |
It enables experimental configuration via confdb views. |
|
AppArmorPrompting |
apparmor-prompting |
Apr 2024 (snapd 2.62) |
NO |
It enables AppArmor to prompt the user for permission when apps perform certain operations. Currently under active development. |
ContentCompatLabel |
content-compatibility-label |
Oct 2025 (snapd 2.72) |
NO |
It enables compatibility labels for the content interface. |
RemoteDeviceManagement |
remote-device-management |
Apr 2026 (snapd 2.75) |
NO |
It enables experimental remote management of the device via the Store, including delegating control of confdb views to operators. Currently under active development. |
snap-delta-format |
Apr 2026 (snapd 2.75) |
NO |
It enables deltas that use the “snap delta” format. |