With the official release only a few days away (June 3, 2020) and the Drupal 9 porting weekend having just completed with a big effort by KarinG (https://github.com/colemanw/webform_civicrm/pull/314), what is the status of CiviCRM working with Drupal 9?
Trying to upgrade a D8.8.6 site to D9 ->
karins-MBP:d9civicrm.local sysadmin$ composer require drupal/core-recommended:~9.0.0@dev drupal/core-composer-scaffold:~9.0.0@dev --update-with-dependencies --no-update ./composer.json has been updated karins-MBP:d9civicrm.local sysadmin$ composer update
Found two issues:
symfony conflict -> Drupal 9 requires 4.4 civicrm/civicrm-core 5.25.0 requires symfony/dependency-injection ^2.8.50 || ~3.0 pear exception conflict: Can only install one of: pear/pear_exception[v1.0.1, v1.0.0]; - pear/log 1.13.1 requires pear/pear_exception 1.0.0 -> satisfiable by pear/pear_exception[v1.0.0].
WIP PR by Core Team -> to resolve the symfony conlict: https://github.com/civicrm/civicrm-core/pull/17380
This now works:
a) create a D8 project ->
composer create-project drupal/recommended-project d9civicrm.local
composer require civicrm/civicrm-core:dev-master civicrm/civicrm-packages:dev-master civicrm/civicrm-drupal-8:dev-master civicrm/civicrm-asset-plugin:~1.0.1
Go through the usual motions of installing D8 in your favourite language, database and timezone -> and then enable CiviCRM Core [you will need to ensure your
web/sites/default dir is writable for the
civicrm.settings.php file to be generated].
d) then onto D9 ->
composer require pear/pear_exception:'1.0.1 as 1.0.0'
composer require drupal/core-recommended:^9.0 drupal/core-composer-scaffold:^9.0 drupal/core-project-message:^9.0 drupal/core-dev:^9.0 --update-with-all-dependencies
Next step is here:
[that will make CiviCRM installable as a D9 module].
Many more steps to go I'm sure! Thanks to Core Team and Mikey for their quick action on some of these items!
Update -> as of June 03 - 2020 -> webform_civicrm module is officially D9 Compatible:
As of CiviCRM version 5.31, Civi will work with Drupal 9. https://civicrm.org/blog/dev-team/civicrm-531-release