Drupal 9.0.0-alpha1 came out yesterday! I decided to take it for a test drive by updating this very blog from Drupal 8 to Drupal 9. It was easier than I expected.
I started by doing a bit of preparatory housecleaning to make the update process easier. I recommend you do the same! Specifically I:
- Updated to the latest version of Drupal 8
- Updated all of my contributed modules to their latest versions
- Removed all contributed modules that were not enabled,
drush pm-list --status=disabled --no-core
- Removed my
require-devdependencies from composer.json to reduce the possible version conflicts (I'll add them back in later)
Some background on the Drupal application that I updated:
- Dependencies are managed by Composer
- There are no custom modules (though I show you how to deal with them a bit)
- There is a custom theme
Check out this video to watch me perform the update and troubleshoot issues as they arise:
- Use Composer's alias capability to "trick" various modules into considering Drupal 9.0.0-alpha1 to be 8.8.2:
"drupal/core": "9.0.0-alpha1 as 8.8.2",This allows you to test against contributed modules that may not be 100% Drupal 9 ready.
- Use Acquia's Drupal 9 Deprecation Status page to quickly search for the Drupal 9 readiness status of contributed modules and find related issues and patches
- Use cweagans/composer-patches to apply patches to contributed modules where necessary
- Use Drupal Check to scan custom modules and themes for deprecated code usage
- Clear caches, reload pages, fix issues, and repeat until things stop blowing up!
The process ended up being far smoother and faster than I had expected. Total time was actually a bit less than 10 minutes to get a working updated application locally.
By the time that we have a beta or stable release, I expect it to even better. For those of you following along at home, good luck!