summaryrefslogtreecommitdiffstats
path: root/doc/releases/schedule.rst
blob: e116e9e3e62f037fbc2838c370fbd3d3d7cb657b (plain)
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
=============
Ceph Releases
=============

Current
-------

.. ceph_releases:: releases.yml

Timeline
--------

.. ceph_timeline:: releases.yml development mimic luminous kraken jewel infernalis hammer giant firefly emperor dumpling

.. _Mimic: ../mimic
.. _13.2.4: ../mimic#v13-2-4-mimic
.. _13.2.3: ../mimic#v13-2-3-mimic
.. _13.2.2: ../mimic#v13-2-2-mimic
.. _13.2.1: ../mimic#v13-2-1-mimic
.. _13.2.0: ../mimic#v13-2-0-mimic

.. _Luminous: ../luminous#v12-2-0-luminous
.. _12.2.10: ../luminous#v12-2-10-luminous
.. _12.2.9: ../luminous#v12-2-9-luminous
.. _12.2.8: ../luminous#v12-2-8-luminous
.. _12.2.7: ../luminous#v12-2-7-luminous
.. _12.2.6: ../luminous#v12-2-6-luminous
.. _12.2.5: ../luminous#v12-2-5-luminous
.. _12.2.4: ../luminous#v12-2-4-luminous
.. _12.2.3: ../luminous#v12-2-3-luminous
.. _12.2.2: ../luminous#v12-2-2-luminous
.. _12.2.1: ../luminous#v12-2-1-luminous
.. _12.2.0: ../luminous#v12-2-0-luminous

.. _11.2.1: ../kraken#v11-2-1-kraken
.. _11.2.0: ../kraken#v11-2-0-kraken
.. _Kraken: ../kraken#v11-2-0-kraken

.. _11.0.2: ../kraken#v11-0-2-kraken

.. _10.2.11: ../jewel#v10-2-11-jewel
.. _10.2.10: ../jewel#v10-2-10-jewel
.. _10.2.9: ../jewel#v10-2-9-jewel
.. _10.2.8: ../jewel#v10-2-8-jewel
.. _10.2.7: ../jewel#v10-2-7-jewel
.. _10.2.6: ../jewel#v10-2-6-jewel
.. _10.2.5: ../jewel#v10-2-5-jewel
.. _10.2.4: ../jewel#v10-2-4-jewel
.. _10.2.3: ../jewel#v10-2-3-jewel
.. _10.2.2: ../jewel#v10-2-2-jewel
.. _10.2.1: ../jewel#v10-2-1-jewel
.. _10.2.0: ../jewel#v10-2-0-jewel
.. _Jewel: ../jewel#v10-2-0-jewel

.. _10.1.2: ../jewel#v10-1-2-jewel-release-candidate
.. _10.1.1: ../jewel#v10-1-1-jewel-release-candidate
.. _10.1.0: ../jewel#v10-1-0-jewel-release-candidate
.. _10.0.5: ../jewel#v10-0-5
.. _10.0.3: ../jewel#v10-0-3
.. _10.0.2: ../jewel#v10-0-2
.. _10.0.1: ../jewel#v10-0-1
.. _10.0.0: ../jewel#v10-0-0

.. _9.2.1: ../infernalis#v9-2-1-infernalis
.. _9.2.0: ../infernalis#v9-2-0-infernalis
.. _Infernalis: ../infernalis#v9-2-0-infernalis

.. _9.1.0: ../infernalis#v9-1-0
.. _9.0.3: ../infernalis#v9-0-3
.. _9.0.2: ../infernalis#v9-0-2
.. _9.0.1: ../infernalis#v9-0-1
.. _9.0.0: ../infernalis#v9-0-0

