Drupal Release: 8.7.0-alpha1
Pre Release
Tag Name: 8.7.0-alpha1
Release Date: 3/14/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.7.0-alpha1 introduces significant enhancements to the Layout Builder, making it more user-friendly and accessible. The Media Library has been improved with a new grid/table unified view and oEmbed support. Entity types like taxonomy terms and custom menu links are now revisionable. This release also includes important API improvements, performance optimizations, and numerous bug fixes. Symfony compatibility updates prepare Drupal for future framework versions, while the Umami demo theme now supports multilingual functionality with English and Spanish.
Highlight of the Release
- Major improvements to Layout Builder UI and functionality
- Enhanced Media Library with unified grid/table view and oEmbed support
- Taxonomy terms and custom menu links are now revisionable
- Umami demo theme now supports multilingual functionality (English and Spanish)
- Security fixes from SA-CORE-2019-003
- Improved entity API for safely retrieving entity variants for editing
- Better Symfony 4/5 compatibility
Migration Guide
Entity Type Updates
If you have custom entity types that extend from entities that are now revisionable (taxonomy terms, custom menu links), you may need to update your code to handle the new revision capabilities.
// Old code accessing taxonomy terms
$term = Term::load($tid);
// New code should be aware that terms are now revisionable
$term = Term::load($tid);
$revision_id = $term->getRevisionId();
Deprecated APIs
Many deprecated APIs now trigger proper deprecation notices using @trigger_error(). If your code relies on deprecated functions, you should update to use the recommended alternatives:
- Replace
EntityManagerusage with the appropriate services - Use
file_systemservice instead of functions in file.inc - Update Choice constraint usage to set
'strict' => true
Layout Builder
If you have custom code that interacts with Layout Builder, be aware of the following changes:
- Section storage now provides more granular IDs for tempstore
- Sections now support third-party settings
- The UI classes now implement BEM naming conventions
Symfony Compatibility
If you're using Symfony components directly, be aware that this release includes updates for better compatibility with Symfony 4 and 5:
- Updated TranslatorInterface usage
- Updated ResettableContainerInterface usage
- Fixed Request::getSession() deprecation notices
Upgrade Recommendations
Recommendation
This is an alpha release and is not recommended for production sites. It should only be used for testing and development purposes to evaluate new features and provide feedback before the stable 8.7.0 release.
For Developers and Site Builders
- Test your custom and contributed modules with this alpha release to identify any compatibility issues
- Pay special attention to any custom code that interacts with taxonomy terms, custom menu links, Layout Builder, or Media Library
- Review your code for usage of deprecated APIs that now trigger deprecation notices
- Test any PostgreSQL installations carefully, as several database-related fixes are included
For Module Maintainers
- Update any code that assumes taxonomy terms or custom menu links are not revisionable
- Review usage of entity API methods that have been deprecated
- Test modules that integrate with Layout Builder against the new UI and API changes
- Update any Symfony component usage to be compatible with newer versions
Before Upgrading to the Stable Release
- Backup your database and files
- Update to the latest version of your currently installed minor version first
- Test thoroughly in a development environment before upgrading production sites
- Review the final release notes for 8.7.0 when it becomes available
Bug Fixes
Entity and Field System
- Fixed issue where PostgreSQL constraints were not renamed properly on table renames
- Fixed issue where FieldItemNormalizer never called DataType-level normalizer service's denormalize() method
- Fixed issue where DatabaseStorageExpirable:setWithExpireIfNotExists was not respecting expired items
- Fixed issue where custom serialized field's data was not normalized when empty
- Fixed issue where values in shared table for SQL content entity storage did not get unserialized
Layout Builder
- Fixed issue where saving a layout override would revert other field values
- Fixed issue where validation errors were not displayed on ConfigureBlockFormBase forms
- Fixed issue where reloading Layout Builder with JS differed from non-JS behavior
- Fixed issue where users with "configure any layout" could see entities they didn't have "view" access to
Media Library
- Fixed broken styles on initial page load
- Fixed inconsistent margin/padding on vertical tabs
Accessibility
- Fixed regression where table drag handles no longer responded to up/down arrow keys
- Fixed issue where behaviors were attached to removed forms
- Fixed contrast failures in Umami theme banner and links
- Fixed unnecessary title attribute on show-row-weights button
Caching and Performance
- Fixed issue where PageCache::getCacheId() sometimes used different cache IDs during get and set
- Fixed issue where system.theme.data key remained corrupted in state
- Fixed issue where toolbar_preprocess_html() converted attributes from array to Attribute object
Other
- Fixed issue where updating to 8.6.8 or 8.6.9 with Drush 8 could cause data loss
- Fixed issue where SiteConfigureForm could install the file module without the field module
- Fixed issue where files renamed by _file_save_upload_single() did not have the correct filename
- Fixed issue where browser language detection broke with requests having no Accept-Language header
New Features
Layout Builder Improvements
- Redesigned UI with clearer terminology and better affordances for editable regions
- Added ability for section storage to provide more granular IDs for tempstore
- Improved breadcrumb navigation for better context awareness
- Added third-party settings support for sections
- New "Announce" command for better accessibility with screen readers
- Improved block filtering by context for better performance
- Better integration with content moderation
Media Library Enhancements
- Unified grid/table views for better media management
- Added oEmbed support for embedding remote media
- Improved responsive styling of grid items
- Added vertical tabs style menu for better organization
- Improved accessibility with better dialog names and controls
Entity System Improvements
- Taxonomy terms are now revisionable
- Custom menu links are now revisionable
- New API for retrieving entity variants that are safe for editing
- Better handling of entity type schema updates
Umami Demo Theme Updates
- Added multilingual functionality with English and Spanish support
- Restructured default content files to support multiple languages
- Updated recipes and content
- Improved accessibility with better contrast ratios
- Added tour module integration for better onboarding
Security Updates
SA-CORE-2019-003
This security advisory addresses vulnerabilities in Drupal core. The security team has not provided detailed information about the specific vulnerabilities fixed, as is standard practice for security releases.
Other Security Improvements
- Fixed issue where users with "configure any layout" permission could see entities they didn't have "view" access to
- Improved handling of file uploads and file system operations
- Better validation of user input in various subsystems
- Updated Twig dependencies to address potential security issues
Performance Improvements
Entity System Performance
- Improved filtering of block plugins by context, which was previously slow
- Optimized entity type CRUD operations to use the last installed entity type and field storage definitions
- Reduced container rebuilds in BrowserTestBase for faster test execution
Caching Improvements
- Fixed issue where PageCache::getCacheId() sometimes used different cache IDs during get and set operations, causing unnecessary cache misses
- Fixed the system.theme.data key that remained corrupted in state causing performance issues
- Improved caching of entity definitions
Database Operations
- Better handling of PostgreSQL constraints during table renames
- Optimized database operations for entity storage
Testing Performance
- Improved test infrastructure to prevent tests with multiple groups from running multiple times
- Fixed issue where UpdateKernel::fixSerializedExtensionObjects() caused test runs to double in duration
- Reduced container rebuilds in BrowserTestBase
Impact Summary
Drupal 8.7.0-alpha1 represents a significant step forward in Drupal's evolution, particularly in the areas of content management and site building. The Layout Builder improvements make it more intuitive and accessible, addressing many usability concerns from the community. The revisionable taxonomy terms and custom menu links bring these entity types in line with other content entities, providing better content governance capabilities.
For developers, this release includes important API improvements and deprecations that prepare the codebase for future evolution. The entity system continues to mature with better handling of entity variants and schema updates. Symfony compatibility updates ensure Drupal will work well with newer versions of its underlying framework.
Site builders will appreciate the enhanced Media Library with its unified grid/table view and oEmbed support, making media management more efficient. The Umami demo theme's multilingual support showcases Drupal's strengths in this area and provides a better starting point for new users.
Performance and security improvements round out this release, making it more robust and efficient. While this is an alpha release and not recommended for production sites, it provides a good preview of the features and improvements coming in Drupal 8.7.0.
Statistics:
User Affected:
- Improved Layout Builder with better UI, terminology, and accessibility
- Enhanced Media Library with unified grid/table view and oEmbed support
- New revisionable entity types (taxonomy terms and custom menu links)
- Improved Umami demo theme with multilingual support
