Drupal Release: 8.4.0
Tag Name: 8.4.0
Release Date: 10/4/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 marks a significant update with several experimental modules now stable, including Content Moderation and Workflows. This release introduces the new Media module, improves migration capabilities, enhances accessibility, and includes numerous performance improvements. The update focuses on content management workflows, media handling, and developer experience improvements while maintaining backward compatibility for most use cases.
Highlight of the Release
- Content Moderation and Workflows modules are now stable, providing robust content workflow management
- New Media module added as experimental, offering improved media handling capabilities
- Settings Tray (formerly Outside-in) module improved for better in-context editing
- Inline Form Errors module moved from Experimental to Core package
- Significant improvements to migration system for Drupal 6/7 to Drupal 8 migrations
- Enhanced database cache system to prevent unlimited growth of cache tables
- Improved test infrastructure with BrowserTestBase enhancements
Migration Guide
Content Moderation and Workflows
If you were using the experimental versions of Content Moderation and Workflows modules, review your workflow configurations as some internal APIs have changed. The modules are now stable and provide better integration with translation and revision systems.
Outside-in to Settings Tray
The Outside-in module has been renamed to Settings Tray. If you were using Outside-in in your custom code, update references to use the new module name and namespace.
Inline Form Errors
The Inline Form Errors module has been moved from the Experimental package to the Core package. No code changes should be necessary, but be aware of this change if you were explicitly depending on its experimental status.
Media Entity Contrib Module
If you have the contributed Media Entity module (1.x) enabled, you cannot enable the new core Media module at the same time. A migration path will be provided in a future release.
JavaScript Changes
If you have custom modules or themes that use contextual.js or quickedit.js, ensure your Twig templates properly print attributes to avoid JavaScript errors. The code now fails more gracefully with useful error messages when templates forget to print attributes.
Entity Reference Selection Handlers
The structure of configuration for entity reference selection handlers has been changed. If you have custom selection handlers, review the changes in \Drupal\Core\Entity\EntityReferenceSelection\SelectionInterface.
Test Framework Changes
If you have custom tests using BrowserTestBase or WebTestBase, be aware of significant changes to the test infrastructure. Many web tests have been converted to browser tests, and there are new methods and assertions available.
Upgrade Recommendations
Recommendation
This is a feature release that introduces several new stable modules and improvements. Upgrading from 8.3.x to 8.4.0 is recommended for all sites, especially those that would benefit from improved content workflow management, media handling, or migration capabilities.
Before Upgrading
- Test the upgrade on a staging site before applying to production
- Back up your database and files
- Review the full release notes for any changes that might affect your custom code
- Update contributed modules that might be affected by core changes
- Check if you're using the contributed Media Entity module, as it conflicts with the new core Media module
Potential Issues
- If you use the contributed Media Entity module (1.x), you cannot enable the new core Media module
- Custom entity reference selection handlers may need updates
- Custom tests using the testing framework might need adjustments
- Templates that don't properly print attributes might cause JavaScript errors
Module Updates
Ensure all contributed modules are compatible with Drupal 8.4.0 before upgrading. Some modules might require updates to work with the new stable Content Moderation and Workflows modules.
Bug Fixes
Content Moderation and Workflows
- Fixed issues with moderation state selection on entity forms
- Resolved problems with content moderation for entities using special languages
- Fixed fatal errors when saving node types without content moderation
- Addressed issues with BaseFieldOverride entities breaking content moderation
- Fixed workflow state and transition handling with integer IDs
Media Module
- Fixed issues with MediaInterface missing setName() and getName() methods
- Resolved problems with Media::setOwnerId() not returning the Media entity
- Added back 'access media overview' permission
Migration
- Fixed issues with plain text fields incorrectly migrated as formatted text
- Resolved problems with node 'comment open/closed' status not being migrated
- Fixed issues with taxonomy vocabulary migration from Drupal 6
- Addressed problems with forum vocabulary migration to incorrect field names
Performance and Caching
- Fixed database cache bins allowing unlimited growth
- Resolved issues with fastcgi_finish_request and shutdown functions
- Fixed caching of loadEntityByUuid() calls for block_content
UI and Forms
- Fixed radios with #default_value = 0 checking all radios
- Resolved issues with datetime and date FAPI elements not allowing AJAX
- Fixed Settings Tray leaving dashed outline on followup pages
- Addressed cursor style issues in Settings Tray
Other
- Fixed clearing cache via UI in translated language resetting config translation
- Resolved orphaned menu links when nodes are deleted
- Fixed orphaned menu routes breaking site installs and module uninstalls
- Addressed issues with file size of 0 not being set when file entities are saved
New Features
Content Moderation and Workflows
Content Moderation and Workflows modules are now stable, providing a robust framework for managing content publishing workflows. Content editors can now define custom publishing states and transitions between them, with proper revision tracking and permissions.
Media Module
The new experimental Media module has been added to core, providing improved media handling capabilities. This module allows for better management of media assets like images, documents, and videos with reusable media entities.
Comment Administration Improvements
The comment administration pages now include filtering options, making it easier to manage comments across the site. Administrators can filter comments by various criteria to more efficiently moderate user-generated content.
Migration Enhancements
Several improvements to the migration system have been implemented:
- New field plugins system for migrations
- Better handling of Drupal 6/7 forum and article comments
- Improved migration of translation sets
- Better file migration from Drupal 6
- Defensive menu link migrations to prevent errors
Settings Tray Improvements
The Settings Tray module (formerly Outside-in) has been improved with:
- New off-canvas dialog system
- Better accessibility
- Improved UI interactions
- Fixed CSS and JavaScript issues
Security Updates
SA-CORE-2017-004
This release includes the security fix from SA-CORE-2017-004, which was previously released as a security update for Drupal 8.3.x. The security advisory addressed vulnerabilities in the core system.
Views Security
Fixed a security issue in Views where AJAX-enabled views could be vulnerable. The patch now properly uses ajaxEnabled() instead of directly checking the 'use_ajax' option.
Performance Improvements
Database Cache System
The database cache system has been improved to prevent unlimited growth of cache tables. This addresses a long-standing issue where cache DB tables could grow to gigabytes in size, causing performance problems on sites with high traffic or complex caching needs.
Entity Loading
Cache calls for loadEntityByUuid() for block content have been improved, enhancing performance when loading blocks by UUID.
JavaScript Performance
Several JavaScript improvements have been made:
- Removed unused event triggers and listeners in Settings Tray module
- Optimized off-canvas dialog system
- Improved Views UI with micro-optimizations in
get_option()
Memory Management
Added garbage collection during migration memory reclamation, helping to reduce memory usage during large migrations.
Query Optimization
Improved query handling in various areas:
- Better handling of Config entity query IS NOT NULL conditions
- Optimized workflow state transitions
- Addressed performance issues in
\Drupal\workflows\Plugin\WorkflowTypeBase::deleteState
Impact Summary
Drupal 8.4.0 represents a significant step forward in Drupal's evolution, particularly in content management workflows and media handling. The stabilization of Content Moderation and Workflows modules provides a robust framework for managing complex publishing processes, benefiting organizations with editorial workflows. The new Media module, though still experimental, lays groundwork for improved media management.
Performance improvements to the database cache system address a long-standing issue with cache table growth, which should improve long-term site performance. The migration system enhancements make it easier to upgrade from Drupal 6 or 7, potentially accelerating adoption of Drupal 8.
For developers, the release includes numerous API improvements and better testing tools, enhancing the development experience. The move of Inline Form Errors to the Core package improves accessibility across all Drupal sites by default.
Most changes maintain backward compatibility, though sites using the contributed Media Entity module will need to plan carefully for future upgrades. Overall, this release strengthens Drupal's position as an enterprise-ready CMS with improved content workflow capabilities, better performance, and enhanced developer tools.
Statistics:
User Affected:
- Can now use the stable Content Moderation module to manage content workflows
- Benefit from improved media handling with the new Media module
- Experience better UI for moderation state selection on entity forms
- Can use the improved comment administration with new filtering options