.. _0.94.10: ../hammer#v0-94-10-hammer
.. _0.94.9: ../hammer#v0-94-9-hammer
.. _0.94.8: ../hammer#v0-94-8-hammer
.. _0.94.7: ../hammer#v0-94-7-hammer
.. _0.94.6: ../hammer#v0-94-6-hammer
.. _0.94.5: ../hammer#v0-94-5-hammer
.. _0.94.4: ../hammer#v0-94-4-hammer
.. _0.94.3: ../hammer#v0-94-3-hammer
.. _0.94.2: ../hammer#v0-94-2-hammer
.. _0.94.1: ../hammer#v0-94-1-hammer
.. _0.94: ../hammer#v0-94-hammer
.. _Hammer: ../hammer#v0-94-hammer

.. _0.93: ../hammer#v0-93
.. _0.92: ../hammer#v0-92
.. _0.91: ../hammer#v0-91
.. _0.90: ../hammer#v0-90
.. _0.89: ../hammer#v0-89
.. _0.88: ../hammer#v0-88

.. _0.87.2: ../giant#v0-87-2-giant
.. _0.87.1: ../giant#v0-87-1-giant
.. _0.87: ../giant#v0-87-giant
.. _Giant: ../giant#v0-87-giant

.. _0.86: ../giant#v0-86
.. _0.85: ../giant#v0-85
.. _0.84: ../giant#v0-84
.. _0.83: ../giant#v0-83
.. _0.82: ../giant#v0-82
.. _0.81: ../giant#v0-81

.. _0.80.11: ../firefly#v0-80-11-firefly
.. _0.80.10: ../firefly#v0-80-10-firefly
.. _0.80.9: ../firefly#v0-80-9-firefly
.. _0.80.8: ../firefly#v0-80-8-firefly
.. _0.80.7: ../firefly#v0-80-7-firefly
.. _0.80.6: ../firefly#v0-80-6-firefly
.. _0.80.5: ../firefly#v0-80-5-firefly
.. _0.80.4: ../firefly#v0-80-4-firefly
.. _0.80.3: ../firefly#v0-80-3-firefly
.. _0.80.2: ../firefly#v0-80-2-firefly
.. _0.80.1: ../firefly#v0-80-1-firefly
.. _0.80: ../firefly#v0-80-firefly
.. _Firefly: ../firefly#v0-80-firefly

.. _0.79: ../firefly#v0-79
.. _0.78: ../firefly#v0-78
.. _0.77: ../firefly#v0-77
.. _0.76: ../firefly#v0-76
.. _0.75: ../firefly#v0-75
.. _0.74: ../firefly#v0-74
.. _0.73: ../firefly#v0-73

.. _0.72.2: ../emperor#v0-72-2-emperor
.. _0.72.1: ../emperor#v0-72-1-emperor
.. _0.72: ../emperor#v0-72-emperor
.. _Emperor: ../emperor#v0-72-emperor

.. _0.71: ../dumpling#v0-71
.. _0.70: ../dumpling#v0-70
.. _0.69: ../dumpling#v0-69
.. _0.68: ../dumpling#v0-68

.. _0.67.11: ../dumpling#v0-67-11-dumpling
.. _0.67.10: ../dumpling#v0-67-10-dumpling
.. _0.67.9: ../dumpling#v0-67-9-dumpling
.. _0.67.8: ../dumpling#v0-67-8-dumpling
.. _0.67.7: ../dumpling#v0-67-7-dumpling
.. _0.67.6: ../dumpling#v0-67-6-dumpling
.. _0.67.5: ../dumpling#v0-67-5-dumpling
.. _0.67.4: ../dumpling#v0-67-4-dumpling
.. _0.67.3: ../dumpling#v0-67-3-dumpling
.. _0.67.2: ../dumpling#v0-67-2-dumpling
.. _0.67.1: ../dumpling#v0-67-1-dumpling
.. _0.67: ../dumpling#v0-67-dumpling
.. _Dumpling:  ../dumpling#v0-67-dumpling

Understanding the release cycle
-------------------------------

