Update Thunder 3 -> Thunder 6

Prerequisites

These are the instructions to manually update your existing Thunder 3 installation to Thunder 6 including Drupal 9. If you want to do a fresh installation of thunder please visit install Thunder.

The most important change is that we removed the support for AMP and Facebook Instant Articles, because none of them support Drupal 9 currently. If you rely on one of these modules, we recommend that you stay on Thunder 3.5 for now.

You have to make sure that your Thunder 3 project and all its dependencies are fully updated to the most current versions. Run the following command in your docroot:

drush ev "print drupal_get_installed_schema_version('thunder') . PHP_EOL;"
1

This should print the number 8309 or greater. If that is not the case, update your project.

cd ..
composer update
1
2

This should update to Thunder 8.3.5 or greater.

Now run database updates:

cd docroot
drush updb
1
2

You should at least see the Thunder 8308 schema update. If not, double check that the correct version of Thunder is installed, and that drush updb did not throw any errors.

Before you start with the code and database update please disable the libraries module. The libraries module is not Drupal 9 compatible and its most used functionality is now part of Drupal core. It is therefore not needed anymore. If you use other contrib modules that require the libraries module, please check if these modules support the new core functionality. See https://www.drupal.org/node/3099614open in new window

drush pmu libraries
1

The thunder_riddle module was removed from the distribution as well. Make sure you disable the module, before you start the update process.

drush pmu thunder_riddle
1

Since the riddle_marketplace module will not be required by Thunder anymore, you need to add it to your own composer.json.

composer require drupal/riddle_marketplace
1

Drupal 9 compatibility

Because Thunder 6 is based on Drupal 9, check your compatibility before your run the upgrade.

Drupal.org provides a good documentation for that: https://www.drupal.org/docs/upgrading-drupal/how-to-prepare-your-drupal-7-or-8-site-for-drupal-9open in new window

Check compatibility by running tests

If your test suite is based on Drupal tests, e.g. Functional or FunctionalJavascript, you can configure your tests to fail when calling deprecated code.

Add the following line to your phpunit.xml file and run your tests.

<env name="SYMFONY_DEPRECATIONS_HELPER" value="strict"/>
1

If your test suite is based on Behat, https://github.com/caciobanu/behat-deprecation-extensionopen in new window might be interesting for finding deprecated code.

Composer adjustments

We removed some modules from our codebase. If you are using one of below mentioned modules, please require them manually for your project.

composer require drupal/entity --no-update

1
2

Execute the update

All you need to do now is:

composer require thunder/thunder-distribution:~6.0@STABLE --no-update
composer update

drush updb
drush cr
1
2
3
4
5