Home

>

Tools

>

Drupal

>

Releases

>

8.8.0-alpha1

Drupal Release: 8.8.0-alpha1

Pre Release

Tag Name: 8.8.0-alpha1

Release Date: 10/17/2019

Drupal LogoDrupal

Highly flexible, open-source content management system known for complex, scalable web applications. Preferred by government, educational, and large enterprise websites requiring advanced customization and security features. Robust module ecosystem.

TL;DR

Drupal 8.8.0-alpha1 introduces significant architectural improvements and new features, with a focus on media management, accessibility, and developer experience. The Media Library module is now stable, providing an intuitive interface for managing media assets. Path aliases have been converted to full-featured entities, improving multilingual support. The new experimental Claro administration theme offers a modern, accessible interface. Performance improvements include better caching and transaction handling. This release also includes important API changes, deprecations of legacy code, and preparation for Symfony 4 compatibility.

Highlight of the Release

    • Media Library module is now stable, providing an intuitive interface for managing media assets
    • New experimental Claro administration theme with a modern, accessible interface
    • Path aliases converted to full-featured entities with publishing status
    • Improved accessibility throughout the system, especially in the Media Library
    • New Composer project templates for easier Drupal project scaffolding
    • Config exclude functionality added to core for selective configuration management
    • Improved JSON:API capabilities with better resource type management
    • Better performance with improved caching and transaction handling
    • Preparation for Symfony 4 compatibility with numerous code updates
    • Deprecated jQuery UI components in favor of more modern alternatives

Migration Guide

Path Alias Entity Conversion

Path aliases have been converted to full-featured entities. If you have custom code that:

  • Directly manipulates the url_alias table
  • Uses the deprecated path.* services
  • Creates or updates path aliases programmatically

You should update your code to use the new entity API:

// Old way
\Drupal::service('path.alias_storage')->save($source, $alias, $langcode);

// New way
$path_alias = \Drupal::entityTypeManager()->getStorage('path_alias')->create([
  'path' => $source,
  'alias' => $alias,
  'langcode' => $langcode,
]);
$path_alias->save();

jQuery UI Component Deprecations

Many jQuery UI components have been deprecated in favor of more modern alternatives:

  • jQuery UI Accordion: Use the Details/Summary HTML5 elements
  • jQuery UI Autocomplete: Consider using the core autocomplete library
  • jQuery UI Button: Use the Button HTML element with appropriate CSS
  • jQuery UI Dialog: Consider using Drupal's Dialog API
  • jQuery UI Menu: Use appropriate HTML and CSS for menus

For components still needed, consider using the contributed modules that will maintain these libraries.

Stable Theme Fallback Deprecation

The fallback to Stable theme has been deprecated. If your theme doesn't specify a base theme, it will no longer automatically use Stable in Drupal 9. Update your theme's info.yml file to explicitly declare Stable as the base theme if needed.

Procedural Function Deprecations

Many procedural functions have been converted to services:

  • drupal_set_time_limit() → Use appropriate PHP functions directly
  • simpletest_* functions → Use the new testing infrastructure
  • _file_save_upload_from_form() → Use the appropriate form API
  • tracker.pages.inc functions → Use the tracker service
  • drupal_installation_attempted() → Use the appropriate installation service

Entity API Changes

  • EntityManagerInterface is deprecated, use specific services instead
  • ModerationInformation::isLatestRevision(), getLatestRevision(), and getLatestRevisionId() are deprecated
  • The Views relationship from moderated content to "content_moderation_state" entity is deprecated

Testing Infrastructure Changes

The testing infrastructure has been significantly updated:

  • PHPUnit 7 is now supported (while maintaining PHPUnit 6.5 compatibility)
  • Many simpletest functions have been deprecated or converted to services
  • A new test type has been added for real update testing

Upgrade Recommendations

Recommendation Level: Standard Upgrade

Drupal 8.8.0-alpha1 introduces significant improvements and new features but also includes many API changes and deprecations in preparation for Drupal 9. This is an alpha release and should not be used on production sites.

For Development and Testing Sites:

  1. Test thoroughly: This alpha release contains substantial architectural changes, particularly around path aliases, media handling, and configuration management.

  2. Update custom code: Review custom modules and themes for compatibility with the deprecated APIs and prepare for Drupal 9 by addressing deprecation notices.

  3. Test with Claro: If you're interested in the new administration theme, enable and test the experimental Claro theme to provide feedback.

For Production Sites:

Wait for the stable 8.8.0 release before upgrading production sites. This alpha release is intended for:

  • Developers to test their custom code against upcoming changes
  • Module maintainers to update their modules for compatibility
  • Site builders to explore new features in a safe testing environment

Module Compatibility:

Modules that interact with the following systems may require updates:

  • Path alias management
  • Media and media library integration
  • Configuration management
  • Entity reference fields
  • jQuery UI components

Before Upgrading:

  1. Create a complete backup of your site
  2. Update to the latest version of Drupal 8.7.x first
  3. Test the upgrade on a staging environment
  4. Review all deprecated code notices and update custom code accordingly
  5. Check for module compatibility with 8.8.x

Bug Fixes

Media Management Fixes

  • Fixed issues with Media Library integration with Content Moderation
  • Resolved problems with media items losing focus when hovering over titles
  • Fixed AJAX issues when attaching media to media reference fields in nodes
  • Corrected issues with media library not enforcing order, leading to different hashes
  • Fixed disappearing edit buttons and captions on media embeds when using dialogs

Entity Reference and Field Handling

  • Fixed hardcoded result size limit in entity reference autocomplete widget
  • Resolved issues with denormalizing NULL values for optional address or geolocation fields
  • Fixed entity storage returning unwanted entities when static cache is warm
  • Corrected problems with EntityReferenceAutocompleteWidget size settings

