Updating from Varbase 8.x to 9.x
Check the Upgrading a Drupal 8 site to Drupal 9
Check the How and why we deprecated code on the way to Drupal 9
Check the What changes are there for third-party dependencies?
Make sure that Composer version ~1 is in use in the development environment.
sudo composer self-update --1
Later in the steps of upgrade, when the Varbase version reaches 8.8.8 or newer.
Be sure to switch the
composer.json
file to work with Composer ~2Remove
"drupal/drupal-library-installer-plugin": "^0.3",
from the composer.json
file.Make sure that Composer version ~2 is in use in the development environment.
sudo composer self-update --2
composer require "drush/drush:~10.0 || ~11.0"
A number of modules, themes, and libraries was removed from Varbase 9. That for Drupal 9 compatibility, or for change of selection to use better tools, and newer and better UI/UX themes.
Check that all used modules in the project are Drupal 9 Compatible!
drush pm:uninstall libraries
Drupal 9 Compatible but no longer in Varbase Core
- Issue #3170653: Removed Libraries API module as much of its functionality had been moved to Drupal 9 core
drush pm:uninstall libraries_ui
Not Compatible with Drupal 9 yet
drush pm:uninstall mail_edit
Not Compatible with Drupal 9 yet
drush pm:uninstall webform_analysis
Not Compatible with Drupal 9 yet
drush pm:uninstall tour_builder
Not Compatible with Drupal 9 yet
drush pm:uninstall smtp
Drupal 9 Compatible but no longer in Varbase Mail
drush pm:uninstall media_library_theme_reset
Not Compatible with Drupal 9 yet
drush pm:uninstall color_field
Drupal 9 Compatible but no longer in Varbase Core
drush pm:uninstall adminimal_admin_toolbar
Drupal 9 Compatible but no longer in Varbase Core
Keeping Admininimal? Add the following to the composer.json file In case of choosing to keep the Adminimal - Responsive Administration Theme as the default back-end theme.
"drupal/vartheme_admin" : "~6.0"
"drupal/adminimal_admin_toolbar": "~1.0"
Make sure to clear cache and all functional behaviors are working well
drush cr
Drupal 9 Compatible but no longer used by Varbase
drush theme:enable vartheme_claro
drush config:set system.theme admin vartheme_claro
- Uninstall the old admin themes.
drush theme:uninstall vartheme_admin
drush theme:uninstall adminimal_theme
Keeping Admininimal? Add the following to the composer.json file In case of choosing to keep the Adminimal - Responsive Administration Theme as the default back-end theme.
"drupal/vartheme_admin" : "~6.0"
In case of not uninstalling them and starting the update, the following issue will show up in the database update process.
[1]
https://www.drupal.org/docs/8/update/troubleshooting-database-updates
) [error] (Currently using Missing or invalid themes The following themes are marked as installed in the core.extension configuration, but they are missing:
adminimal_theme
vartheme_admin
Make sure to clear the cache and all functional behaviors are working well
drush cr
Check the Drupal 9 Compatibility for all used module.
Search for the "Drupal 9 is here!" notice in the Drupal project page for each required module in the root
composer.json
file for the project. Look for "Requires Drupal:" In the project page for the module in Drupal.org.Projects may or may not use this module. If it was required and used, check the following in the project page.

In case the module was not compatible with Drupal 9 yet, Follow with issues and the maintainer to make the module have a Drupal 9 Compatibility.
Check deprecation on all custom in-house modules.
Make sure that any used library has no conflict with any Drupal 9 core asset libraries.
bash ./bin/update-varbase.sh
Facing issues? Do the steps to do after the commands. next step.
On the step of updating from Drupal ~8 to Drupal ~9, a number of duplicate key "services" detected in
YamlSymfony.php
and Parser.php
.Drupal 8 is using Symfony 3 and Drupal 9 is using Symfony 4
Make sure to have the following in the composer.json file.
"config": {
"bin-dir": "bin/",
"secure-http": false,
"optimize-autoloader": true,
"preferred-install": {
"drupal/core": "dist"
},
"allow-plugins": {
"composer/installers": true,
"cweagans/composer-patches": true,
"oomphinc/composer-installers-extender": true,
"drupal/core-composer-scaffold": true,
"drupal/core-project-message": true,
"dealerdirect/phpcodesniffer-composer-installer": true,
"vardot/varbase-updater": true
}
},
And the following in the extra, as having patches is a critical to have the right logic and complete working site.
Enable patching and composer should exit on patch failure. Not to miss any functionality or fixes after the update.
"enable-patching": true,
"composer-exit-on-patch-failure": true,
The root
composer.json
file should look like the Varbase 9.0.x project template composer.json
file at the following link. Plus all added modules, themes, libraries, and needed patches for the project. It should look like the composer.json file .. not the same exact copy of it
keep the work of the automated updater. Do not do any manual copy and replacing for the outcome composer.json file. Only edit the the same file.
It is better to remove the
composer.lock
and vendor/
folder. Then do a composer installsudo rm -rf bin/ composer.lock vendor/ docroot/modules/contrib docroot/themes/contrib docroot/profiles/varbase docroot/core ;
composer install -vvv
Run Database update number of times. Until no updates are needed.
drush updb
drush cr
Remember to remove Drush from the composer before deploying to the live site.
composer remove drush/drush
Please, DO NOT set the following in the
composer.json
for projects "composer-exit-on-patch-failure": false,
It should be
"composer-exit-on-patch-failure": true,
On wanting to ignore any patch, please use
patches-ignore
Have a look at Ignoring Patches a link for how to do this in the right way
If it was changed in any way or the Varbase Updater had it changed.
Please change it back to
"composer-exit-on-patch-failure": true,
A module could have a security patch or a functional feature patch. If the patch did not apply. That means the project has a security issue, some expected behaviors will be lost or a bug will show up in the project.
- Only remove it from the root composer.json file for the project and do a
composer update
- The Varbase Layout Builder ~10.0 and all needed modules will be required in the default Varbase ~9.0 profile
- Enable Varbase Layout Builder and Varbase Landing (Layout Builder) modules.
Last modified 1mo ago