Drupal released its latest version - Drupal 8.7.0 on 1st May 2019. The latest version of Drupal 8.7.0 accomplishes tasks like making page layouts, media management and decoupled web experiences easier to manage and deliver, conserving production time and effort and it was recently revealed at DrupalCon Seattle 2019.
Core objectives when developing Drupal 8.7 were to:
- Make Drupal easy for content creators and site builders
- Make Drupal easy to evaluate and adapt.
- Keep Drupal impactful and relevant
- Reduce total cost of ownership for developers and site owners
JSON:API at Core:
The latest Drupal 8.7 update includes JSON:API as a part of the Drupal core!
This makes Drupal an API first platform for building both decoupled and coupled applications. JSON API module exposes the entities as a standards-compliant web API and data can then be pulled from third-party URLs or API’s.
JSON:API is designed specifically to minimize both the number of requests and the amount of data transmitted between clients and servers. This efficiency is achieved without compromising readability, flexibility, or discoverability.
By enabling the JSON:API module, you can immediately create a full REST API endpoint for every type(content, taxonomy, user, etc.) in your Drupal application. JSON:API inspects your entity types and their bundles to dynamically provide URLs to access every entity using the standard HTTP methods, GET, POST, PATCH, and DELETE.
JSON:API adopts the philosophy that the module should be production-ready. This means the module is highly opinionated about where your resources will reside, what methods are immediately available for them, and allows Drupal Core's permissions system control the access. The configuration pages are no longer present in this upgrade (Drupal 8.7). This means that you can get an API-driven Drupal application up and running with minimal effort.
Watch the JSON:API demohere!
Stable Layout Builder
The Stable Layout Builder was released with Drupal 8.6 as an experimental module and now it is stabilized in Drupal 8.7.
Drupal 8's Layout Builder allows content editors and site builders to easily and quickly create visual layouts for displaying content. Users can customize how content is arranged on a single page, across content types, or even create custom landing pages with an easy to use drag-and-drop interface.
Explore the sections below to find out how to get started with Layout Builder and how to apply it to templated content types. Layout Builder is anchored on one of Drupal’s stronger features – the ability to create structured content; but it faces some of the same accessibility challenges encountered by WordPress’ Gutenberg editor. Drupal's Layout Builder offers a single, powerful visual design tool for three use cases:
Layouts for templated content: The creation of "layout templates" that will be used to layout all instances of a specific content type (e.g. blog posts, product pages).
Customizations to templated layouts: The ability to override these layout templates on a case-by-case basis (e.g. the ability to override the layout of a standardized product page).
Custom pages: The creation of custom, one-off landing pages not tied to a content type or structured content (e.g. a single "About us" page).
Watch the Demo of Drupal 8 Layout Builderhere!
Media Library
Drupal 8.6 had Media Library in the Drupal core, which was a part of Media Initiative. In Drupal 8.7 Media Library comes with a new stylish and handy user interface. Which makes it nice to look and nice to work with. Media library is now stable.
Third-party library updates
- Guzzle has been updated from 6.3.0 to 6.3.3.
- Previously, Drupal packaged a copy of the PEAR Archive_Tar library in a Drupal core namespace. In Drupal 8.7, this has been deprecated and replaced with a proper Composer dependency on this library. The dependency has also been updated to version 1.4.6.
- Stylelint has been updated from 9.1.1 to 9.10.1. Stylelint version: https://github.com/stylelint/stylelint/releases/tag/9.10.1
- Coder to ^8.3.1
- CKEditor has been updated to 4.11.3.
- Twig has been updated to 1.38.4.
- A number of other PHP dependencies have also been updated, including:
- composer/installers to 1.6.0
- composer/semver to 1.5.0
- egulias/email-validator to 2.1.7
- paragonie/random_compat to v2.0.18
- Most symfony/* components to v3.4.26
- symfony/http-foundation to v3.4.27
- symfony/polyfill-* to v1.11.0
- typo3/phar-stream-wrapper to v2.1.0
Other updates you can find in Drupal 8.7 are:
Internet Explorer 9 and 10 will not be supported in Drupal 8.7
The 8.7.0 release is a final goodbye to Internet Explorer 9 and 10. It removes a workaround that still existed in D8.5 and D8.6 Issue link: Internet Explorer 9 and 10 support dropped from Drupal 8.4.x
Goodbye PHP 5 support
Drupal 8.7 is the last release to support PHP 5. Updates for existing websites that use PHP 5 are still possible, but a warning will be displayed. In release 8.8, Drupal security updates will require PHP 7.
Entity updates will not be automatic
In new Drupal 8.7.0 release, the support for automatic entity updates has been removed. The reason is data integrity issues and conflicts. So the drush entity: updates (drush entup) command no longer works. Changes to entities will now be performed using standard update procedures.
Symfony 4 and 5 compatibility issues resolved
Additionally, numerous critical Symfony 4 and 5 compatibility issues are resolved in this release.
Changes to base themes (Stable, Classy)
This release includes some small changes to the core's base themes (Stable, Classy). Themes that extend one of these base themes should review the following changes. JavaScript messages template changes. Pager CSS ID changed from "pagination-heading" to a unique ID.
These Drupal upgrades are gradually getting us ready for Drupal 9. If you have questions regarding Drupal upgrades we are here to help. Drop us a word at business@qed42.com.