This project is a command-line script that scans the source of a Drupal 7 module, flags any code that requires updating to Drupal 8/9, points off to any relevant API change notices, and (where possible) will actually attempt to convert the Drupal 7 code automatically to the Drupal 8/9 version!

Check out this demo video:

Read the whole documentation at https://www.drupal.org/documentation/modules/drupalmoduleupgrader including tips on how to write new rules.

Installation

See README.txt for installation and set up instructions. Note that installing this script requires Composer: composer require drupal/drupalmoduleupgrader

Usage

Place the Drupal 7 module you wish to port into your Drupal 8/9 site's /modules directory. To scan code and get a report of code that needs updating and how, run the following inside the Drupal 8 root directory:

drush dmu-analyze MODULE_NAME This will print a report showing any relevant change notices where you can

read more. To attempt to upgrade your Drupal 7 module's code to Drupal 8/9 automatically,

run the following inside the Drupal 8/9 root directory: drush dmu-upgrade MODULE_NAME The script will output a few lines as it attempts various conversions. Go into your modules/MODULE_NAME directory and check out all of your new YAML files and such. ;)

Drupal 9 compatibility

The existing transformations should be Drupal 9 compatible as well, so you can go in one fell swoop from Drupal 7 to Drupal 9. The APIs that do not have transformations will still stay with their Drupal 7 code, full coverage is definitely not guaranteed.