1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE chapter SYSTEM "chapter.dtd">
<chapter>
<header>
<copyright>
<year>2014</year>
<holder>Ericsson AB. All Rights Reserved.</holder>
</copyright>
<legalnotice>
The contents of this file are subject to the Erlang Public License,
Version 1.1, (the "License"); you may not use this file except in
compliance with the License. You should have received a copy of the
Erlang Public License along with this software. If not, it can be
retrieved online at http://www.erlang.org/.
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
the License for the specific language governing rights and limitations
under the License.
</legalnotice>
<title>OTP version</title>
<prepared></prepared>
<responsible></responsible>
<docno></docno>
<approved></approved>
<checked></checked>
<date>2014-02-19</date>
<rev></rev>
<file>otp_version.xml</file>
</header>
<p>As of OTP release 17, the OTP release number corresponds to
the major part of the OTP version. The OTP version as a concept was
introduced in OTP 17. In the normal case, the OTP version will be
constructed as
<c><Major>.<Minor>.<Patch></c> where <c><Major></c>
is the most significant part. However, more dot separated parts than
this may exist. The dot separated parts consists of integers. If all
parts less significant than <c><Minor></c> equals <c>0</c>, they
are omitted. The three normal parts
<c><Major>.<Minor>.<Patch></c> will be changed as
follows:</p>
<taglist>
<tag><c><Major></c></tag><item>Increased when major changes,
including incompatibilities, have been made.</item>
<tag><c><Minor></c></tag><item>Increased when new functionality
has been added.</item>
<tag><c><Patch></c></tag><item>Increased when pure bug fixes
have been made.</item>
</taglist>
<p>When a part in the version number is increased, all less significant
parts are set to <c>0</c>. Release candidates have an <c>-rc<N></c>
suffix. The suffix <c>-rc0</c> will be used during development up to
the first release candidate.</p>
<p>OTP of a specific version is a set of applications of
specific versions. The application versions identified by
an OTP version corresponds to application versions that
have been tested together by the Erlang/OTP team at Ericsson AB.
An OTP system can however be put together with applications from
different OTP versions. Such a combination of application versions
has not been tested by the Erlang/OTP team. It is therefore
<em>always preferred to use OTP applications from one single OTP
version</em>.</p>
<p>Application versions will be managed the same way as the OTP version.
Application versions part of a release candidate will however not have an
<c>-rc<N></c> suffix as the OTP version. Also note that a major
increment in an application version does not necessarily imply a major
increment of the OTP version. This depends on whether the
major change in the application is considered as a major change for
OTP as a whole or not.</p>
<p>In an OTP source code tree as well as in an installed OTP
development system, the OTP version can be read from the text
file <c>OTP_VERSION</c> in the OTP installation root directory
(<seealso marker="kernel:code#root_dir/0"><c>code:root_dir()</c></seealso>).</p>
<p>If the version read from the <c>OTP_VERSION</c> file in a
development system has a <c>**</c> suffix, the system has been
patched using the <c>$ERL_TOP/otp_build patch_app</c> tool. In
this case, the system consists of application versions from
multiple OTP versions. The version preceding the <c>**</c>
suffix corresponds to the OTP version of the base system that
has been patched. Note that if a development system is updated by
other means than <c>$ERL_TOP/otp_build patch_app</c>, the
<c>OTP_VERSION</c> file may identify wrong OTP version.</p>
<p>On a target system (see the
<seealso marker="doc/system_principles:create_target">system principles</seealso>
documentation) no <c>OTP_VERSION</c> file will exist. This since
one easily can create a target system where it is hard to even
determine the base OTP version.</p>
</chapter>
|