Drupal Release: 8.4.0-alpha1
Pre Release
Tag Name: 8.4.0-alpha1
Release Date: 8/3/2017
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.4.0-alpha1 introduces significant improvements with several experimental modules moving to stable status, including Layout Discovery and Media. This release enhances content workflow management with revisions and moderation tools, improves JavaScript with jQuery 3 support, and addresses critical security fixes. It represents a major step forward in Drupal's evolution with better content management capabilities, improved developer experience, and enhanced user interfaces.
This alpha release is primarily for developers and site builders to test the upcoming features before they're finalized in Drupal 8.4.0. It includes important API changes and improvements that will impact how content is managed and displayed.
Highlight of the Release
- Layout Discovery module promoted to stable status
- Media module added to core (hidden, but stable API)
- jQuery updated to version 3
- Improved content moderation with better revision handling
- Enhanced Settings Tray for block configuration
- Better handling of draft/pending revisions
- New workflow management tools
- Improved accessibility for various UI components
- Critical security fixes (SA-CORE-2017-003)
Migration Guide
Updating to jQuery 3
If your site uses custom JavaScript, you'll need to ensure compatibility with jQuery 3:
- Check for deprecated jQuery methods that have been removed in jQuery 3
- Test all JavaScript functionality thoroughly
- Be aware that
$('#')now throws syntax errors in jQuery 3 - Review any animations or effects that might behave differently
Content Moderation Changes
If you're using Content Moderation:
- The 'Editorial workflow' has been renamed to 'Editorial'
- All uses of "forward revision" have been replaced with "pending revision"
- The concept of decorated states/transitions has been removed from workflow type plugins
- WorkflowType(Interface|Base)::initializeWorkflow() has been entirely removed
API Changes
Several API changes require attention:
- Composer dependencies now use caret (^) instead of tilde (~) version constraints
- Several deprecated methods have been removed:
- KernelTestBase::getCompiledContainerBuilder()
- Workflow::addState() no longer accepts invalid machine names
- Various deprecated workflow methods
Module Status Changes
Several modules have changed status:
- Layout Discovery is now stable
- Media module is now in core (but hidden)
- Inline Form Errors module moved to core package
- Datetime Range module removed from experimental package
Upgrade Recommendations
For Production Sites
This is an alpha release and is not recommended for production sites. Wait for the stable 8.4.0 release before upgrading production environments.
For Development and Testing
If you're a developer or site builder who wants to test the upcoming features:
- Create a clone of your site for testing purposes
- Follow the standard Drupal upgrade procedures
- Pay special attention to custom JavaScript that might be affected by the jQuery 3 update
- Test thoroughly any functionality that uses content moderation or revisions
- Review any custom code that interacts with the entity API, especially around revisions
Module Compatibility
Before upgrading, check that your contributed modules are compatible with Drupal 8.4. Many modules may need updates to work with the new jQuery 3 implementation and revised entity API.
System Requirements
Note that if you're running on a 32-bit system, you should be aware of the 2038 bug with PHP timestamps. Consider upgrading to a 64-bit system before 2038.
Bug Fixes
Content Management
- Fixed issue where path alias changes for draft revisions would immediately leak into live site
- Fixed menu changes from node form leaking into live site when creating draft revision
- Fixed book storage and UI not being revision aware
- Fixed entity validation of the moderation_state field when trying to save invalid states
- Fixed issue with menu subtrees in menu blocks showing all subitems regardless of the active menu item
User Interface
- Fixed toolbar implementation that created super annoying re-rendering
- Fixed issue where large images were not responsive and exceeded available space
- Fixed offcanvas width not resetting if tray is open with different width
- Fixed autocomplete textfield surrounding titles with double quotes
- Fixed fragment links to children elements in closed grouping elements
- Fixed issue with ajax-enabled buttons not being keyboard operable
Entity API
- Fixed loadEntityByUuid() to skip access checks
- Fixed FieldConfigBase::setPropertyConstraints() and addPropertyConstraints()
- Fixed field storage CRUD operations to use the last installed entity type and field storage definitions
- Fixed issue with initial values when creating a new field storage definition
Views
- Fixed Views preview title being double escaped
- Fixed EntityReference display returning wrong datatype for empty results
- Fixed resaving a view display resulting in deletion of view display
Other
- Fixed issue where module weight was not taken into account after module installation
- Fixed path aliases being forgotten after a cache rebuild due to race condition
- Fixed issue with temporary files being deleted prematurely
- Fixed validation messages in Datelist::validateDatelist()
- Fixed issue where users couldn't set a text format to use a text editor without settings
New Features
Media Management
- Media module added to core (hidden but with stable API)
- New Media source plugins for File and Image
- Improved administrative Media view
- Better semantic HTML wrapper for media items
Layout and Display
- Layout Discovery module promoted to stable status
- Support for per-region attributes in Layout Templates
- Improved Settings Tray for block configuration
- Better handling of SVG with support for rect property and nested render arrays
Content Workflow
- Enhanced content moderation with better revision handling
- New workflow type plugins for creating custom workflows
- Improved UI for selecting moderation states on entity forms
- Better handling of draft/pending revisions that no longer leak to the live site
User Interface
- Improved timezone selector with logical groupings
- Better toolbar implementation to prevent annoying re-rendering
- Enhanced accessibility for block placement with screen-reader feedback
- Inline Form Errors module moved to core package
API Improvements
- New service collectors for improved plugin discovery
- Better entity API with improved revision handling
- Enhanced form validation with better error handling
- RPC endpoint to reset user passwords
Security Updates
Critical Security Fixes
- SA-CORE-2017-003 security advisory implemented, addressing multiple vulnerabilities
- Fixed issue with loadEntityByUuid() to properly skip access checks
- Improved handling of entity access controls
Permission Handling
- Fixed "Latest revision" tab to respect 'view own unpublished content' permission
- Improved handling of user permissions in content moderation workflows
- Better validation of entity access in REST API endpoints
Performance Improvements
Caching Improvements
- Split the internal page cache from the rest of the render cache for better performance
- Fixed path aliases being forgotten after a cache rebuild due to race condition
- Allow custom default form cache expiration/lifetime
JavaScript Optimizations
- Improved toolbar implementation to prevent annoying re-rendering
- Better toolbar height calculation to accommodate jQuery 3.0 changes
- Improved JavaScript transpile error logging instead of crashing the watcher process
Entity Handling
- Only call getDerivativeId() when needed for better performance
- SqlContentEntityStorageSchema no longer needlessly fetches storage definitions it already has
- Better handling of entity validation and form processing
Impact Summary
Drupal 8.4.0-alpha1 represents a significant step forward in Drupal's evolution with several experimental modules moving to stable status and major improvements to content workflow management.
The most impactful changes include the promotion of Layout Discovery to stable status, the addition of the Media module to core (though hidden), and the update to jQuery 3. These changes provide better tools for content management and layout design while improving the overall developer experience.
Content editors will benefit from improved revision handling that prevents draft content from leaking to the live site, better media management capabilities, and enhanced workflow tools. Developers will need to adapt to jQuery 3 and several API changes, but will gain access to improved service collectors, better entity handling, and enhanced form validation.
The release also includes important security fixes and performance improvements, making it a substantial update that lays groundwork for future enhancements. Site builders will appreciate the improved Settings Tray for block configuration, better timezone selection, and enhanced workflow management tools.
As an alpha release, this version is primarily intended for testing and development environments to prepare for the upcoming stable 8.4.0 release.
Statistics:
User Affected:
- Improved content moderation workflow with new Editorial workflow
- Better handling of draft revisions that no longer leak to the live site
- Enhanced media management with the new stable Media module
- Improved UI for selecting moderation states on entity forms
