What Are Experimental Modules in Drupal?

| Drupal
What Are Experimental Modules in Drupal?

Drupal 8 introduced an interesting new approach called "experimental modules".

These experimental modules are included in the Drupal core, and have inspired several questions from OSTraining members. What are these experimental modules, and is it safe to use then?

Yes, experimental modules are shipped with the Drupal 8 core, but they are not yet fully supported. Here's the official explanation:

Experimental modules allow core contributors to iterate quickly on functionality that may be supported in an upcoming minor release and receive feedback, without needing to conform to the rigorous requirements for production versions of Drupal core. Like other features, new experimental modules can only be added in minor releases, but unlike other features, they may change between patch releases while they are still experimental.

Officially, the experimental modules are only for testing:

Experimental modules allow site builders and contributed project authors to test out functionality that might eventually be included as a stable part of Drupal core. Use them at your own risk. See the experimental module version information below to help you evaluate whether you should test the module. Also keep in mind that the experimental module might be removed from Drupal core if it turns out to not be a good fit.

If you install an experimental module, you'll see a message like this:

experimental warning

Is it unusual to have features like this, half-in and half-out of the core? No, not entirely. For example, WordPress used "Features as a Plugin" which resulted in several non-core plugins being officially supported while they were tested and developed. 

To understand the thinking and planning behind experimental modules, I highly recommend this presentation by Gabor Hojtsy:  

What features are included as experimental modules?

More and more important features are being developed using the experimental route. Here are the experimental modules in Drupal 8.0, released in November 2015:

experimental modules 8.0

And here are the experimental modules in Drupal 8.3, released early in 2017. As you can see, the number of experimental modules has more than doubled:

experimental modules 8.3

Currently, only the Big Pipe module has graduated from being an experimental module, to being an official module, but I expect more to make the leap when Drupal 8.4 is released in late 2017.

Only for testing purposes?

Despite the official line, the "only for testing" line is starting to get blurry.

For example, if you install the new version of Display Suite, you will get a message saying you must enable the Layout Discovery module. However, the message also says "Use at your own risk" because experimental modules are provided for testing purposes only. 

That is clearly a confusing situation. Experimental modules are starting to move beyond the testing phase.

You can see this in Dries' keynote from Baltimore. At the 59 minute mark, he gives a great big warning about the dangers of experimental modules. He then gives a great sales pitch for all the cool new features in those modules: 

Summary

The experimental modules approach is an interesting approach to developing the Drupal core. This approach isn't going away and is actually becoming more popular. However, there is the risk of confusion as more contrib modules and sales pitches come to rely on these experimental modules.

If you install a module like Display Suite and are asked to enable an experimental module, I would advise you to tread cautiously. Experimental modules can change and may (although it's unlikely) be removed from the core in future versions.


About the author

Steve is the founder of OSTraining. Originally from the UK, he now lives in Sarasota in the USA. Steve's work straddles the line between teaching and web development.