Skip to content

Commit 717dfb2

Browse files
fabpotweaverryan
authored andcommitted
added a new chapter about the Symfony release process
1 parent 86cf8bf commit 717dfb2

File tree

4 files changed

+121
-0
lines changed

4 files changed

+121
-0
lines changed

contributing/community/index.rst

+1
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,6 @@ Community
44
.. toctree::
55
:maxdepth: 2
66

7+
releases
78
irc
89
other

contributing/community/releases.rst

+119
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
The Release Process
2+
===================
3+
4+
This document explains the Symfony release process (Symfony being the code
5+
hosted on the main symfony/symfony `Git repository`_).
6+
7+
Symfony manages its releases through a *time-based model*; a new Symfony
8+
release comes out every *six months*: one in *May* and one in *November*.
9+
10+
.. note::
11+
12+
This release process has been adopted as of Symfony 2.2, and all the
13+
"rules" explained in this document must be strictly followed as of Symfony
14+
2.4.
15+
16+
Development
17+
-----------
18+
19+
The six-months period is divided into two phases:
20+
21+
* *Development*: *Four months* to add new features and to enhance existing
22+
ones;
23+
24+
* *Stabilisation*: *Two months* to fix bugs, prepare the release, and wait
25+
for the whole Symfony ecosystem (third-party libraries, bundles, and
26+
projects using Symfony) to catch up.
27+
28+
During the development phase, any new feature can be reverted if it won't be
29+
finished in time or if it won't be stable enough to be included in the current
30+
final release.
31+
32+
Maintenance
33+
-----------
34+
35+
Each Symfony version is maintained for a fixed period of time, depending on
36+
the type of the release.
37+
38+
Standard Releases
39+
~~~~~~~~~~~~~~~~~
40+
41+
A standard release is maintained for an *eight month* period.
42+
43+
Long Term Support Releases
44+
~~~~~~~~~~~~~~~~~~~~~~~~~~
45+
46+
Every two years, a new Long Term Support Release (aka LTS release) is
47+
published. Each LTS release is supported for a *three year* period.
48+
49+
.. note::
50+
51+
Paid support after the three year support provided by the community can
52+
also be bought from `SensioLabs`_.
53+
54+
Schedule
55+
--------
56+
57+
Below is the schedule for the first few versions that use this release model:
58+
59+
.. image:: /images/release-process.jpg
60+
:align: center
61+
62+
* *(special)* Symfony 2.2 will be released at the end of February 2013;
63+
64+
* *(special)* Symfony 2.3 (the first LTS) will be released at the end of May
65+
2013;
66+
67+
* Symfony 2.4 will be released at the end of November 2013;
68+
69+
* Symfony 2.5 will be released at the end of May 2014;
70+
71+
* ...
72+
73+
Backward Compatibility
74+
----------------------
75+
76+
After the release of Symfony 2.3, backward compatibility will be kept at all
77+
cost. If it is not possible, the feature, the enhancement, or the bug fix will
78+
be scheduled for the next major version: Symfony 3.0.
79+
80+
.. note::
81+
82+
The work on Symfony 3.0 will start whenever enough major features breaking
83+
backward compatibility are waiting on the todo-list.
84+
85+
Rationale
86+
---------
87+
88+
This release process was adopted to give more *predictability* and
89+
*transparency*. Is was discussed based on the following goals:
90+
91+
* Shorten the release cycle (allow developers to benefit from the new
92+
features faster);
93+
94+
* Give more visibility to the developers using the framework and Open-Source
95+
projects using Symfony;
96+
97+
* Improve the experience of Symfony core contributors: everyone knows when a
98+
feature might be available in Symfony.
99+
100+
* Coordinate the Symfony timeline with popular PHP projects that work well
101+
with Symfony and with projects using Symfony;
102+
103+
* Give time to the Symfony ecosystem to catch up with the new versions
104+
(bundle authors, documentation writers, translators, ...).
105+
106+
The six month period was chosen as two releases fit in a year. It also gives
107+
plenty of time to work on new features and it also allows for non-ready
108+
features to be postponed to the next version without having to wait too much
109+
for the next cycle.
110+
111+
The dual maintenance mode was adopted to make every Symfony user happy. Fast
112+
movers, who want to work with the latest and the greatest, use the standard
113+
releases: a new version is published every six months, and there is a two
114+
months period to upgrade. Companies wanting more stability use the LTS
115+
releases: a new version is published every two years and there is a year to
116+
upgrade.
117+
118+
.. _Git repository: https://github.com/symfony/symfony
119+
.. _SensioLabs: http://sensiolabs.com/

contributing/map.rst.inc

+1
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,6 @@
1717

1818
* **Community**
1919

20+
* :doc:`Release Process </contributing/community/releases>`
2021
* :doc:`IRC Meetings </contributing/community/irc>`
2122
* :doc:`Other Resources </contributing/community/other>`

images/release-process.jpg

52.6 KB
Loading

0 commit comments

Comments
 (0)