Drupal Release: 8.8.0-alpha1
Pre Release
Tag Name: 8.8.0-alpha1
Release Date: 10/17/2019
DrupalHighly 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_aliastable - 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 directlysimpletest_*functions → Use the new testing infrastructure_file_save_upload_from_form()→ Use the appropriate form APItracker.pages.incfunctions → Use the tracker servicedrupal_installation_attempted()→ Use the appropriate installation service
Entity API Changes
EntityManagerInterfaceis deprecated, use specific services insteadModerationInformation::isLatestRevision(),getLatestRevision(), andgetLatestRevisionId()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:
-
Test thoroughly: This alpha release contains substantial architectural changes, particularly around path aliases, media handling, and configuration management.
-
Update custom code: Review custom modules and themes for compatibility with the deprecated APIs and prepare for Drupal 9 by addressing deprecation notices.
-
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:
- Create a complete backup of your site
- Update to the latest version of Drupal 8.7.x first
- Test the upgrade on a staging environment
- Review all deprecated code notices and update custom code accordingly
- 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:
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
