Home

>

Tools

>

Drupal

>

Releases

>

8.1.0

Drupal Release: 8.1.0

Tag Name: 8.1.0

Release Date: 4/20/2016

Drupal LogoDrupal

Highly 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

  1. 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
  2. After updating:

    • Run database updates via the UI at /update.php or using Drush: drush updatedb
    • Clear caches: drush cache-rebuild or via the UI
    • Test your site thoroughly, especially any custom functionality

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 usages
  • format_string() - Use \Drupal\Component\Render\FormattableMarkup instead
  • entity_create() with variable entity types - Use EntityTypeManager::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:

  1. Custom modules and themes for compatibility
  2. Performance with authenticated users to see BigPipe benefits
  3. Any multilingual functionality if your site uses it
  4. 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.exists cache 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:

File Changed300
Line Additions2,088
Line Deletions1,570
Line Changes3,658
Total Commits250

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

Contributors:

alexpottxjmeffulgentsiawebchick