Skip to content

Commit fd71994

Browse files
committed
Revise the Release Notes page; resolve #1914
* Add missing release notes from GitHub * Add a navigation table for releases * Explain Tarantool release policy shortly * Move the Release Policy document under /releases * Use "release version" instead of "stable version"
1 parent 8228e09 commit fd71994

31 files changed

+3732
-15255
lines changed

doc/dev_guide/release_management.rst

Lines changed: 4 additions & 171 deletions
Original file line numberDiff line numberDiff line change
@@ -4,184 +4,17 @@
44
Release management
55
--------------------------------------------------------------------------------
66

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.
89

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.
13611

13712
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
138-
Release list
13+
How to make a minor release
13914
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
14015

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-
18016
.. _release-minor:
18117

182-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
183-
How to make a minor release
184-
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
18518

18619
.. code-block:: console
18720

0 commit comments

Comments
 (0)