[erlang-questions] OTP Versions and Maint Branches

Rickard Green rickard@REDACTED
Sun Dec 3 00:23:13 CET 2017

Since there lately have been at least two questions about OTP versions and
branches I thought that I'll give a short description on how OTP versions
relate to our maint-<Rel> branches.

As of the OTP 17 release we changed the version scheme used. Due to this
the following only applies to OTP releases from OTP 17 and onwards.

We have one main track of OTP versions. Such versions are on the form OTP
X.Y[.Z] and we call these versions normal versions. New normal versions are
only assigned to the latest release. When we release a new release of OTP,
the next new version on the previous release has to branch off from the
latest version of that release. When this happens, the code mass will
branch off from the main track and the versions issued will also reflect
that. We call these versions branched versions and these are on the form
OTP X.Y.Z.U[.V ...]

The following "graph" shows the most interesting parts of the version tree
as of today. The main track is in the left column.

OTP 17.0
OTP 17.5.6
 |           \
OTP 18.0      OTP
 |             |
...           ...
 |             |
...           OTP  (Current head of maint-17)
OTP 18.3.4
 |           \
OTP 19.0      OTP
 |             |
...           ...
 |             |
...           OTP  (Current head of maint-18)
OTP 19.3.6
 |           \
OTP 20.0      OTP
 |             |
...           ...
 |             |
...           OTP  (Current head of maint-19)
OTP 20.1.7 (Current head of maint-20)

The maint-17 branch will always have version numbers on the form OTP
17.5.6.U, maint-18 on the form OTP 18.3.4.U, and maint-19 on the form OTP
19.3.6.U. That is, versions like for example OTP 19.3.7 will *never* ever
show up.

When we release OTP 21, the maint-20 branch will branch off from the main
track and will then get branched version numbers as well. We do however not
now until that happens what those version numbers will look like.

All patches released on the maint-R branches will be announced on the
erlang-questions list.

Appart from new versions on the maint-R branches there might appear new
branched versions more or less anywhere in the version tree. Those patches
address specific issues for specific customers and can be ignored by
others. We do also *not* announce such patches on the erlang-questions list.

The easiest way to keep track of patches that you are interested in should
be to track the maint-R branches that you are interested in.

We more or less support three releases. The latest and the two older just
before that one. There might however show up patches on releases older than

For more info in the version scheme see


Rickard Green, Erlang/OTP, Ericsson AB
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20171203/83384837/attachment.htm>

More information about the erlang-questions mailing list