|
4 | 4 | Release management
|
5 | 5 | --------------------------------------------------------------------------------
|
6 | 6 |
|
7 |
| -.. _release-policy: |
| 7 | +All released versions are listed at the :doc:`/release` page. |
| 8 | +:doc:`/release/policy` explains the rules and meaning of numbers in ``x.y.z`` versions. |
8 | 9 |
|
9 |
| -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
10 |
| -Release policy |
11 |
| -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
12 |
| - |
13 |
| -A Tarantool release is identified by three digits, for example, 1.10.7: |
14 |
| - |
15 |
| -* The first digit stands for a MAJOR release series that introduces |
16 |
| - some *major changes*. Up to now, there has been only one major release jump |
17 |
| - when we delivered the 2.x release series with the SQL support. |
18 |
| -* The second digit stands for a MINOR release series that is used for |
19 |
| - introducing new *features*. :ref:`Backward incompatible changes <backward-incompatible>` |
20 |
| - are possible between these release series. |
21 |
| -* The third digit is for PATCH releases by which we reflect how stable |
22 |
| - the MINOR release series is: |
23 |
| - |
24 |
| - * ``0`` meaning **alpha** |
25 |
| - * ``1`` meaning **beta** |
26 |
| - * ``2`` and above meaning **stable**. |
27 |
| - |
28 |
| -So, each MINOR release series goes through a development-maturity life cycle |
29 |
| -as follows: |
30 |
| - |
31 |
| -1. **Alpha**. Once a quarter, we start off with a new alpha version, |
32 |
| - such as 2.3.0, 2.4.0, and so on. This is not what an alpha release usually |
33 |
| - means in the typical software release life cycle but rather the current trunk |
34 |
| - version which is under heavy development and can be unstable. |
35 |
| - The current alpha version always lives in the master branch. |
36 |
| - |
37 |
| -2. **Beta**. When all the features planned are implemented, we fork a new branch |
38 |
| - from the master branch and tag it as a new beta version. |
39 |
| - It contains ``1`` for the PATCH digit, e.g., 2.3.1, 2.4.1, and so on. |
40 |
| - This version cannot be called stable yet (feature freeze has just been done) |
41 |
| - although there are no known critical regressions in it since |
42 |
| - the last stable release. |
43 |
| - |
44 |
| -3. **Stable**. Finally, after we see our beta version runs successfully in |
45 |
| - a production or development environment during another quarter while we fix |
46 |
| - incoming bugs, we declare this version stable. It is tagged with ``2`` for |
47 |
| - the PATCH digit, e.g., 2.3.2, 2.4.2, and so on. |
48 |
| - |
49 |
| - We support such version for 3 months while making another stable release |
50 |
| - by fixing all bugs found. We release it in a quarter. This last tag |
51 |
| - contains ``3`` for the PATCH digit, e.g., 2.3.3, 2.4.3, and so on. |
52 |
| - After the tag is set, no new changes are allowed to the release branch, |
53 |
| - and it is declared deprecated and superseded by a newer MINOR version. |
54 |
| - |
55 |
| - Stable versions don't receive any new features and only get backward |
56 |
| - compatible fixes. |
57 |
| - |
58 |
| -Like Ubuntu, in terms of support, we distinguish between two kinds of stable |
59 |
| -release series: |
60 |
| - |
61 |
| -* **LTS (Long Term Support)** is a release series that is supported |
62 |
| - for 3 years (community) and up to 5 years (paying customers). |
63 |
| - Current LTS release series is 1.10, and it receives only PATCH level |
64 |
| - releases. |
65 |
| - |
66 |
| -* **Standard** is a release series that is supported only for a few months |
67 |
| - until the next release series enters the stable state. |
68 |
| - |
69 |
| -Below is a diagram that illustrates the release sequence issuing described above |
70 |
| -by an example of some latest releases and release series: |
71 |
| - |
72 |
| -.. _release-diagram: |
73 |
| - |
74 |
| -.. code-block:: text |
75 |
| -
|
76 |
| - 1.10 series -- 1.10.4 -- 1.10.5 -- 1.10.6 -- 1.10.7 |
77 |
| - (LTS) |
78 |
| -
|
79 |
| - .... |
80 |
| -
|
81 |
| - 2.2 series --- 2.2.1 --- 2.2.2 --- 2.2.3 (end of support) |
82 |
| - | |
83 |
| - V |
84 |
| - 2.3 series ... 2.3.0 --- 2.3.1 --- 2.3.2 --- 2.3.3 (end of support) |
85 |
| - | |
86 |
| - V |
87 |
| - 2.4 series ............. 2.4.0 --- 2.4.1 --- 2.4.2 |
88 |
| - | |
89 |
| - V |
90 |
| - 2.5 series ....................... 2.5.0 --- 2.5.1 |
91 |
| - | |
92 |
| - V |
93 |
| - 2.6 series ................................. 2.6.0 |
94 |
| -
|
95 |
| - -----------------|---------|---------|---------|------> (time) |
96 |
| - 1/4 yr. 1/4 yr. 1/4 yr. |
97 |
| -
|
98 |
| -*Support* means that we continue fixing bugs. We add bug fixes simultaneously |
99 |
| -into the following release series: LTS, last stable, beta, and alpha. |
100 |
| -If we look at the release diagram above, it means that the bug fixes are to be |
101 |
| -added into 1.10, 2.4, 2.5, and 2.6 release series. |
102 |
| - |
103 |
| -To sum it up, once a quarter we release (see the release diagram above for |
104 |
| -reference): |
105 |
| - |
106 |
| -* next LTS release, e.g., 1.10.7 |
107 |
| -* two stable releases, e.g., 2.3.3 and 2.4.2 |
108 |
| -* beta version of the next release series, e.g., 2.5.1. |
109 |
| - |
110 |
| -In all supported releases, when we find and fix an outstanding CVE/vulnerability, |
111 |
| -we deliver a patch for that but do not tag a new PATCH level version. |
112 |
| -Users will be informed about such critical patches via the official Tarantool news |
113 |
| -channel (`tarantool_news <https://t.me/tarantool_news>`_). |
114 |
| - |
115 |
| -We also publish nightly builds, and use the fourth slot in the version |
116 |
| -identifier to designate the nightly build number. |
117 |
| - |
118 |
| -.. _backward-incompatible: |
119 |
| - |
120 |
| -.. note:: |
121 |
| - |
122 |
| - A release series may introduce backward incompatible changes in a sense that |
123 |
| - existing Lua, SQL or C code that are run on a current release series |
124 |
| - may not be run with the same effect on a future series. |
125 |
| - However, we don't exploit this rule and don't make incompatible changes |
126 |
| - without appropriate reason. We usually deliver information how mature |
127 |
| - a functionality is via release notes. |
128 |
| - |
129 |
| - Please note that binary data layout |
130 |
| - is always compatible with the previous series as well as with the LTS series |
131 |
| - (an instance of ``X.Y`` version can be started on top of ``X.(Y+1)`` |
132 |
| - or ``1.10.z`` data); binary protocol is compatible too |
133 |
| - (client-server as well as replication protocol). |
134 |
| - |
135 |
| -.. _release-list: |
| 10 | +This page will tell you how to make a Tarantool release. |
136 | 11 |
|
137 | 12 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
138 |
| -Release list |
| 13 | +How to make a minor release |
139 | 14 | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
140 | 15 |
|
141 |
| -Below is the table containing all Tarantool releases starting from 1.10.0 up to |
142 |
| -the current latest versions (as of September 1, 2020). For each release series, |
143 |
| -releases are sorted out as alpha, beta, and stable ones. |
144 |
| - |
145 |
| -.. container:: table |
146 |
| - |
147 |
| - .. rst-class:: left-align-column-1 |
148 |
| - .. rst-class:: left-align-column-2 |
149 |
| - .. rst-class:: left-align-column-3 |
150 |
| - .. rst-class:: left-align-column-4 |
151 |
| - |
152 |
| - +---------+--------+--------+--------+ |
153 |
| - | Release | Alpha | Beta | Stable | |
154 |
| - | series | | | | |
155 |
| - +=========+========+========+========+ |
156 |
| - | 1.10 | 1.10.0 | 1.10.1 | 1.10.2 | |
157 |
| - | (LTS) | | | 1.10.3 | |
158 |
| - | | | | 1.10.4 | |
159 |
| - | | | | 1.10.5 | |
160 |
| - | | | | 1.10.6 | |
161 |
| - | | | | 1.10.7 | |
162 |
| - +---------+--------+--------+--------+ |
163 |
| - | 2.1 | 2.1.0 | 2.1.1 | 2.1.2 | |
164 |
| - | | | | 2.1.3 | |
165 |
| - +---------+--------+--------+--------+ |
166 |
| - | 2.2 | 2.2.0 | 2.2.1 | 2.2.2 | |
167 |
| - | | | | 2.2.3 | |
168 |
| - +---------+--------+--------+--------+ |
169 |
| - | 2.3 | 2.3.0 | 2.3.1 | 2.3.2 | |
170 |
| - | | | | 2.3.3 | |
171 |
| - +---------+--------+--------+--------+ |
172 |
| - | 2.4 | 2.4.0 | 2.4.1 | 2.4.2 | |
173 |
| - +---------+--------+--------+--------+ |
174 |
| - | 2.5 | 2.5.0 | 2.5.1 | | |
175 |
| - +---------+--------+--------+--------+ |
176 |
| - | 2.6 | 2.6.0 | | | |
177 |
| - +---------+--------+--------+--------+ |
178 |
| - |
179 |
| - |
180 | 16 | .. _release-minor:
|
181 | 17 |
|
182 |
| -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
183 |
| -How to make a minor release |
184 |
| -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
185 | 18 |
|
186 | 19 | .. code-block:: console
|
187 | 20 |
|
|
0 commit comments