blob: ebb95b742e60c02e8c19fbd5345bb765f9549546 [file] [log] [blame] [view]
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +01001# Maintained branches
2
3At any point in time, we have a number of maintained branches consisting of:
4
Gilles Peskinea23df132021-03-16 12:04:44 +01005- The [`development`](https://github.com/ARMmbed/mbedtls/tree/development) branch:
6 this is where new features land,
7 as well as bug fixes and security fixes.
8- One or more long-time support (LTS) branches:
9 these only get bug fixes and security fixes.
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +010010
11We use [Semantic Versioning](https://semver.org/). In particular, we maintain
12API compatibility in the development branch between major version changes. We
13also maintain ABI compatibility within LTS branches; see the next section for
14details.
15
16## Backwards Compatibility
17
Gilles Peskinea23df132021-03-16 12:04:44 +010018We maintain API compatibility in released versions of Mbed TLS. If you have
19code that's working and secure with Mbed TLS x.y.z and does not rely on
20undocumented features, then you should be able to re-compile it without
21modification with any later release x.y'.z' with the same major version
22number, and your code will still build, be secure, and work.
23
24There are rare exceptions: code that was relying on something that became
25insecure in the meantime (for example, crypto that was found to be weak) may
26need to be changed. In case security comes in conflict with backwards
27compatibility, we will put security first, but always attempt to provide a
28compatibility option.
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +010029
30For the LTS branches, additionally we try very hard to also maintain ABI
31compatibility (same definition as API except with re-linking instead of
32re-compiling) and to avoid any increase in code size or RAM usage, or in the
33minimum version of tools needed to build the code. The only exception, as
34before, is in case those goals would conflict with fixing a security issue, we
35will put security first but provide a compatibility option. (So far we never
36had to break ABI compatibility in an LTS branch, but we occasionally had to
37increase code size for a security fix.)
38
Manuel Pégourié-Gonnard80c02af2021-02-25 12:34:58 +010039For contributors, see the [Backwards Compatibility section of
40CONTRIBUTING](CONTRIBUTING.md#cackwords-compatibility).
41
42## Current Branches
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +010043
44The following branches are currently maintained:
45
Gilles Peskinea23df132021-03-16 12:04:44 +010046- [`development`](https://github.com/ARMmbed/mbedtls/)
47- [`mbedtls-2.16`](https://github.com/ARMmbed/mbedtls/tree/mbedtls-2.16)
Manuel Pégourié-Gonnard80c02af2021-02-25 12:34:58 +010048 maintained until at least the end of 2021, see
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +010049 <https://tls.mbed.org/tech-updates/blog/announcing-lts-branch-mbedtls-2.16>
Manuel Pégourié-Gonnard80c02af2021-02-25 12:34:58 +010050- [mbedtls-2.7](https://github.com/ARMmbed/mbedtls/tree/mbedtls-2.7) - end of life in March 2021!
Manuel Pégourié-Gonnarde6997392021-02-25 11:40:08 +010051
52Users are urged to always use the latest version of a maintained branch.