Change record status: 
Project: 
Introduced in branch: 
8.x
Introduced in version: 
8.0-beta4
Description: 

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:

  1. Drupal 8.0.0 will use Symfony 2.7.
  2. As soon as Symfony 2.7 beta is released in February 2015, we will incorporate it into the Drupal 8 beta.
  3. 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.
  4. 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
  5. 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.
  6. 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.
  7. 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.
Impacts: 
Site builders, administrators, editors
Module developers
Updates Done (doc team, etc.)
Online documentation: 
Not done
Theming guide: 
Not done
Module developer documentation: 
Not done
Examples project: 
Not done
Coder Review: 
Not done
Coder Upgrade: 
Not done
Other: 
Other updates done

Comments

cosmicdreams’s picture

In reading of https://github.com/symfony/symfony/issues/9406 it seems that in addition to dropping the backwards compatibility layer that has built up in the Symfony 2.x era they will be introducing a backwards compatibility break in how they are working with the HttpKernel.

I think it will be important to study how the HttpKernel has changed in Symfony 3 and make sure that we won't have to introduce backward compatibility breaks in order to support the new spit-into-small-parts HttpKernel.