Ubuntu Pro Client feature deprecation policy#
When the Pro Client introduces new features, particularly features designed for
other software to integrate with, we assume those features become relied-upon
in all Ubuntu releases we support. That includes the oldest and also the newest
(at time of writing, the oldest is 16.04 and the newest is 24.04). The newest
supported Ubuntu release typically has ~12 years of life left between LTS, ESM
and Legacy coverage. That means we need to support any given feature in a
backwards compatible-way for at least 12 years. This is particularly true for
any integration point with machine-readable output (e.g. our API functions, any
command with JSON-formatted output). It is also true for important features
that, even if lacking intentional machine-usability, are likely to be used in
automation (e.g. any form of pro attach
or pro enable
that doesn’t require
interaction).
Removing features by release#
We maintain the LTS promise of stability for every supported LTS. Therefore, we cannot remove a given feature from any LTS that already has the feature. Instead, we will remove features starting on a devel Ubuntu release onward. To make the transition more apparent to users and give them time to adjust, we will only remove features in interim devel releases. We will not remove a feature for the first time in an LTS devel release. When the given feature is invoked on a release where it has been removed, the Pro Client will return an error code and message describing what to do instead of using the removed feature.
Features will only be per-release-removed once a better replacement is available on all supported Ubuntu releases via Stable Release Update (SRU). The soonest allowed per-release-removal is the next new interim release after the replacement is SRU’d to all Ubuntu releases.
Deprecation warnings on releases that keep the feature#
When a feature is removed in e.g. 24.10 onward, it will continue to exist in
all prior supported releases; however, features in pro
are often expected to
work consistently across all supported Ubuntu releases. Any feature we remove
should either not apply to new Ubuntu releases, or should have a better
alternative available that does work consistently across all supported Ubuntu
releases. So when we remove a feature in future releases, all releases that
still support the feature should start showing a deprecation warning. This
warning will tell the user that this feature will not work on future Ubuntu
releases, and point them to the alternative.
Documentation#
For features that are removed per-release, we will add notices to the related documentation noting which Ubuntu releases they are supported on, and also directing the reader to the replacement.