Deprecated and obsolete extensions

Body

This documentation needs review. See "Help improve this page" in the sidebar.

 

Drupal makes use of extensions to add additional functionality to a website. These extensions include Themes, Modules, and Installation profiles. As Drupal evolves and updates, extensions can become deprecated or obsolete.

Since Drupal 9.3.0 extensions can define a "lifecycle" value in their info file. The value signifies if it is experimental, stable (the default), deprecated, or obsolete.

Following, we'll explain what this means for website owners and developers. We will also explain what to do if your website is using a deprecated or obsolete extension.

Understanding Deprecated Extensions

Deprecated extensions are those that are currently provided in Drupal, but will be removed in a future version. These extensions can still be installed on a website, but it is important to note that they are likely to be removed in a future major release.

When this happens to core modules, the module may be moved to a separate contributed project. This means that the site owner will need to download or require the module separately with Composer at a future date.

The Upgrade Status module will show recommendations for dealing with deprecated modules for your site, as well as assessing your readiness to update to a new major release more generally.

Understanding Obsolete Extensions

  • Obsolete extensions are those that cannot be installed anymore. They are only kept for backwards compatibility for existing sites.
  • These extensions will either be moved to a separate contributed project or removed without a successor on a case-by-case basis.
  • Website owners and developers should take note of these extensions and plan for their replacement or removal.

The anchors and the text on this page for the extensions should not be changed. They are used in Drupal Core change records and the code base. If a change is needed open an issue in the Drupal core issue queue.

Recommendations for Deprecated Themes

  • If you are using a deprecated theme on your website, it is recommended that you start planning to switch to a different, supported theme.
  • The Upgrade status module can provide recommendations for alternative themes.
  • Be sure to test the new theme thoroughly to ensure that it works properly with your website and does not cause any issues.

Bartik

Drupal 10 ships with a new default theme, Olivero. Bartik, which was initially added to core in Drupal 7, has been removed from Drupal 10, but is available as a contributed project. The contributed project works with Drupal 9 and Drupal 10.

Classy

Drupal 10 ships with a Starterkit theme generator which new themes are encouraged to use. The Classy theme is available as a contributed project. Refer the change record for detailed instructions.

Seven

Drupal 10 ships with a new default administrative theme, Claro. We recommend switching from Seven to Claro.

Seven, which was initially added to core in Drupal 7, has been removed from Drupal 10, but is available as a contributed project. The contributed project works with Drupal 9 and Drupal 10.

Stable

Drupal 10 ships with a Starterkit theme generator which new themes are encouraged to use. The Stable theme is available as a contributed Stable themeRefer to the change record for detailed instructions.

Recommendations for Deprecated Modules

  • If you are using a deprecated module on your website, it is recommended that you start planning to switch to a different, supported module.
  • The Upgrade Status module can provide recommendations for alternative modules.
  • Be sure to test the new module thoroughly to ensure that it works properly with your website and does not cause any issues.

Actions UI

The Actions UI module has been deprecated in Drupal 10.3.0 and will be removed from Drupal 11.0. You can add a dependency on the contributed Actions UI module in order to continue using on Drupal 11.x.

Activity Tracker

The Activity tracker module has been deprecated in Drupal 10.1.0 and will be removed from Drupal 11.0. You can add a dependency on the contributed Activity tracker module in order to continue using it with Drupal 10 and Drupal 11.

Aggregator

The Aggregator module has been deprecated in Drupal 9.4 and was removed from Drupal 10.0, because fewer than 5% of Drupal sites use it. You can add a dependency on the contributed aggregator module in order to continue using it with Drupal 10 and Drupal 11.

Book

The Book module is has been deprecated in Drupal 10 and will be removed in Drupal 11.0.  You can add a dependency on the contributed Book project to continue using Book in Drupal 11.x

CKEditor

The old CKEditor module (which integrates with CKEditor 4) has been removed from core in Drupal 10 and is replaced by a new "CKEditor 5" module that integrates with CKEditor 5. The older version still appears as 'CKEditor' when displayed, such as on the extension page.

Most Drupal sites use CKEditor 4, and must do one of the following:

  1. Switch to CKEditor 5 (strongly recommended), or

  2. Install the CKEditor 4 contributed module, which was supported until late 2023. Choose this option only if the site has additional Drupal modules installed that provide additional CKEditor 4 plugins with no CKEditor 5 equivalents yet. (Consult the Upgrade coordination for modules providing CKEditor 4 plugins wiki page for the current status.)

How to upgrade from CKEditor 4 to CKEditor 5

  1. Upgrade to Drupal 9.4.4 or higher
  2. Update modules providing additional CKEditor 4 plugins to the latest release of the major version you're on. CKEditor 4 plugins are PHP files which match the pattern 'src/Plugin/CKEditorPlugin'. Modules that have added CKEditor 5 support should provide support for both CKEditor 4 and 5, and provide an automated upgrade path (for toolbar items and plugin settings) from 4 to 5.
  3. Enable the CKEditor 5 module (leave "CKEditor" module enabled) 
  4. Converting text formats to use CKEditor 5
    1. Go to Text Formats and Editors in the Drupal Configuration user interface and click "Configure" for each text format.
    2. Under Text Editor change selection to "CKEditor 5" and click "Save configuration"
    3. Text formats must be updated one at a time. This will automatically migrate your text format configuration to CKEditor 5.
    4. Disable (outdated) "CKEditor" module.
    5. Note: This will change your configuration so make sure your export it.

A contributed CKEditor 4 module is available. However, CKEditor 4 is end-of-life. The contributed module no longer receives coordinated security releases or other maintenance or bug fixes.