There is a new stable release cycle every nine (9) months, starting
after the Luminous release (12.2.0).  Each stable release series will
receive a name (e.g., 'Mimic') and a major release number (e.g., 13
for Mimic because 'M' is the 13th letter of the alphabet).

Releases are named after a species of cephalopod (usually the common
name, since the latin names are harder to remember or pronounce).

Version numbers have three components, *x.y.z*.  *x* identifies the release
cycle (e.g., 13 for Mimic).  *y* identifies the release type:

* x.0.z - development releases (for early testers and the brave at heart)
* x.1.z - release candidates (for test clusters, brave users)
* x.2.z - stable/bugfix releases (for users)

This versioning convention started with the 9.y.z Infernalis cycle.  Prior to
that, versions looked with 0.y for development releases and 0.y.z for stable
series.

Development releases (x.0.z)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Each development release (x.0.z) freezes the master development branch
and applies `integration and upgrade tests
<https://github.com/ceph/ceph/tree/master/qa/suites/>`_ before it is released.  Once
released, there is no effort to backport fixes; developer focus is on
the next development release which is usually only a few weeks away.

* Development release every 4 to 8 weeks
* Intended for testing, not production deployments
* Full integration testing
* Upgrade testing from the last stable release(s)
* Every effort is made to allow *offline* upgrades from previous
  development releases (meaning you can stop all daemons, upgrade, and
  restart).  No attempt is made to support online rolling upgrades
  between development releases.  This facilitates deployment of
  development releases on non-production test clusters without
  repopulating them with data.

Release candidates (x.1.z)
^^^^^^^^^^^^^^^^^^^^^^^^^^

There is a feature release roughly six (6) weeks prior to the planned
initial stable release, after which focus shifts to stabilization and
bug fixes only.

* Release candidate release every 1-2 weeks
* Intended for final testing and validation of the upcoming stable release
  
Stable releases (x.2.z)
^^^^^^^^^^^^^^^^^^^^^^^

Once the initial stable release is made (x.2.0), there are
semi-regular bug-fix point releases with bug fixes and (occasionally)
small feature backports.  Bug fixes are accumulated and included in
the next point release.

* Stable point release every 4 to 6 weeks
* Intended for production deployments
* Bug fix backports for two full release cycles.
* Online, rolling upgrade support and testing from the last two (2)
  stable release(s) (starting from Luminous).
* Online, rolling upgrade support and testing from prior stable point
  releases

For each stable release:

* `Integration and upgrade tests
  <https://github.com/ceph/ceph/tree/master/qa/suites/>`_ are run on a regular basis
  and `their results <http://pulpito.ceph.com/>`_ analyzed by Ceph
  developers.
* `Issues <http://tracker.ceph.com/projects/ceph/issues?query_id=27>`_
  fixed in the development branch (master) are scheduled to be backported.
* When an issue found in the stable release is `reported
  <http://tracker.ceph.com/projects/ceph/issues/new>`_, it is
  triaged by Ceph developers.
* The `stable releases and backport team <http://tracker.ceph.com/projects/ceph-releases/wiki>`_
  publishes ``point releases`` including fixes that have been backported to the stable release.

In the timeline above, the life time of a stable release series is
calculated to be approximately 18 months (i.e., two 9 month release
cycles) after the month of the first release.  For example, Luminous
(12.2.z) will reach end of life (EOL) shortly after Nautilus (14.2.0) is
released.  The lifetime of a release may vary because it depends on how
quickly the stable releases are published.

The life time for Jewel and Kraken are slightly different.  Prior to
Luminous, only every other stable release was an "LTS" release.
Therefore,

* Upgrades are supported from Jewel -> Kraken -> Luminous and Jewel -> Luminous.
* Upgrades from Jewel or Kraken must upgrade to Luminous first before proceeding further (e.g., Kraken -> Luminous -> Mimic but not Kraken -> Mimic).
* Jewel will be maintained until Mimic is released in the spring of 2018.
* Kraken is no longer maintained.