The news about the forthcoming Drupal 9 release in June 2020 is the hottest topic in the Drupal world. Website owners and developers start planning for Drupal 9. One of the key points in this plan is to prepare for Drupal 9 with the Upgrade Status module to make sure the site uses no deprecated code.

We are glad to announce that there is one more big advancement in the Drupal 9 readiness field. The newly released 8.7.7 version introduced the core versioning support. It allows developers to declare their project compatibility with Drupal 8 and Drupal 9. More details below!

Drupal 9 readiness: how are things going for modules?

The community is gradually building D9 in D8 while deprecating older APIs and functions and supporting new releases of third-party dependencies. Among the examples are the drupal_set_message() function deprecation or the Drupal 8.8.x-dev compatibility with the new Symfony 4.3.3.

Being up-to-date with all of this means complete and instant Drupal 9 readiness for modules and themes. And it's great to notice that more contributed projects are D9 compatible!

According to Gábor Hojtsy, the famous Drupal contributor and product manager, their number increased from 48% in March to 54% in July 2019.

Core version requirement key introduced in Drupal 8.7.7!

As of Drupal 8.7.7, providing Drupal 9 readiness reaches a new level. So if anyone asks what’s new in Drupal 8.7.7, it’s the core versioning support that comes to mind first. Gábor Hojtsy devoted a special blog post to describe this innovation and called it “huge.”

The key point is that all module and theme developers will need to add one more line to their info.yml file — the core_version_requirement key.

Using it, developers can specify the multiple core versions their projects are compatible with. For example, they can mark both Drupal 9 readiness and compatibility both with the eighth version. Here is how the lines might look for such a project:

name: Module Name

type: module

core: 8.x

core_version_requirement: ^8 || ^9

The new key allows you to be even more specific about the version compatibility by specifying minor versions (8.7.7, 8.8.3. etc.), which was not possible with the traditional “core: 8.x” key.

If a project only works with the 8.7.7 version or later, the developer will need nothing but the new key to mark its D9 readiness:

name: Module Name

type: module

core_version_requirement: ^8.7.7 || ^9

However, versions older than D8.7.7 do not support this improvement. So if a project is also meant to work with them, the traditional “core: 8.x” key should be listed along with the new one in the info.yml file.

Let your website’s Drupal 9 readiness be ultimate!

With so many opportunities for full Drupal 9 readiness, it’s time to start. Our development and support team will assist you in:

updating your site to version 8.7.7 and always keeping it up-to-date with fresh releases

checking your website for deprecated code and giving it a cleanup

marking the Drupal 9 readiness of your projects according to the newly introduced requirements

Contact our web developers to keep your website prepared — and let it fly swiftly and effortlessly to the ninth version in June 2020!