Therefore, sites should only use the CKEditor 4 module if they use contributed modules extending CKEditor that have not yet been updated to work with CKEditor 5.

Color

The Color module has been deprecated in Drupal 9.4 and was removed from Drupal 10.0. In most cases, you will only need the Color module if one of your installed themes (such as Bartik) has overridden colors using the Color module's color picker wheel. You can add a dependency on the contributed Color module in order to continue using on Drupal 10.x.
The contributed module works with Drupal 9.4+ and Drupal 10.

If none of your themes allow color customization through the user interface, consider uninstalling the Color module before you upgrade to Drupal 10.

The core Olivero theme includes its own, more modern user interface for re-coloring without the Color module. This API may eventually be generalized and replace the legacy Color module.

Forum

The Forum module is deprecated in Drupal 10 and removed in Drupal 11.0. If your site is using the Forum module, you need to plan to install the contributed Forum module.

HAL

The core HAL module has been deprecated in Drupal 9.4 and was removed from Drupal 10.0. The project has moved to the contributed Hypermedia Application Language (HAL) module. The contributed module works with Drupal 10 and Drupal 11.

The core JSON:API module offers a superset of the features of HAL, so consider whether JSON:API might be a suitable replacement for your site. Otherwise, if your site is using the HAL module in Drupal 9, you will need to add a dependency to the the contributed Hypermedia Application Language (HAL) module for Drupal 10.

Layout Builder Expose All Field Blocks

The Layout Builder Expose All Field Blocks module is a feature flag module introduced in Drupal 10.3.0 and is deprecated. The module is automatically installed on sites that have the Layout Builder module installed so that the existing behavior is preserved.

Sites should consider uninstalling the module to improve performance. This should be thoroughly tested in development environment first.

Quick Edit

The Quick Edit module has been deprecated in Drupal 9.5 and was removed from Drupal 10.0. The module can be uninstalled safely without any impact on site data, and uninstalling it will result in very limited changes to the user interface for content authors.

Many Drupal site users do not use Quick Edit because it has a variety of user experience issues, so consider whether simply uninstalling Quick Edit might be the best choice for your site.

If you wish to continue using Quick Edit, you can add a dependency on the contributed Quick Edit module in order to continue using on Drupal 10.x. The contributed module currently works with Drupal 9.4+ and Drupal 10.

RDF

The RDF module has been deprecated in Drupal 9.5 and was removed from Drupal 10.0.

RDF was previously installed as part of the standard install profile, but many sites do not use the functionality it provides. If you are not sure what RDF is, it is likely that you can safely uninstall it.

You can add a dependency on the contributed RDF module in order to continue using on Drupal 10.x.
The contributed module works with Drupal 9.5+, Drupal 10 and Drupal 11.

Statistics

The Statistics module was deprecated in Drupal 10 and removed in Drupal 11. If your site is using the Statistics module, you need to install the  contributed Statistics project.

The default .htaccess file changed to remove support for the Statistics module. The htaccess protection is now supplied by the contributed project. Sites using a custom .htaccess file should ensure that the rule, shown below, is removed from their own copy of the file.

# Allow access to Statistics module's custom front controller.
# Copy and adapt this rule to directly execute PHP files in contributed or
# custom modules or to run another PHP application in the same directory.
RewriteCond %{REQUEST_URI} !/core/modules/statistics/statistics\.php$

Tour

The Tour module was deprecated in Drupal 10 and removed in Drupal 11.0.
You can add a dependency on contributed Tour module in order to continue using on Drupal 10.x.
The contributed module works with Drupal 10 and Drupal 11.

Recommendations for Obsolete Modules

  • If you are using an obsolete module on your website, it is important to plan for its replacement or removal as soon as possible.
  • The Upgrade Status module can provide recommendations for alternative modules.
  • Be sure to test the replacement module thoroughly to ensure that it works properly with your website and does not cause any issues.

Migrate Drupal Multilingual

This module's functionality is now provided by the Migrate Drupal module instead. Migrate Drupal Multilingual has been an obsolete, empty stub since before Drupal 9.0.0. You can safely uninstall this module without any change to functionality.

Entity Reference

The functionality of this module was moved to a Drupal core subsystem before Drupal 8.0.0, and the module has been an obsolete, empty stub since before Drupal 9.0.0. You can safely uninstall this module without any change to functionality.

Help Topics

The functionality of this module was moved to a Drupal Help module with Drupal 10.2.0, and the module has been an obsolete, empty stub since before Drupal 11.0.0. Update hook from the Help module should uninstall this module without any change to functionality.

SimpleTest

SimpleTest has been removed from core. You should convert your remaining SimpleTest cases to PHPUnit. You can add a dependency on the contributed SimpleTest module in order to continue running your tests while that conversion is taking place.

Single Directory Components (SDC)

The functionality of this module was moved to Drupal core before Drupal 10.3.0, and the module has been an obsolete, empty stub since before Drupal 11.0.0. You can safely uninstall this module without any change to functionality.

Upcoming Deprecations

  • Keep an eye out for announcements about upcoming deprecations on the Drupal website, forums, and other community resources.
  • Plan ahead and start testing alternative extensions to ensure a smooth transition when the deprecated or obsolete extensions are removed

Troubleshooting

Check dependencies of installed extensions

If an installed extension has a dependency on a deprecated core extension then the deprecated extension is installed. To use the contributed version it must be explicitly required, with composer require.

Check available versions

Always check the available versions and composer instructions on the contributed extension project page. For example, the HAL module has separate branches for Drupal 9 and Drupal 10 compatibility.

Knowledge Category