Drupal Release: 8.2.0-beta1
Pre Release
Tag Name: 8.2.0-beta1
Release Date: 8/3/2016
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.2.0-beta1 introduces significant improvements to the user experience, developer experience, and performance. Key highlights include a new experimental Place Block module for placing blocks directly on any page, improved REST API capabilities with authentication endpoints and automatic HEAD support, and numerous bug fixes and performance optimizations. This release focuses on making Drupal more user-friendly while maintaining stability and security.
Highlight of the Release
- New experimental Place Block module for placing blocks directly on any page
- REST API authentication endpoints for login, logout, and status checking
- Opt-in CORS support for cross-origin resource sharing
- Ability to remove a module's content entities prior to uninstallation
- Improved cache handling with new bootstrap cache bin
- Better error handling and logging with consistent backtraces
- Automatic HEAD support for REST resources that support GET
- Support for #required attribute on details form elements
- Redirect option for site-wide contact forms
Migration Guide
Migration from Drupal 8.1.x to 8.2.0-beta1
REST API Changes
If you're using REST resources, be aware that:
- REST's resource- and verb-specific permissions for EntityResource have been removed, but backward compatibility is maintained
- REST resources that support GET now automatically support HEAD requests
- New authentication endpoints are available for login, logout, and status checking
Cache System Changes
- If you're interacting with the cache system directly, note that many cache items have been moved from the default to the bootstrap or discovery bin
- The runtime theme registry is now in the bootstrap cache
- FileCache is now used for caching discovered annotations
Entity API Changes
- If you're working with entity clones or translations, review the fixes related to entity translation handling
- Entity URL generation has been updated, with changes to
Entity::urlRouteParameters()for handling revisionable entities
Testing Framework Changes
- Many web tests are being converted to browser tests
- New capabilities for JavaScript testing have been added, including screenshot functionality
- If you're writing tests, review the new assertions available in WebAssert and AssertLegacyTrait
Form API Changes
- The details form element now supports the #required attribute
- If you're building forms with embedded subforms, review the new SubFormState class for handling embedded forms
Configuration System Changes
- Be aware of fixes to configuration dependency calculations that might affect how configuration entities are deleted
- If you're working with configuration translation, note the fixes to synchronization issues
Other Important Changes
- If you're using SQLite, note that WAL journal mode is now enabled by default
- If you're working with menu links, be aware of fixes to how overrides are handled
- If you're using YAML parsing, note the new Drupal Yaml wrapper that uses the PECL Yaml component when available
Upgrade Recommendations
For Production Sites
This is a beta release and is not recommended for production sites. It's intended for testing and development purposes only. Production sites should continue to use Drupal 8.1.x until the final release of Drupal 8.2.0.
For Development and Testing Sites
If you're running a development or testing site, upgrading to this beta release is recommended to help test the new features and provide feedback before the final release. Pay special attention to:
- The new experimental Place Block module
- REST API changes and authentication endpoints
- CORS support implementation
- Cache system modifications
Testing Focus Areas
When testing this beta release, focus on:
- Block placement functionality with the new experimental module
- REST API interactions, especially authentication and CORS
- Entity translation and revision handling
- Configuration dependency calculations and entity deletion
- Performance with the new cache bin organization
Module Compatibility
Module developers should begin testing their modules against this beta release to ensure compatibility with Drupal 8.2.0 when it's released. Pay particular attention to modules that:
- Interact with the REST API
- Work with entity translations and revisions
- Modify or depend on configuration entities
- Use the cache system extensively
Update Path
There is a direct update path from Drupal 8.1.x to 8.2.0-beta1. However, as with any update, make a complete backup of your site before updating.
Bug Fixes
Menu Link Overrides
Fixed an issue where menu link overrides were lost after cache rebuild.
Node Revisions and Translations
- Fixed an issue where creating a draft removes published node from taxonomy view
- Fixed an issue where preview on forward node revisions throws an error
- Fixed an issue where node revisions don't display translated content correctly
- Fixed an issue where the latest revision isn't always the current revision
Views Issues
- Fixed an issue where editing a view leaves old keys hanging, resulting in invalid schema
- Fixed an issue where the reset button doesn't work and never gets removed on AJAX enabled views
- Fixed an issue where Views Combined fields filter with "Contains any word" or "Contains all words" operator results in an incorrect SQL query
- Fixed an issue where Views field rewrite for "Content: Path" incorrectly escapes HTML
Entity and Field Issues
- Fixed an issue where cloned entity will point to the same field objects if the clone was created after an entity translation has been initialized
- Fixed an issue where FileWidget inside subform can't find its values
- Fixed an issue where enforcing a cloned entity translation to be new propagates to the original entity
- Fixed an issue where field methods were not invoked first on the current entity translation
Cache and Configuration Issues
- Fixed an issue where count cache configuration does not work as expected
- Fixed an issue where the order in which config is saved affects dependency calculations
- Fixed an issue where unexpected config entity delete occurs due to dependency calculations
- Fixed an issue where config translation synchronization fails
Other Bug Fixes
- Fixed an issue where custom CSS classes added to status messages print on page as content when using Classy theme
- Fixed an issue where BigPipe breaks when HTML document contains CDATA sections or inline scripts
- Fixed an issue where UTC+12 is broken on date only fields
- Fixed an issue where empty 'libraries:' in theme .info.yml file produces confusing PHP warning
- Fixed an issue where queue garbage collection is not correctly run on cron
- Fixed an issue where system_block_ip_action() adds empty IP record in blocked_ips table
New Features
New Experimental Place Block Module
A new experimental module has been added that allows site administrators to place blocks directly on any page, improving the site building experience.
REST API Authentication Endpoints
New RPC endpoints have been added for user authentication, allowing clients to log in, check login status, and log out via the REST API.
Opt-in CORS Support
Cross-Origin Resource Sharing (CORS) support has been added to Drupal core, allowing resources to be requested from a different domain than the one serving the resource.
Ability to Remove Module Content Entities Before Uninstallation
A new feature allows removing a module's content entities prior to module uninstallation, making it easier to cleanly uninstall modules.
Support for #required on Details Form Elements
The details form element now supports the #required attribute, improving form validation capabilities.
Redirect Option for Site-wide Contact Forms
Site administrators can now configure contact forms to redirect users to a specific page after submission.
Automatic HEAD Support for REST Resources
REST resources that support GET requests now automatically support HEAD requests, improving REST API functionality.
Screenshot Capability for JavaScript Tests
A new feature allows developers to take screenshots during JavaScript tests, making it easier to debug test failures.
Security Updates
-
Fixed a security issue identified as SA-CORE-2016-003, addressing a vulnerability in the core system.
-
Improved handling of CSRF tokens in REST requests, providing better security for REST API interactions.
-
Enhanced error messages for REST requests without proper authentication headers, helping developers understand security requirements.
-
Fixed an issue with IP address blocking that was allowing empty IP records to be added to the blocked_ips table.
Performance Improvements
Cache Improvements
- Use FileCache for caching discovered annotations, improving performance of annotation discovery
- Move more cache items from the default to the bootstrap or discovery bin for better performance
- Added a bootstrap cache bin for storing critical cache items that are needed early in the bootstrap process
- Moved runtime theme registry into bootstrap cache for improved performance
- Added ability to disable FileCache completely for unit tests
Database Improvements
- Enable WAL (Write-Ahead Logging) journal mode by default for SQLite database, improving write performance
- Added support for database condition operator "NOT BETWEEN" for more efficient queries
- Fixed an issue with UNION queries not supporting ORDER BY clauses
Other Performance Improvements
- Reduced the BigPipe placeholder interval from 200ms to 50ms and made it overridable
- Use less demanding check to see if OPcache is active
- Added a Drupal Yaml wrapper to default to PECL Yaml component if available, improving YAML parsing performance
- Ignore front end vendor folders to improve directory search performance
Impact Summary
Drupal 8.2.0-beta1 represents a significant step forward in Drupal's evolution, focusing on improving both user experience and developer capabilities. The introduction of the experimental Place Block module addresses a long-standing pain point for site builders by allowing blocks to be placed directly on any page. This feature, combined with numerous UI improvements and clearer messaging throughout the administration interface, makes Drupal more accessible to non-technical users.
For developers, the release brings substantial improvements to the REST API ecosystem with authentication endpoints, automatic HEAD support, and opt-in CORS capabilities. These changes position Drupal as a more robust platform for decoupled applications. The enhanced cache system with the new bootstrap cache bin and performance optimizations also contribute to better overall site performance.
The ability to remove a module's content entities prior to uninstallation solves a common frustration for site builders, making module management more intuitive. Combined with fixes to configuration dependency handling, these changes make Drupal more predictable and less prone to unexpected behavior during site maintenance.
Accessibility improvements continue to be a focus, with enhancements to keyboard navigation, proper ARIA attributes, and better screen reader support. These changes, along with the numerous bug fixes and performance improvements, make Drupal 8.2.0-beta1 a more stable, accessible, and developer-friendly platform.
While this is a beta release and not recommended for production sites, it provides a clear picture of the direction Drupal 8.2.0 is taking: making Drupal more user-friendly while maintaining its power and flexibility for developers.
Statistics:
User Affected:
- Can now place blocks directly on any page with the new experimental Place Block module
- Improved UI text consistency across the administration interface
- Better feedback when creating content with links to newly created items
- More discoverable view modes for content
- Improved handling of menu link overrides
