Drupal 9.4.0-beta1 has been recently released, which defines all deprecated APIs for Drupal 10 (other than whole deprecated modules). Drupal 10.0.0 is scheduled to be released on December 14, 2022. The upgrade from Drupal 9 to Drupal 10 should be even easier than Drupal 8 to 9 was. Making a project that’s already compatible with Drupal 9 compatible with Drupal 10 requires removing deprecated API uses. When looking at just one project, there are usually only a few of those that need changing, but when we consider managing over 8,200 Drupal 9 modules on drupal.org the upgrade process could easily take hundreds or thousands of hours from the Drupal community.

Fortunately we can accelerate this process dramatically by using Drupal Rector, a tool developed by Palantir.net and Pronovix. Drupal Rector can be used by developers to automatically fix many of the deprecated API uses needed to make a module Drupal 10 compatible. In fact Drupal Rector can currently fix deprecated API uses in thousands of existing projects on Drupal.org. Although using Drupal Rector is not difficult, running it manually on all Drupal 9 projects would have taken hundreds of developer hours to complete.

To accelerate upgrading of modules to Drupal 10 the Drupal Association has partnered with Acquia and Palantir to automatically provide patches generated by Drupal Rector for all contributed modules possible. For many modules these patches will be able to make the modules fully compatible with Drupal 10. For some modules it will still be necessary for a developer to manually replace other deprecated API uses. Patches will also be provided for contributed themes.

These patches will be posted to issues created by the Project Update Bot which was also used for the same purpose in the Drupal 8 to 9 upgrade. The bot is not associated with any individual or company and therefore will not affect issue credits for any individual or company. If maintainers find the patches provided by the bot useful they are welcome to credit the bot account as a way to provide feedback on this initiative.

It will be up to the project maintainers to decide if they want to use these patches but in many cases the patches can help speed up the process of updating a module for Drupal 10 dramatically.

Maintainer Options

For project maintainers there are a few options for dealing with these issues

  1. Leave the issue open and apply the provided patch to remove some or all Drupal 10 deprecated API uses. The Project Update Bot will check weekly if Drupal Rector is able to remove new deprecated API uses and post a new patch if possible.

  2. Remove the “ProjectUpdateBotD10” tag from the issue to stop new patches from being posted. If you would like to use the issue and the patch as a starting point simply remove this tag and the bot will not post any new patches. Add the tag back and the bot will post new patches if possible.

  3. Close the issue to stop the bot from posting new patches. If you are already handling deprecated APIs in another issue or otherwise don’t find the patches helpful simply close the issue and the bot will not post any new patches

Providing feedback

If there are problems with one of the patches posted by the Project Update Bot, such as it does not correctly replace a deprecated API uses, you can file an issue in the Rector issue queue. For other issues with the bot, for instance if the issue summary created by the bot is unclear, use the Infrastructure project issue queue using the component “Bot: Drupal Rector”.


Source link