Drupal Core News: Drupal 10 PHP requirements will be announced at least five months before Drupal 10.0.0

Drupal CMS

After the release of Drupal 9, Drupal community members provided feedback that they would have liked to know the Drupal 9 platform requirements further ahead of time. Therefore, we committed to finalizing the Drupal 10 platform requirements earlier in our development process.

Now that Drupal 10 development is underway, we’d like to provide an update on the Drupal 10 platform requirements, as well as an official schedule of when the final decisions will be made: Drupal 10 platform requirements will be finalized at least five months before the release of Drupal 10.0.0.

What are the Drupal 10 platform requirements so far?

PHP requirements

Drupal 10 currently requires at least PHP 8.0.2, and PHP 8.1 is recommended. We are still evaluating whether to require PHP 8.1.

The PHP project provides security support for PHP 8.0 until November 2023, but Drupal 10 will be supported for much longer. After November 2023, some of Drupal’s Composer dependencies might begin dropping support for PHP 8.0 (even though security patches for PHP 8.0 itself may still be available from other organizations like Linux distributions).

Therefore, even if PHP 8.1 is not required for Drupal 10.0.0, it might be required for a future minor release of Drupal 10. (For more information, follow the ongoing discussion in our policy issue on handling end-of-life PHP versions during the Drupal 10 and future release cycles.)

Database server requirements

The database server requirements for Drupal 10 have been finalized and can be reviewed in the Database server requirements documentation.

Web server requirements

The Drupal web server requirements remain the same for Drupal 9 and 10.

What are the possible release dates for Drupal 10?

The final release date for Drupal 10 depends on when all the requirements are completed. There are three possible release scenarios:

If all requirements are completed by mid-March 2022, Drupal 10 will be released on June 15, 2022.
 
If all requirements are completed by mid-May 2022, Drupal 10 will be released on August 17, 2022.
 
If all requirements are completed by mid-September 2022, Drupal 10 will be released on December 14, 2022.

When will the final PHP version requirement be announced for each release scenario?

It is already less than 5 months before June 15, 2022. Therefore, if we ship Drupal 10.0.0 on June 15, it will be with the current PHP 8.0.2 requirement.
 
If we plan to release on August 17, 2022, we will communicate by March 17 if the requirement is increased to PHP 8.1. If we have not communicated that before then, then the requirement will be PHP 8.0.2.
 
If we plan to release on December 14, 2022, we will communicate by July 14 if the requirement is increased to PHP 8.1. If we have not communicated that before then, then the requirement will be PHP 8.0.2.

What factors are considered when setting the PHP version requirement?

Our primary goal when setting release schedules and requirements is to ensure that Drupal upgrades are easy forever. The specific factors that inform our decision about our PHP version requirements are, in order of priority:

The PHP version compatibility of Drupal dependencies (both now and in the future).
 
The availability and use of the PHP version in the PHP ecosystem (by Linux distributions, hosting service providers, Drupal site owners, projects in the Composer ecosystem, etc.).
 
The specific language features of new PHP versions when these are strategically valuable for Drupal.

In other words, we first ensure that Drupal’s dependencies are compatible with a given PHP version, and that they will remain compatible with it for several years. Then, we evaluate whether enough of the PHP ecosystem has adopted the PHP version for it to be a viable choice for sites upgrading from Drupal 9 to Drupal 10 this year. Finally, if multiple PHP versions are viable choices under both those criteria, we will choose the PHP version that has the most useful language features for Drupal.

How can I give input for which PHP version will be required?

Take our survey on PHP 8.0 and 8.1 availability to help us understand your options. Thanks!