Once again, it was a real struggle to update this site from Drupal 9 to Drupal 10. It took over a week. Why?

  • The change in CKEditor from 4 to 5 caused me several retries and great grief until I figured out what was required.
  • Composer does not recognize patched modules, which requires multiple kludges to fix.
  • The upgrade_status module itself installed things that prevented the upgrade.
  • Some modules that claim to be D10 ready are not.
  • Some modules that are really needed are not yet updated for D10, requiring work-arounds.
  • Some modules have D10 versions that do not work with D9.5. You will have to uninstall them and reinstall after the upgrade. This may ruin some parts of your site.

The steps to take

  • Install upgrade_status module to give hints at what needs upgrading
  • Update or remove modules. This is a two-step process: First uninstall the module using Extend/Uninstall, and then using composer remove.
    • If your site predates using composer, reinstall all modules using composer.
    • Remember, FIRST uninstall the module in Extend/Uninstall, and THEN use composer remove to remove it from composer.json. Themes must be uninstalled in Appearances, and also uninstalled using composer.
    • NOTE: paypal_payment cannot be successfully removed using just the GUI. I think the following works:
      • In the GUI, uninstall payment, currency, plugin, currency, and finally paypal_payment
      • composer remove drupal/paypal_payment drupal/currency drupal/paypal_payment drupal/plugin
  • If some modules need patches for D10 compatability
    • Install cwegans patch module: composer require cweagans/composer-patches
    • Install https://github.com/mglaman/composer-drupal-lenient
      composer config minimum-stability dev
      composer require mglaman/composer-drupal-lenient
      • Modify composer.json to list the patched modules
        composer config --merge --json extra.drupal-lenient.allowed-list '["drupal/token"]'

"patches": {
    "enable-patching": true,
    "drupal/simple_image_rotate": {
          "Rector patch": "https://www.drupal.org/files/issues/2022-07-18/simple_image_rotate.2.1…"

     "drupal/superfish": {
           "rector patch": "https://www.drupal.org/files/issues/2023-01-18/3299991-drupal-10-compat…"

"drupal-lenient": {
"allowed-list": ["drupal/superfish", "drupal/simple_image_rotate"]
In order to remove CKEditor4, you must remove the things that it depends upon. They can be reinstalled later (but some only work with CKEditor4).
  • Remove video embed WYSIWYG from text formats & editors.
  • Uninstall video_embed_WYSIWYG, media, field
  • Remove CKEditor (4) from all text formats & editors. (replace with None)
  • Remove upgrade_status module after having used it. (It does not upgrade properly)
  • Remove panelbutton (and colorbutton if there)
  • Remove CKeditor (4)
  • Remove module_missing_message_fixer
  • Also, remove or install depricated modules or themes that are no longer in core:
 (Currently using Removed core modules You must add the following contributed modules and reload this page.
 * Color [1]
 * Quick Edit [2]
 * RDF [3]
 These themes are installed on your site but are no longer provided by Core.
For more information read the documentation on deprecated themes. [4]

[1] https://www.drupal.org/project/bartik
[2] https://www.drupal.org/project/seven
[3] https://www.drupal.org/project/classy
[4] https://www.drupal.org/node/3223395#s-recommendations-for-deprecated-themes

After the update

 arx-e commented about a month ago

Combining instructions in the above comments the procedure* is the following:
* after having updated to Drupal 10.x and Bootstrap5 3.x

    Get the two themes from Drupal 9.4.8
    Copy the two themes in core/themes
    Edit the info.yml file deleting the line "hidden: true"
    Uninstall the two themes using Drupal interface at Appearance
    Now you can delete the two themes from the core/themes directory and everything should be fine	
  • Go back to text formats & editors and enable ckeditor5 for GUI formats
  • Change settings.php permissions back to no write: chmod 444 settings.php
  • Run a status report to find any errors.
  • Alas, keep checking patched sites for released versions, and update any modules with fixed version numbers.

Add new comment

Plain text

  • No HTML tags allowed.
  • Web page addresses and email addresses turn into links automatically.
  • Lines and paragraphs break automatically.


  • No HTML tags allowed.

The comment language code.

CAPTCHA This question is for testing whether or not you are a human visitor and to prevent automated spam submissions. Image CAPTCHA

Enter the characters shown in the image.