Multilingual and Translation Issues

  • Fixed broken translation in EntityType::getLowercaseLabel()
  • Resolved issues with language being NULL in translation source queries
  • Fixed problems with vocabulary translations and taxonomy term references for Drupal 7 node translations

Security and Performance

  • Added flood protection to password reset form
  • Fixed race condition in file_save_upload causing data loss
  • Resolved issues with invalidating broad cache tags that caused lock wait time and deadlocks

Views and UI

  • Fixed RSS view with fields giving wrong URLs from path fields
  • Corrected broken ARIA references in Views mini pager Twig template
  • Fixed issues with Views UI form rebuilding
  • Resolved problems with Views plugin "Rendered Entity" not adding langcode in render function

New Features

Media Library Now Stable

The Media Library module is now stable and provides an intuitive interface for managing media assets. Content editors can now:

  • Select and reuse existing media items
  • Upload new media directly through the library interface
  • Use improved keyboard navigation and focus management
  • Benefit from better integration with Content Moderation
  • Choose view modes for embedded media in the editor

New Experimental Claro Administration Theme

Drupal 8.8 introduces the Claro administration theme as an experimental theme. Claro provides:

  • A modern, clean user interface
  • Improved accessibility
  • Better contrast and visual hierarchy
  • Responsive design optimized for various devices
  • Consistent UI patterns throughout the administration interface

Path Aliases as Entities

Path aliases have been converted to full-featured entities, providing:

  • Better multilingual support
  • Publishing status for path aliases
  • Improved administration through entity forms
  • Better integration with other entity-based systems

Config Exclude Functionality

A new core feature allows excluding specific configuration items during import/export operations:

  • Selectively exclude configuration items
  • Maintain environment-specific configurations
  • Better workflow for configuration management

Composer Project Templates

New Composer project templates make it easier to scaffold Drupal projects:

  • Composer-ready project templates in core
  • Better integration with Composer's scaffolding features
  • Improved handling of .gitignore and .editorconfig files

Help Topics Search

The Help Topics system now includes search capabilities:

  • Search through available help topics
  • Better organization of help content
  • Improved accessibility for help documentation

Security Updates

Password Reset Protection

Added flood protection to the password reset form, addressing a long-standing security issue (since 2011). This prevents brute force attacks against the password reset functionality by limiting the number of password reset attempts within a given time period.

File Upload Security

Fixed a race condition in file_save_upload that could cause data loss. This issue could potentially be exploited to cause denial of service or data corruption.

Vendor Hardening

Resolved problems with the Vendor Hardening Plugin when using the File Security component, ensuring better protection of vendor files.

Exception Handling

Improved exception handling for invalid 'core_version_requirement' in info.yml files, preventing potential security issues from malformed extension files.

Performance Improvements

Caching and Transaction Improvements

  • Improved handling of invalidating broad cache tags like 'node_list' early in transactions, reducing lock wait time and probability of deadlocks
  • Switched to a null backend for all caches when running database updates, improving update performance

Entity Storage Optimization

  • Fixed memory leak in the entity schema converter
  • Improved entity storage handling to prevent returning unwanted entities when static cache is warm
  • Better handling of workspace associations with custom indexing

JSON:API Performance

  • Refactored JSON:API FieldResolver to use resource types instead of entity type ID and bundle ID pairs
  • Improved caching of JSON:API resource normalization

Database Query Optimization

  • Refactored TestDatabase::lastTestGet to use dynamic queries
  • Added support for NOT REGEXP operator to PostgreSQL
  • Improved efficiency of search indexing calls

JavaScript Modernization

  • Replaced jQuery UI position() with PopperJS for better positioning performance
  • Removed unnecessary JavaScript libraries like html5shiv and domready
  • Deprecated unused jQuery UI components in favor of more modern alternatives

Impact Summary

Drupal 8.8.0-alpha1 represents a significant step forward in Drupal's evolution, particularly in media management, user interface improvements, and architectural refinements. The stabilization of the Media Library module marks a major milestone in Drupal's media handling capabilities, providing content editors with a more intuitive and accessible interface for managing media assets.

The introduction of the experimental Claro administration theme signals Drupal's commitment to modernizing its user interface while improving accessibility. This theme offers a cleaner, more consistent design that will eventually become the default administration theme in Drupal 9.

From an architectural perspective, the conversion of path aliases to full-featured entities improves multilingual support and provides better integration with Drupal's entity ecosystem. The addition of config exclude functionality to core addresses a long-standing need for more flexible configuration management.

For developers, this release includes numerous API improvements and deprecations in preparation for Drupal 9. The new Composer project templates make it easier to scaffold Drupal projects, while the modernization of JavaScript dependencies (replacing jQuery UI components with more modern alternatives) improves frontend performance and maintainability.

Performance improvements, particularly around caching and transaction handling, address some significant pain points in high-traffic sites. The security fixes, especially the addition of flood protection to the password reset form, enhance Drupal's already strong security posture.

Overall, this alpha release provides a preview of the substantial improvements coming in Drupal 8.8.0, while giving developers and site builders time to prepare for the changes. The focus on media management, accessibility, and developer experience reflects Drupal's strategic direction toward a more user-friendly and modern content management platform.

Statistics:

File Changed300
Line Additions11,183
Line Deletions2,164
Line Changes13,347
Total Commits250

User Affected:

  • Can now use the stable Media Library module for improved media management
  • Benefit from the new Claro administration theme (experimental) with improved UI/UX
  • Have access to better path alias management with full entity support
  • Can use the new config_exclude functionality to exclude configuration during import/export
  • Will experience improved performance with better caching and transaction handling

Contributors:

larowlanwebchickgobaalexpottxjmlauriiieffulgentsia