Drupal 9 was released on June 3, 2020, building on top of an already-powerful core of Drupal 8. So what is all the excitement about Drupal 9? Why should you consider migrating to Drupal 9? What is in it for businesses? How can organizations leverage the benefits that Drupal 9 offers? This article tries to address all these questions.
Our digital world has evolved from static HTML websites to no code/low code platforms in the last two decades. Be it the advent of content management systems, or headless platforms, or digital experience platforms, the pace of the changes we are witnessing is remarkable and all platforms are doing their best to be relevant and powerful to meet the demands of businesses.
Drupal, as a content management system, has come a long way in its evolution starting as an open-source modular CMS way back in 2001. Its vibrant community, quality consciousness, ability to be relevant and innovative to the changing digital needs have made the platform what it is today. The recent release of Drupal 9 has been a major shift in Drupal’s evolution philosophy as this is the first major version release that comes with backward compatibility. So why this shift? What is Drupal 9 trying to achieve compared to its predecessors?
As Dries Buytaert puts it, “The big deal about Drupal 9 is… that it shouldn’t be a big deal.”
Drupal 9’s initial release did not offer new features, like the other major version upgrades did, but did provide a leaner, more secure system that is mobile-first and API-friendly. The future releases of Drupal 9, of course, added some interesting improvements following the six-month release timeline established with Drupal 8.
What is in Drupal 9?
As quoted by Drupal Community, Drupal 9 was mostly built in Drupal 8 using deprecations and optional updated dependency support. Unlike previous new major versions, Drupal 9 is not a reinvention of Drupal. There are only two key differences in Drupal 9:
- Updates of dependencies to versions that stay supported
- Removal of deprecated code from Drupal 8
Other than these two, Drupal 9.0 is the same as Drupal 8.9, the last Drupal 8 minor release.
Why talk about Drupal 9 migration now?
Organizations currently using Drupal 7 or 8 will have to consider migrating for various reasons, with the major one being the end of life for the previous two Drupal versions. Drupal 8 has already reached the end of life as of November 2, 2021. Drupal 7 will reach the end of life by November 28, 2022. This means if a website runs on Drupal 8 or 7 beyond their end of life date, it will not receive community support for Drupal core, contributed modules, or security patches. This makes ongoing maintenance self-reliant and tricky. It is always advisable to stay on the latest supported version of a Drupal version with full-fledged community support.
What are the core features of Drupal 9?
In addition to the above-mentioned main reason, Drupal 9 (8 and above) offers additional interesting features that make the CMS more powerful than ever.
- Backward compatibility
- Richer media management
- Content workflow
- Layout builder
- BigPipe
- Multilingual
- Mobile first
- Headless Drupal
- Views in core
- Structured content
- Improved developer experience
- Theme improvements
Drupal 9 has created a lot of expectations in the open-source and CMS world. In this 9-part series of posts, we try to explain all the essentials that you need to know for you to determine if Drupal 9 is a good fit for your business.
Backward Compatibility
As mentioned above, Drupal 9 is nothing but Drupal 8.9 – deprecated code + updated dependencies. This means if a website is already on Drupal 8.9, migrating to Drupal 9 is a very simple process as all we have to do is remove any deprecated code as appropriate and update the needed dependencies. This is unlike any other previous Drupal versions where migration would require drastic rebuild as architectures and building blocks would tremendously vary between the versions. This also means the effort to migrate a Drupal 8 website to Drupal 9 is relatively less and cheaper.
Richer Media Management
The Media library module, part of Drupal core now, allows users to easily handle media more than ever before. Whether handling existing media or adding new ones, richer media management allows for seamless control.
In addition to this, Drupal has long supported images and generic files, but Drupal 9 expands on this functionality with a generic Media field supporting local audio, video, images, and additional files. Drupal 9 also gives users the ability to embed remote content such as YouTube or Vimeo videos.
Content Workflow
The Workflows module allows users to define multiple workflows with appropriate states (draft, reviewed, published, archived, etc.) and transitions (created draft, review, publish, archive, restore, etc.) allowed between them. The Content Moderation module allows users to create content revisions that are not live yet but have been updated since the last version.
Another promising experimental module that expands the content management features is the Workspaces module. This module allows users to prepare multiple new content items in a separate copy of the live website, that exists in parallel to the live website. These content changes can then be deployed to the live site in a controlled and seamless manner.
Layout Builder
A powerful core module that takes content authoring and layout management to the next level. Content authors will now be able to handle many of the complex layout management needs themselves without relying on developers. It is a unique, visual tool that caters to the following use cases.
- Layouts for templated content
- Customization of templated layouts
- Custom pages
Content editors and site builders can quickly create visual layouts and customize them as needed leveraging an easy-to-use drag-and-drop page builder interface with a WYSIWYG sort of experience.
BigPipe
BigPipe module, part of Drupal core, will increase page view performance by sending the main “content” area of a page while sidebars and other auxiliary content are still being generated using the BigPipe technique invented by Facebook. The idea is to decompose the web pages into small chunks called pagelets and pipeline them through several execution stages inside web servers and browsers. This results in greatly improved front-end perceived performance.
Multilingual
Drupal comes with core modules for language support each performing a different role. Capabilities that come out of the box include:
- Ability to install Drupal in 100 foreign languages
- Translation for content items, such as nodes, taxonomy terms, and user profiles
- Configuration translation, providing an interface to translate website configuration to multiple languages
Core modules in Drupal allow full translation of every part of a site – content types, fields, menus, blocks, taxonomy, users, forms, etc. Drupal also allows users to detect preferred language based on IP address, browser settings, URL, and session. Even languages from the right-to-left direction, like Arabic, Hebrew and Farsi are supported.
Mobile-first experience
In the latest Drupal versions (beyond 8), from the installer to the modules page, every page is designed keeping mobile in mind. The administrative section is fully responsive allowing for seamless content management from a wide array of devices.
Headless Drupal
Drupal 9 (8 & above to be precise) is built on an API-first architecture approach. This means it becomes extremely easy to build a full-fledged decoupled/progressively decoupled digital experience platform with Drupal at its core as the central content store. The presentation layer, Mobile apps, chatbots, social media, etc. can leverage these APIs to seamlessly interact with the Drupal content layer.
Views in Core
The powerful Views module, a query builder UI used to create dynamic blocks and content listings is part of Drupal core. This improves the content fetching process from the database thus improving performance.
Structured Content
Drupal is built on the foundation of structured content management. Users can add fields to all entities and cross-reference entities as needed. A wide array of out-of-the-box fields including phone, email, date, and time are now available in the core.
Developer Experience
For front-end developers, Drupal has many improvements including leveraging HTML 5, additional helper libraries, accessibility enhancements, and enhanced base themes. For backend developers, the web service layer, object-oriented code and improved caching enable them to build better applications.
Theme Improvements
Drupal 9 intends to replace the Bartik theme with a more modern and cleaner Olivero front-end theme. Bartik theme will be fully removed in Drupal 10. This theme is expected to provide various new features and a greater focus on accessibility.
The experimental Claro administration theme keeps improving. Updates in Drupal 9.1 include a clean module administration page, views administration UI designs, status report page, and maintenance page updates. Claro is expected to achieve stability in a future Drupal 9 release and replace Seven as the default administration theme, while Seven will be removed in Drupal 10.
Drupal 9 Dependencies
Following are the core dependencies of Drupal 9.
- Symfony 4
- PHP 7.3 or higher
- Twig 2
- CKEditor 4 and eventually CKEditor 5
- jQuery (but many jQuery components is removed from the core
- Apache 2.4.7 or higher
- Database version requirements are all increased
- MySQL or Percona 5.7.8
- MariaDB 10.3.7
- PostgreSQL 10
- SQLite 3.26
- Drush 10
Drupal 9 Migration Journey
Upgrading from one Drupal version to another has always been effort-intensive. However, that is radically streamlined since Drupal 8 as migration from 8 to 9 migration is relatively simple due to the backward compatibility between the two versions. This pattern is expected to continue even when Drupal 10 gets released.
So how can we prepare for a Drupal 9 upgrade?
For Drupal 8 users…
The first step is to ensure the environment for Drupal 9 is compatible with the necessary prerequisites. This includes everything mentioned in the dependencies section.
The next step is to update the Drupal 8 core to its latest version (8.9.x). Any dependencies that are not used should be removed at this point.
Then all contributed modules need to be updated to their latest versions. Starting from 8.7.7, contributed modules might be compatible with both Drupal 8 and 9 at the same time. Drupal 9 Deprecation Status module can be used to check the module-readiness in Drupal 9 along with any associated issues or patches. Upgrade status module can be used to ensure the latest versions of contributed modules are used. Any compatibility uses or deprecated code in the modules should be removed. Upgrade status module can also be used for custom modules and themes. Any issues identified should be fixed to ensure the code is Drupal 8 and 9-compatible. Many common deprecated APIs are covered in Drupal Rector which helps to get a quick start in the code fixing process.
The final step is to update the Drupal core itself to Drupal 9 and run update.php.
For Drupal 7 users…
Due to the major architecture differences between Drupal 7 and 9, migration will require a rebuild. This means it is going to effort-intensive, relatively costly, and time-consuming process. Having said that, this is the opportunity to remove any redundancies that the website has been carrying over the years and may even consider revamping the user experience if the situation warrants it.
Many tools are available to aid users in the migration process.
Upgrade Status – Helps to find if the modules used in the Drupal 7 site have appropriate Drupal 8/9 versions.
Drupal Module Upgrader – Helps to flag any code that requires an update to Drupal 8/9, API change notices, and wherever possible attempt to convert the Drupal 7 code automatically to Drupal 8/9 version.
Core Migrate Suite – Helps to migrate content, even supporting, Drupal 6 data sources
Acquia Migrate Accelerate – Provides an interface-based tool to automate Drupal 7 to 9 migration by up to 50%.
Additionally, community add-ons aggregated in Migrate Tools and Migrate Plus aid in the migration process.
The Road Ahead for Drupal 9
Drupal 9 is expected to have five minor release series: 9.0 to 9.4. Drupal 9.4 is expected to have community support till November 2023. That date is determined based on support timelines of Drupal 9 dependencies, Symfony 4, and CKEditor 4.
Drupal Project Lead Dries Buytaert announced the following initiatives to move Drupal 9 forward.
- Drupal 10 readiness
- Easier out-of-the-box-experience with seamless integration with media library, layout builder and claro administration theme
- Olivero front-end theme to replace Bartik theme
- Automated security updates
- Decoupled menus
Drupal 10 is expected to be released in June 2022 promising backward compatibility to Drupal 9. Times ahead are going to be exciting for Drupal users and the community alike!
At Workiy, Drupal has been one of our core CMS offerings. With rich experience in delivering complex migrations and digital experience platforms built on Drupal, we can help you navigate your Drupal migration journey seamlessly!
Feel free to contact us at info@workiy.com or reach us at +1 (778) 798-0252!