This week is the first target release window for the Drupal 9 beta.
We’ve made significant progress on the beta requirements during the last couple of months thanks to the tremendous amount of work by the community. Based on the outstanding tasks in the meta issue, we are close to completing beta requirements, but not close enough to release it this week.
When will Drupal 9.0.0-beta1 be released?
Given how close we are to completing the beta requirements, we are considering releasing the beta in mid-March if the requirements are complete by March 13. If we do release the beta in 1-2 weeks, Drupal 9.0.0 will still be scheduled for release on June 3, 2020. We will make a final announcement by March 16 about whether there will be a June release.
If any must-have issues remain unresolved by March 13, we will move the beta target window to the first week of May, and Drupal 9.0.0 will be scheduled for August 3, 2020.
This does not affect the expected release dates of Drupal 8.9.0 (scheduled for June 3, 2020) nor the expected release date of Drupal 9.1.0 (planned for December 2, 2020). The Drupal 8 and 7 end-of-life is also still November 2021.
We need your help to meet the beta deadline, whether it is March 13 or April 28! Drupal 9 readiness meetings are every Monday at 7pm UTC in the #d9readiness channel on https://drupal.org/slack. Help us with the issues below.
Current status and issues left for Drupal 9.0.0-beta1
All PHP dependencies (Symfony, Laminas, Twig) have been updated to the versions we intend to use for Drupal 9.0.0, although we will continue to keep up to date with bugfix releases.
In addition to deprecations, we are improving and simplifying in-place updates with update.php to ensure the Drupal 8 to 9 update is smooth and reliable. Four issues remain and could use additional help from experienced contributors:
- #3066801: Add hook_removed_post_updates()
- #3108416: Remove workspace_update_8803() and associated post-update, or re-add test coverage
- #3106666: [pp-1] Remove post updates added prior to 8.8.0
- #3095333: Extend filled database dump with new stable modules and content for them
We are also ensuring that all known critical Drupal 8 upgrade path bugs that may prevent updates from older Drupal 8 versions are fixed in 8.8 and 8.9. Only three remain. These technically difficult issues are critical for Drupal’s data integrity:
- #2917600: update_fix_compatibility() puts sites into unrecoverable state (Needs work and review)
- #3056543: taxonomy_post_update_make_taxonomy_term_revisionable() fails when terms have no default translation (The most recent proposal could use feedback and implementation.)
- #3052318: Update from 8.6.15 to 8.7 fails due to corrupt “menu_link_content” entity data (Needs a completely new patch since the previous approach was not viable.)
Platform requirement changes
Drupal 9 has already raised the minimum PHP version to 7.3. We also want to increase MySQL, PostgreSQL, and SQLite requirements. This includes:
- MySQL, MariaDB, and Percona (required prior to beta1)
- PostgreSQL (Beta deadline; help needed! If you use Postgres, document what versions are available from your hosting provider.)
- SQLite (Might be completed during the beta phase)
Drupal 9 base theme API
We want to add an up-to-date Drupal 9 version of the ‘Stable’ base theme. This issue and the related issues to decouple core themes from Drupal 8 base themes could use review and feedback from theme contributors.
Once all the above issues are complete, Drupal 9 is beta-ready. That means that we will have completed all of the significant code changes we intend to make, and that it should be possible to test updates of real sites against it if contributed and custom code has been ported. Site owners can use the Upgrade Status module to check the Drupal 9 readiness of their modules and themes; see the guide on updating to Drupal 9 for more information.
Other issues to complete prior to final release of Drupal 9
There is a second category of issues that we want to complete before Drupal 9.0.0 is released. Since we have fixed release windows, these also need to be either complete or close to completion, especially for the first beta window, since this gives the shortest amount of time to finish them.
Complete migrations for multilingual content so that all Drupal 7 sites can migrate before Drupal 7 reaches EOL.
Drupal.org and Drupal core should be able to fully handle contributed projects that are compatible with both 8.x and 9.x and not assume core compatibility based on the version or branch name. This requirement spans multiple projects and areas including project listings, the Composer façade, update.xml from Drupal.org, and localization files. Most of the minimum required changes for Drupal core and Drupal.org are already complete; however, there remains one outstanding core regression related to module compatibility as well as a number of followup issues.
Finally, Drupal 9 currently relies on Node.js 8 for transpiling and linting frontend assets. This is core-developer-facing only so we may raise the Node.js requirement after beta.