The 2.7 branch of Symfony is going to be the last version on before Symfony 3.0. Symfony 3.0 will drop all backwards compatibility layers introduced during the 2.x releases.
The support cycle for 2.7 is going to be significantly shorter than the projected support cycle for Drupal 8.
Therefore, while Drupal 8.0.0 will likely ship using Symfony 2.7, in a subsequent minor release we will ugprade Symfony to use the 3.x branch. This will allow us to continue to get bug fixes, performance improvement and security releases more actively and for a longer time period.
Core, contributed and custom modules should not rely on any deprecated Symfony APIs, since these may be removed in any Drupal 8 minor release.
The practicalities of this should look something like the following:
- Drupal 8.0.0 will use Symfony 2.7.
- As soon as Symfony 2.7 beta is released in February 2015, we will incorporate it into the Drupal 8 beta.
- We will continue to incorporate additional Symfony 2.7 beta releases and then the Symfony 2.7 production release (and future Symfony 2.7.x releases) into Drupal 8.0.x releases, both beta and production.
- Going forward, starting now, we should start to try to avoid using deprecated methods in Symfony 3.0. In particular, in order to prepare Drupal for Symfony 3.0, we should start to make our Drupal code more compatible today by taking the suggestion of the Symfony folks and make the optional suggested changes that are discussed at:
Upgrade Guide for Symfony 3.0
- We should have a running issue where we can upload patches to upgrade to 3.x and see what breaks. While we very likely will not ever commit those to 8.0.x, it allows us to file upstream bug reports or fix compatibility issues quicker.
- Once 8.1.x is branched, we can consider running that on the Symfony 3.x branch as one of the changes - assuming the timing is right to hit 3.0.x with 8.1.0.
- If we decide not to do it for 8.1.x, we can consider again for 8.2.x, 8.3.x, etc., but we must update to Symfony 3.x before Drupal 8 LTS.