-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Updated the release process for Symfony 3.x and future releases #5994
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
Changes from 2 commits
636d348
427daab
442e56a
6881e07
99070c9
23cc779
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,36 +1,34 @@ | ||
The Release Process | ||
=================== | ||
|
||
This document explains the Symfony release process (Symfony being the code | ||
hosted on the main ``symfony/symfony`` `Git repository`_). | ||
This document explains the **release process** of the Symfony project (i.e. the | ||
code hosted on the main ``symfony/symfony`` `Git repository`_). | ||
|
||
Symfony manages its releases through a *time-based model*; a new Symfony minor | ||
version comes out every *six months*: one in *May* and one in *November*. | ||
Symfony manages its releases through a *time-based model* and follows the | ||
`Semantic Versioning`_ strategy: | ||
|
||
.. tip:: | ||
|
||
The meaning of "minor" comes from the `Semantic Versioning`_ strategy. | ||
|
||
Each minor version sticks to the same very well-defined process where we start | ||
with a development period, followed by a maintenance period. | ||
* A new Symfony minor version (e.g. 2.8, 3.2, 4.1) comes out every *six months*: | ||
one in *May* and one in *November*; | ||
* A new Symfony major version (e.g., 3.0, 4.0) comes out every *two years* and | ||
it's released at the same time of the last minor version of the previous branch. | ||
|
||
.. 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. | ||
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. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Well, the two year release cycle for major versions was not adopted in Symfony 2.2, but started with Symfony 3.0. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I propose to remove this note entirely. It made sense when we did the transition to the new formal process. But that was years ago! There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. makes sense too (people are probably not so interested in how the process was in the past but how/when releases will be done in the future) |
||
|
||
.. _contributing-release-development: | ||
|
||
Development | ||
----------- | ||
|
||
The full development period lasts six months and is divided into two phases: | ||
The full development period for any major or minor version lasts six months and | ||
is divided into two phases: | ||
|
||
* *Development*: *Four months* to add new features and to enhance existing | ||
* **Development**: *Four months* to add new features and to enhance existing | ||
ones; | ||
|
||
* *Stabilisation*: *Two months* to fix bugs, prepare the release, and wait | ||
* **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. | ||
|
||
|
@@ -43,37 +41,48 @@ final release. | |
Maintenance | ||
----------- | ||
|
||
Each Symfony minor version is maintained for a fixed period of time, depending | ||
on the type of the release. We have two maintenance periods: | ||
Each Symfony version is maintained for a fixed period of time, depending on the | ||
type of the release. This maintenance is divided into: | ||
|
||
* *Bug fixes and security fixes*: During this period, all issues can be fixed. | ||
The end of this period is referenced as being the *end of maintenance* of a | ||
release. | ||
|
||
* *Security fixes only*: During this period, only security related issues can | ||
be fixed. The end of this period is referenced as being the *end of | ||
life* of a release. | ||
be fixed. The end of this period is referenced as being the *end of life* of | ||
a release. | ||
|
||
Symfony Versions | ||
---------------- | ||
|
||
Standard Versions | ||
~~~~~~~~~~~~~~~~~ | ||
|
||
A standard minor version is maintained for an *eight month* period for bug | ||
A **Standard Minor Version** is maintained for an *eight month* period for bug | ||
fixes, and for a *fourteen month* period for security issue fixes. | ||
|
||
In Symfony 2.x branch, the number of minor versions wasn't constrained, so that | ||
branch ended up with nine minor versions (from 2.0 to 2.8). Starting from | ||
3.x branch, the number of minor versions is limited to five (from X.0 to X.4). | ||
|
||
.. _releases-lts: | ||
|
||
Long Term Support Versions | ||
~~~~~~~~~~~~~~~~~~~~~~~~~~ | ||
|
||
Every two years, a new Long Term Support Version (aka LTS version) is | ||
published. Each LTS version is supported for a *three year* period for bug | ||
Every two years, a new **Long Term Support Version** (usually abbreviated as "LTS") | ||
is published. Each LTS version is supported for a *three year* period for bug | ||
fixes, and for a *four year* period for security issue fixes. | ||
|
||
.. note:: | ||
|
||
Paid support after the three year support provided by the community can | ||
also be bought from `SensioLabs`_. | ||
|
||
In Symfony 2.x branch, the LTS versions are 2.3, 2.7 and 2.8. Starting from 3.x | ||
branch, only the last minor version of each branch is considered LTS (e.g 3.4, | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. missing dot after "e.g" |
||
4.4, 5.4, etc.) | ||
|
||
Schedule | ||
-------- | ||
|
||
|
@@ -83,7 +92,7 @@ Below is the schedule for the first few versions that use this release model: | |
:align: center | ||
|
||
* **Yellow** represents the Development phase | ||
* **Blue** represents the Stabilisation phase | ||
* **Blue** represents the Stabilization phase | ||
* **Green** represents the Maintenance period | ||
|
||
This results in very predictable dates and maintenance periods: | ||
|
@@ -100,15 +109,23 @@ Version Feature Freeze Release End of Maintenance End of Life | |
2.6 09/2014 11/2014 07/2015 (8 months) 01/2016 | ||
**2.7** 03/2015 05/2015 05/2018 (36 months) 05/2019 | ||
**2.8** 09/2015 11/2015 11/2018 (36 months [2]_) 11/2019 | ||
3.0 09/2015 11/2015 07/2016 (8 months) 01/2017 | ||
3.0 09/2015 11/2015 07/2016 (8 months) [3]_) 01/2017 | ||
3.1 03/2016 05/2016 01/2017 (8 months) 07/2017 | ||
3.2 09/2016 11/2016 07/2017 (8 months) 01/2018 | ||
**3.3** 03/2017 05/2017 05/2020 (36 months) 05/2021 | ||
3.3 03/2017 05/2017 01/2018 (8 months) 07/2018 | ||
**3.4** 09/2017 11/2017 11/2020 (36 months) 11/2021 | ||
4.0 09/2017 11/2017 07/2018 (8 months) 01/2019 | ||
4.1 03/2018 05/2018 01/2019 (8 months) 07/2019 | ||
4.2 09/2018 11/2018 07/2019 (8 months) 01/2020 | ||
4.3 03/2019 05/2019 01/2020 (8 months) 07/2020 | ||
**4.4** 09/2019 11/2019 11/2022 (36 months) 11/2023 | ||
5.0 09/2019 11/2019 07/2020 (8 months) 01/2021 | ||
... ... ... ... ... | ||
======= ============== ======= ======================== =========== | ||
|
||
.. [1] Symfony 2.4 maintenance has been `extended to September 2014`_. | ||
.. [2] Symfony 2.8 is the last version of the Symfony 2.x branch. | ||
.. [3] Symfony 3.0 is the first version to use the new release process based on five minor releases. | ||
|
||
.. tip:: | ||
|
||
|
@@ -133,11 +150,6 @@ of Symfony to the next one. | |
Whenever keeping backward compatibility is not possible, the feature, the | ||
enhancement or the bug fix will be scheduled for the next major version. | ||
|
||
.. note:: | ||
|
||
The work on a new major version of Symfony starts whenever enough major | ||
features breaking backward compatibility are waiting on the todo-list. | ||
|
||
Deprecations | ||
------------ | ||
|
||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[...] the previous major version.