Drupal Release: 8.1.0
Tag Name: 8.1.0
Release Date: 4/20/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.1.0 introduces significant improvements to the CMS with a focus on performance and developer experience. The release adds BigPipe for improved page loading performance, a new migration system for upgrading from Drupal 6/7, enhanced multilingual capabilities, and improved CKEditor integration. This update represents a substantial step forward in Drupal's evolution with numerous API improvements, bug fixes, and developer tools that make the platform more robust while maintaining backward compatibility.
Highlight of the Release
- BigPipe for authenticated users: Dramatically improves perceived performance by sending and rendering the cheap parts of the page first, then the expensive parts
- Migrate Drupal UI: New user interface for migration-based upgrades from Drupal 6/7
- CKEditor language button: Allows content editors to mark portions of content in different languages
- Plugin-based migration system: Migrations are now plugins instead of config entities for more flexibility
- Improved Composer integration: Better dependency management and vendor handling
Migration Guide
Updating to Drupal 8.1.0
For Site Owners
-
Before updating:
- Back up your site's files and database
- Put your site in maintenance mode
- Check that your modules are compatible with 8.1.0
-
After updating:
- Run database updates via the UI at
/update.phpor using Drush:drush updatedb - Clear caches:
drush cache-rebuildor via the UI - Test your site thoroughly, especially any custom functionality
- Run database updates via the UI at
For Developers
BigPipe Integration
If you're developing custom blocks or other cacheable render elements, ensure they properly declare their cache metadata. BigPipe relies on proper cache metadata to determine which parts of the page can be sent early.
Migration System Changes
The migration system has undergone significant architectural changes:
- Migrations are now plugins instead of config entities
- If you've built custom migrations, you'll need to update them to use the new plugin-based system
- Migration source keys now use hash instead of verbatim values
Entity Type API Changes
Entity types now support plural labels:
// Example of updating an entity type definition
$entity_type->set('label_collection', t('Content items'));
$entity_type->set('label_singular', t('Content item'));
$entity_type->set('label_plural', t('Content items'));
$entity_type->set('label_count', [
'singular' => '@count content item',
'plural' => '@count content items',
]);
CKEditor Plugin Changes
CKEditor plugins can now add CSS to iframe instances by implementing CKEditorPluginCssInterface. This allows for better styling of custom CKEditor plugins.
Deprecated Code
Several functions have been deprecated:
SafeMarkup::isSafe()- Remove usagesformat_string()- Use\Drupal\Component\Render\FormattableMarkupinsteadentity_create()with variable entity types - UseEntityTypeManager::getStorage()->create()instead
Composer Changes
Drupal now uses Composer to manage dependencies. If you're using Composer to manage your site, update your workflow to accommodate the improved Composer integration.
Upgrade Recommendations
Priority: Medium-High
This is a feature release that introduces significant improvements to performance, developer experience, and multilingual capabilities. While it doesn't contain critical security fixes that would necessitate an immediate upgrade, the performance benefits from BigPipe and the improved migration tools make it a worthwhile update for most sites.
Who should upgrade immediately:
- Sites with many authenticated users will benefit greatly from BigPipe
- Sites planning to migrate from Drupal 6 or 7 should upgrade to take advantage of the new Migrate Drupal UI
- Multilingual sites will benefit from the improved language handling and CKEditor language button
- Sites experiencing any of the specific bugs fixed in this release
Who can wait:
- Simple sites with mostly anonymous traffic may not see dramatic benefits from BigPipe
- Sites with complex custom code might want to test thoroughly before upgrading
- Production sites should always test the upgrade on a staging environment first
Testing Recommendation:
Before upgrading production sites, thoroughly test:
- Custom modules and themes for compatibility
- Performance with authenticated users to see BigPipe benefits
- Any multilingual functionality if your site uses it
- Entity reference fields and views that might be affected by fixes
The architectural improvements and bug fixes make this a solid upgrade for most Drupal 8 sites, with the performance benefits of BigPipe being particularly compelling for sites with authenticated users.
Bug Fixes
Multilingual Content Fixes
- Fixed an issue where menu links were not correctly stored on translation
- Resolved problems with translatable image files not working unless the image field was also configured
- Fixed content translation module still implementing hook_enable
- Corrected issues with config translation form labels not being translated
UI and Form Fixes
- Fixed taxonomy term reference settings form where "Vocabularies" and "Create referenced entities..." appeared related but weren't
- Fixed duplicate/unused variable 'dropdowns' in duplicateGroupsOperator() in views-admin.js
- Resolved an issue where '#title_display' => 'invisible' was not working for composite form elements
- Fixed AJAX functionality with tableselect elements using checkboxes
- Corrected vertical tabs' #default_tab functionality that was broken due to wrong class name
Entity and Field Handling
- Fixed node revision queries tagged for node access causing "no node table" exception
- Resolved an issue where Boolean field formatter did not provide a settings summary
- Fixed unexpected nodes deletion in batch mode when deleting users
- Corrected container issues that prevented saving to cache
Migration and Upgrade Path
- Fixed issues with vocabulary migration not respecting field cardinality
- Resolved problems with custom block titles not being imported during migration
- Fixed migration source keys handling to use hash rather than verbatim values
Security and Access
- Fixed access checking in EntityController::addPage()
- Corrected access bypass to unpublished custom error pages
Other Fixes
- Fixed robots.txt to allow Google access to CSS, JavaScript and image files
- Resolved issues with comment date views arguments using incorrect database column
- Fixed broken permalink functionality in comments
- Corrected the UUID generator which was previously broken
New Features
BigPipe for Authenticated Users
BigPipe dramatically improves perceived performance for authenticated users by sending and rendering the cheap parts of the page first, then the expensive parts. This provides a much better user experience as visitors can start interacting with the page before all content is fully loaded.
Migrate Drupal UI
A new user interface for migration-based upgrades from Drupal 6/7 has been added, making it easier to upgrade older Drupal sites to Drupal 8. This UI provides a more intuitive way to manage the migration process.
CKEditor Language Button
Content editors can now mark portions of content in different languages using a new language toolbar button in CKEditor. This improves multilingual content creation and management.
Plugin-Based Migration System
Migrations are now plugins instead of config entities, providing more flexibility and extensibility for the migration system. This architectural change makes migrations more powerful and easier to customize.
Entity Type Plural Labels
Entity types now support plural labels, allowing for more natural UI text generation based on context. This improves the consistency and readability of the user interface.
Session Cache Context
A new session.exists cache context has been added, allowing for more granular caching based on whether a user has an active session or not.
OPTIONS Request Support
Drupal now properly supports OPTIONS HTTP requests, improving REST API compatibility and integration with external services.
Security Updates
Access Control Improvements
- Fixed an access bypass vulnerability to unpublished custom error pages
- Corrected incomplete access checking in EntityController::addPage()
- Restricted migrate upgrade permission to user 1 only for better security
External Resource Handling
- Fixed robots.txt to properly allow Google access to CSS, JavaScript and image files while maintaining security
- Added support for RFC 5785 by whitelisting the .well-known directory, improving security for well-known URIs
Authentication and User Management
- Fixed regression in user edit form that was expecting password reset hash
- Improved handling of user deletion to prevent unexpected content deletion
API Security
- Better handling of OPTIONS HTTP requests for improved REST API security
- Fixed issues with URL generation that could potentially expose internal paths
Performance Improvements
BigPipe Implementation
The most significant performance improvement in this release is the addition of BigPipe for authenticated users. This technology dramatically improves perceived performance by sending and rendering the cheap parts of the page first, then the expensive parts. Users can start interacting with the page while the more complex elements are still loading.
Caching Improvements
- Added a new
session.existscache context allowing for more granular caching based on whether a user has an active session - Fixed issues with content translation local tasks not displaying due to caching problems
- Improved container caching to prevent issues that were preventing saving to cache
Optimized Entity Handling
- Better handling of entity references in views to prevent integrity constraint violations
- Improved entity field rendering with better dependency tracking
- More efficient handling of entity revisions with new parameter converters and enhancers
Migration Performance
- Improved migration source key handling by using hash instead of verbatim values, reducing memory usage and improving performance
- Better plugin discovery with the new plugin-per-file YAML discovery system
JavaScript and CSS Optimization
- More selective rendering of Quick Edit and Contextual Links data attributes, only emitting them when actually necessary
- Improved jQuery Autocomplete to properly apply "_renderItem" option for all elements on the page
Impact Summary
Drupal 8.1.0 represents a significant step forward in Drupal's evolution with a focus on performance, developer experience, and multilingual capabilities. The introduction of BigPipe dramatically improves perceived performance for authenticated users by progressively loading page elements, allowing users to interact with the page before it's fully loaded.
The new Migrate Drupal UI makes upgrading from Drupal 6 or 7 much more accessible, lowering the barrier for site owners wanting to move to Drupal 8. This is complemented by the architectural improvements to the migration system, which is now plugin-based rather than config-based, offering more flexibility and power.
For multilingual sites, the addition of the CKEditor language button and fixes to various translation issues provide a more robust experience for content creators working with multiple languages. The entity type API improvements, including support for plural labels, create a more natural and consistent user interface.
Developers will appreciate the numerous API improvements, including better Composer integration, enhanced test infrastructure, and more consistent coding standards. The addition of the session cache context and support for OPTIONS HTTP requests improves Drupal's capabilities as a modern web platform.
The release also addresses a substantial number of bugs across various subsystems, from entity handling to form elements, improving overall stability and reliability. Security has been enhanced with fixes to access control issues and better handling of external resources.
Overall, Drupal 8.1.0 delivers meaningful improvements that benefit all types of users, from site administrators and content editors to developers and multilingual site managers, making it a recommended upgrade for most Drupal 8 sites.
Statistics:
User Affected:
- Benefit from improved performance with BigPipe for authenticated users
- Can now use the Migrate Drupal UI for easier upgrades from Drupal 6/7
- Better multilingual content management with the new CKEditor language button
- More consistent UI labels and improved help text throughout the system
