Skip to content

added a new chapter about the Symfony release process #1758

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 1 commit into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions contributing/community/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,5 +4,6 @@ Community
.. toctree::
:maxdepth: 2

releases
irc
other
119 changes: 119 additions & 0 deletions contributing/community/releases.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
The Release Process
===================

This document explains the Symfony release process (Symfony being the code
hosted on the main symfony/symfony `Git repository`_).

Symfony manages its releases through a *time-based model*; a new Symfony
release comes out every *six months*: one in *May* and one in *November*.

.. note::

This release process has been adopted as of Symfony 2.2, and all the
"rules" explained in this document must be strictly followed as of Symfony
2.4.

Development
-----------

The six-months period is divided into two phases:

* *Development*: *Four months* to add new features and to enhance existing
ones;

* *Stabilisation*: *Two months* to fix bugs, prepare the release, and wait
for the whole Symfony ecosystem (third-party libraries, bundles, and
projects using Symfony) to catch up.

During the development phase, any new feature can be reverted if it won't be
finished in time or if it won't be stable enough to be included in the current
final release.

Maintenance
-----------

Each Symfony version is maintained for a fixed period of time, depending on
the type of the release.

Standard Releases
~~~~~~~~~~~~~~~~~

A standard release is maintained for an *eight month* period.

Long Term Support Releases
~~~~~~~~~~~~~~~~~~~~~~~~~~

Every two years, a new Long Term Support Release (aka LTS release) is
published. Each LTS release is supported for a *three year* period.

.. note::

Paid support after the three year support provided by the community can
also be bought from `SensioLabs`_.

Schedule
--------

Below is the schedule for the first few versions that use this release model:

.. image:: /images/release-process.jpg
:align: center

* *(special)* Symfony 2.2 will be released at the end of February 2013;

* *(special)* Symfony 2.3 (the first LTS) will be released at the end of May
2013;

* Symfony 2.4 will be released at the end of November 2013;

* Symfony 2.5 will be released at the end of May 2014;

* ...

Backward Compatibility
----------------------

After the release of Symfony 2.3, backward compatibility will be kept at all
cost. If it is not possible, the feature, the enhancement, or the bug fix will
be scheduled for the next major version: Symfony 3.0.

.. note::

The work on Symfony 3.0 will start whenever enough major features breaking
backward compatibility are waiting on the todo-list.

Rationale
---------

This release process was adopted to give more *predictability* and
*transparency*. Is was discussed based on the following goals:

* Shorten the release cycle (allow developers to benefit from the new
features faster);

* Give more visibility to the developers using the framework and Open-Source
projects using Symfony;

* Improve the experience of Symfony core contributors: everyone knows when a
feature might be available in Symfony.

* Coordinate the Symfony timeline with popular PHP projects that work well
with Symfony and with projects using Symfony;

* Give time to the Symfony ecosystem to catch up with the new versions
(bundle authors, documentation writers, translators, ...).

The six month period was chosen as two releases fit in a year. It also gives
plenty of time to work on new features and it also allows for non-ready
features to be postponed to the next version without having to wait too much
for the next cycle.

The dual maintenance mode was adopted to make every Symfony user happy. Fast
movers, who want to work with the latest and the greatest, use the standard
releases: a new version is published every six months, and there is a two
months period to upgrade. Companies wanting more stability use the LTS
releases: a new version is published every two years and there is a year to
upgrade.

.. _Git repository: https://github.com/symfony/symfony
.. _SensioLabs: http://sensiolabs.com/
1 change: 1 addition & 0 deletions contributing/map.rst.inc
Original file line number Diff line number Diff line change
Expand Up @@ -17,5 +17,6 @@

* **Community**

* :doc:`Release Process </contributing/community/releases>`
* :doc:`IRC Meetings </contributing/community/irc>`
* :doc:`Other Resources </contributing/community/other>`
Binary file added images/release-process.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.