This document outlines the Mender compatibility and support policy. For support for specific system releases, compatibility between individual Mender components and currently supported Mender releases, see Supported releases.
Mender consists of different components that are independently released and supported. They are:
Mender Client: Runs on Devices, authenticates the device with the Server
(using component mender-auth
), reports inventory, and manages updates
(using mender-update
). Also includes add-on components mender-connect,
mender-configure, mender-monitor and Update Modules Rootfs, Delta, File, and Directory.
Mender Gateway: Is on the network between Mender Client and Mender Server, and can enable OTA access for devices, cache Artifacts to reduce uplink load and/or implement mutual TLS (mTLS) by authenticating Devices which are using device certificates.
Mender Server: Enables management of Devices, Releases and Deployments. Devices connect and receive OTA updates from the Mender Server. Available as on-premise and hosted solution. When using hosted Mender, upgrades and support is managed by Northern.tech so versioning of the server itself is not relevant to users.
Historically Mender was released as a bundle release with these components included, and Mender 3.7 LTS is the last such bundle release. Read more about this change in this blog post.
The Mender Client and Mender Gateway components are supported for installation and configuration in meta-mender, which follows Yocto Project LTS releases and generally supports the two latest Yocto Project LTS releases.
There is a corresponding branch in meta-mender for the Yocto Project release it supports. When a new Mender component version is released, all currently supported Yocto Project branches in meta-mender are updated with this Mender component version.
When a new Yocto Project LTS is released, all currently supported Mender components are supported in this Yocto Project LTS. Once a Yocto Project LTS release becomes unsupported, Mender stops providing updates with new Mender software to it, essentially leaving the last Mender components fixed in that release.
Mender always provides an upgrade path from the past patch (e.g. 3.2.0 to 3.2.1) and minor version (e.g. 3.1.1 to 3.2.0), and releases follow Semantic Versioning. Note that according to Semantic Versioning, minor releases add new functionality (e.g. from 3.2.0 to 3.3.0) so be sure to upgrade components to support the newer functionality before using it.
For example, when Mender releases a new Artifact format version, the new Mender Client still supports older versions of the Artifact format. However, the inverse is not true; the Mender Client does not support newer versions of the Artifact format. So in this case you need to upgrade all Mender Clients before starting to use new versions of the Artifact format (and the features it enables).
As another example, the Mender Client supports one version of the Server API, while the Server can support several API versions. Therefore, always update the Server before the Client.
In general, to avoid backward compatibility issues upgrade components in this order:
Mender Server (N/A if using hosted Mender)
Mender Gateway (if used)
Mender Client
Logic or data used by Mender Client such as Update Modules, Artifact versions
Mender components have different support durations for different minor versions with LTS releases. Please refer to Supported releases for the currently supported components.
This section outlines the policy for deprecating APIs within Mender Server. It provides clear guidelines on the process, timelines, and expectations for users of our API services during deprecation periods. The goal is to ensure a smooth transition and minimal disruption to users.
Deprecation is the process of gradually phasing out an API version, encouraging users to migrate to newer versions. This is done for various reasons, including improvements to performance, security, compatibility, or to accommodate new business requirements.
Once an API is deprecated, users will be given a notice and a grace period of 12 months to transition to the newer version. During this period, deprecated APIs will continue to function but may no longer receive updates or support.
Key Milestones:
In case of on-premis releases, the deprecated API will be retired with the next major release.
The following steps will be taken to notify users of an upcoming deprecation:
To help users transition smoothly, the following support will be available during the deprecation period:
We strongly recommend that users start migrating as soon as the deprecation announcement is made. The following guidelines will assist in the transition:
Once the deprecation period has ended, the following actions will be taken:
This policy ensures that API deprecations are handled with minimal disruption to users, providing adequate time to transition and migrate to newer versions. By adhering to this policy, we aim to maintain high-quality service, security, and performance across our API offerings.
Since Mender components use Semantic Versioning, the version numbers are in the MAJOR.MINOR.PATCH format.
We increment:
MAJOR version when we make incompatible API or functionality changes
MINOR version when we add functionalities in a backward compatible manner
PATCH version when we make backward compatible bug fixes to existing releases
Mender comes with long-term supported (LTS) releases, which are the only ones which are commercially supported. We maintain LTS releases through patch releases for one year from the release date.
Since Semantic Versioning was primarily written for libraries, it is not necessarily clear what constitutes an API in the context of Mender. Below are the lists of specific criteria we use for our versioning policy.
Removing or changing existing command line options
Removing or changing existing REST API
Edge case: Changing default behavior, with the old behavior still
available. An example is changing the default artifact format version in
mender-artifact
. We have opted for upgrading the major version in this case,
but this could also go into a minor release
Adding command line options
Adding new REST API, or adding fields to responses of existing REST API
Doing a database migration that is incompatible with the old schema (downgrade usually not possible without restoring a backup)
Any change to our Golang API. For example, the mender-artifact
library has
an API, used by other components, but this API is not considered public
It should always be possible to freely upgrade and downgrade between patch versions in the same minor series
© 2025 Northern.tech AS