Drupal Release: 8.1.0-beta1
Pre Release
Tag Name: 8.1.0-beta1
Release Date: 3/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.1.0-beta1 introduces significant enhancements including BigPipe for improved page loading performance, migration-based upgrade UI for easier Drupal 6/7 upgrades, and numerous API improvements. This release focuses on performance optimization, developer experience improvements, and bug fixes while laying groundwork for future features. The update includes over 300 file changes with important architectural improvements to core services and dependency management.
Highlight of the Release
- Introduction of BigPipe for improved page loading performance for authenticated users
- New user interface for migration-based upgrades from Drupal 6/7
- Language toolbar button added to CKEditor for multilingual content
- Symfony framework updated to version 2.8
- Improved entity API with better plugin collection handling
- Enhanced REST API capabilities with better error handling
- Numerous performance optimizations and bug fixes
Migration Guide
Deprecated API Changes
Replace entity_create() with Direct Entity Creation
The entity_create() function has been deprecated. Instead, use the static create() method on entity classes:
// Old way
$node = entity_create('node', $values);
// New way
$node = \Drupal\node\Entity\Node::create($values);
This change affects all entity types. Some common replacements include:
entity_create('node')→Node::create()entity_create('user')→User::create()entity_create('taxonomy_term')→Term::create()entity_create('file')→File::create()entity_create('menu_link_content')→MenuLinkContent::create()
Entity Manager Service Changes
Replace entity.manager service with the more specific services:
// Old way
$storage = $container->get('entity.manager')->getStorage('node');
// New way
$storage = $container->get('entity_type.manager')->getStorage('node');
Symfony 2.8 Update
With the update to Symfony 2.8, some code may need adjustments if it relies on specific Symfony components. Review your custom code that interacts with Symfony components.
New Features Implementation
Using BigPipe
BigPipe is enabled by default for authenticated users. If you have custom blocks or page elements, ensure they properly implement cacheability metadata to work correctly with BigPipe.
Working with the Migration UI
If you're planning to use the new migration-based upgrade UI, ensure your custom modules properly define their migration paths if they contain data that needs to be migrated from Drupal 6 or 7.
Upgrade Recommendations
This is a beta release and is not recommended for production sites. It's intended for testing and development purposes to prepare for the upcoming stable 8.1.0 release.
For developers and site builders who want to test the new features:
- Set up a development or staging environment to test the upgrade process
- Make a complete backup of your site before attempting to upgrade
- Test thoroughly, especially if you use custom modules that might be affected by API changes
- Report any issues you encounter to the Drupal issue queue
For production sites, it's recommended to wait for the stable 8.1.0 release before upgrading from 8.0.x.
If you're currently on Drupal 6 or 7 and planning to upgrade to Drupal 8, this beta release provides an opportunity to test the new migration UI, but you should not use it for the actual production migration yet.
Bug Fixes
Form and UI Fixes
- Fixed issues with AJAX updates of elements in form groups
- Resolved problems with progress bars on file field widgets
- Fixed issues with radio buttons and checkboxes in form states
- Corrected handling of menu links in multilingual content
- Fixed double escaping in views attachment titles
- Resolved issues with click-sorting in views previews
Entity and Field Handling
- Fixed issues with entity serialization and plugin collections
- Corrected handling of translated strings in Views UI
- Fixed problems with field item properties and serialization
- Resolved issues with entity reference fields in REST responses
- Fixed issues with book module navigation and breadcrumbs
Performance and Caching
- Fixed caching issues with book module breadcrumbs
- Resolved problems with views caching during previews
- Fixed issues with entity caching and serialization
- Corrected handling of cacheability metadata in REST responses
Multilingual Content
- Fixed issues with alternate hreflang links to unpublished translations
- Corrected handling of menu links in multilingual content
- Fixed problems with translatable image files
Database and Migration
- Fixed issues with PostgreSQL insert queries in transactions
- Resolved problems with migrated URL aliases
- Corrected handling of source keys in migrations
New Features
BigPipe Rendering System
BigPipe has been introduced to dramatically improve page loading performance for authenticated users. This technology allows Drupal to send and render the cheap parts of the page first, followed by the more expensive dynamic parts. This creates a much more responsive user experience, especially for authenticated users with personalized content.
Migration-Based Upgrade UI
A new user interface for migration-based upgrades has been added, making it significantly easier to upgrade from Drupal 6 or 7. This UI provides a more intuitive way to manage the migration process and helps site administrators understand what's happening during the upgrade.
Language Toolbar Button for CKEditor
A new language toolbar button has been added to CKEditor, allowing content editors to mark specific parts of content with language attributes. This improves multilingual content management and accessibility.
Rendered Entity Views Field Handler
A new field handler for Views has been added that allows rendering an entity with a specific view mode directly in a view. This provides more flexibility when displaying entities in views.
Enhanced REST API Capabilities
Several improvements to the REST API have been made, including:
- Better error handling with more informative messages
- Improved serialization of entity reference fields
- Return of entity objects in REST response bodies after successful POST operations
Security Updates
This release includes security fixes from Drupal 8.0.4 (SA-CORE-2016-001), which addressed several security vulnerabilities. The specific details of these security fixes are not elaborated in the commit messages for security reasons, but they have been incorporated into this release.
Improved Security Practices
- Better handling of form tokens and validation
- Enhanced error handling and logging for exceptions
- Improved access checking for entity queries
Performance Improvements
BigPipe Rendering System
The introduction of BigPipe represents a significant performance improvement for authenticated users. By sending and rendering the cheap parts of the page first, followed by the more expensive dynamic parts, users experience a much more responsive site with faster perceived loading times.
Database Optimizations
Several database-related performance improvements have been implemented:
- Improved handling of PostgreSQL insert queries in transactions
- More efficient handling of database joins for revision data tables
- Lazy loading of router tables to reduce unnecessary database operations
Caching Enhancements
- Added SessionExistsCacheContext to improve caching for authenticated sessions
- Improved handling of cacheability metadata in REST responses
- Better cache handling for entity references and plugin collections
JavaScript Optimizations
- Fixed issues with Drupal Ajax objects and settings that were growing endlessly
- Improved handling of CKEditor plugins and settings
- Better management of JavaScript dependencies
Impact Summary
Drupal 8.1.0-beta1 represents a significant step forward in Drupal's evolution, focusing on performance, developer experience, and content management capabilities. The introduction of BigPipe dramatically improves page loading performance for authenticated users by progressively rendering page elements, while the new migration UI simplifies the upgrade path from older Drupal versions.
For developers, this release brings important API improvements including better entity handling, enhanced REST capabilities, and the update to Symfony 2.8. The deprecation of entity_create() in favor of direct entity creation methods represents an important shift toward more object-oriented patterns.
Content editors benefit from improved multilingual tools, including the new language toolbar button in CKEditor, and fixes to various UI and form handling issues. Site administrators will appreciate the more intuitive migration interface and better error messages throughout the system.
While this is a beta release and not recommended for production sites, it provides a clear view of the direction Drupal 8.1.x is taking, with its focus on performance optimization, improved developer experience, and enhanced content management capabilities. The architectural improvements to core services and dependency management lay important groundwork for future features and enhancements.
Statistics:
User Affected:
- Improved UI for migration-based upgrades from Drupal 6/7
- Confirmation form when enabling experimental modules
- Better error messages and warnings throughout the system
- Enhanced menu management capabilities
