Drupal Release: 8.3.0-beta1
Pre Release
Tag Name: 8.3.0-beta1
Release Date: 2/15/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.3.0-beta1 introduces significant improvements to the content moderation workflow system, enhanced testing infrastructure, and a redesigned status report page. This release focuses on developer experience improvements with better plugin handling, documentation updates, and performance optimizations. Notable changes include CKEditor updates to version 4.6.2 with a new skin, improved REST API responses, and fixes for various random test failures. This beta release represents a substantial step forward in Drupal's evolution with over 2,300 changes across 300 files.
Highlight of the Release
- Redesigned status report page with improved UI and information organization
- Updated CKEditor to version 4.6.2 with new Moono-Lisa skin
- Enhanced content moderation workflow system with default states and transitions
- Improved plugin handling with better object-based plugin definitions
- Better REST API responses with more informative error messages
Migration Guide
Upgrading to Drupal 8.3.0-beta1
Deprecated Services and Methods
- The
entity.queryservice has been deprecated. Use the entity storage'sgetQuery()method instead:
// Before
$query = \Drupal::service('entity.query')->get('node');
// After
$query = \Drupal::entityTypeManager()->getStorage('node')->getQuery();
Node Constants
Node constants have been moved from the node.module file to the NodeInterface:
// Before
NODE_PUBLISHED
NODE_NOT_PUBLISHED
NODE_NOT_STICKY
NODE_STICKY
// After
\Drupal\node\NodeInterface::PUBLISHED
\Drupal\node\NodeInterface::NOT_PUBLISHED
\Drupal\node\NodeInterface::NOT_STICKY
\Drupal\node\NodeInterface::STICKY
Plugin Definition Changes
If you're working with plugin definitions:
- Object-based plugin definitions are now supported in
PluginDependencyTrait - Plugin definitions now store their class in a consistent manner (without leading slashes)
- The
DerivativeDiscoveryDecoratornow properly processes object-based plugin definitions
Content Moderation
If you're using the Content Moderation module:
- Workflow entities are now labeled as "Workflows" instead of "Workflow entities"
- Default workflow states and transitions are now provided for new workflows
- Check your custom code that interacts with workflow states and transitions
Upgrade Recommendations
As this is a beta release (8.3.0-beta1), it is not recommended for production sites. This release is intended for testing and development purposes only.
For sites currently running Drupal 8.2.x:
- Wait for the stable 8.3.0 release before upgrading production sites
- Consider setting up a development or staging environment to test the beta release
- Review the migration guide for deprecated APIs and prepare your custom code for the changes
- Test your custom modules and themes thoroughly with this beta release
For module developers:
- Update your code to use the entity storage's
getQuery()method instead of the deprecatedentity.queryservice - Update any references to node constants to use the new NodeInterface constants
- Test your modules with the new plugin definition handling
- If you work with content moderation, test your code with the enhanced workflow system
For theme developers:
- Test your themes with the new CKEditor Moono-Lisa skin
- Verify compatibility with the redesigned status report page
This beta release contains significant changes, so thorough testing is essential before planning an upgrade to the stable 8.3.0 release.
Bug Fixes
Test Stability Improvements
Several random test failures have been fixed:
- Fixed random failures in OutsideInBlockFormTest
- Fixed random failures in CKEditor AjaxCss tests
- Fixed issues with PHPUnit tests on Windows systems
Entity and Form Handling
- Fixed issue where duplicating a non-default revision would produce a default revision for a newly created entity
- Fixed bug where bulk operation actions might not act on the selected items
- Fixed issue where details form element wouldn't open when there are errors on child elements
- Fixed bug where deleting a user account would throw an exception if the user has nodes in an anonymous environment with node access enabled
- Fixed issue where View's build would fail when an unrelated form on the same page has validation errors
REST and API Issues
- Fixed issue where REST 403 responses didn't tell the user why access was not granted
- Fixed bug where query arguments were not persisted when using batch operations
- Fixed issue where link attributes were not preserved when rendering links multiple times
Database and Performance
- Added indexes to migrate_map_* tables for better performance
- Fixed PostgreSQL regular expression match operators for non-text fields
- Fixed Views NumericFilter 'regular_expression' operator
New Features
Content Moderation Improvements
The content moderation system has been significantly enhanced with:
- Default workflow states and transitions for new workflows
- Better validation of workflow state transitions
- Improved workflow type plugin with correct dependency calculation
- Clearer labels for workflow entities in the admin interface
Redesigned Status Report Page
The status report page has been completely redesigned with:
- Improved visual organization of information
- Better categorization of system status items
- Enhanced readability and user experience
CKEditor Updates
CKEditor has been updated to version 4.6.2 with:
- New "Moono-Lisa" skin for a more modern look
- Various bug fixes and improvements from the upstream project
Enhanced Plugin System
The plugin system has been improved with:
- Support for object-based plugin definitions
- Better handling of plugin dependencies
- Improved derivative discovery decorator
REST API Enhancements
REST API responses have been improved with:
- More informative error messages for 403 responses
- Automatic route rebuilding when importing REST resource config entities
Security Updates
Security Improvements
- Support for RFC 5785 by whitelisting the .well-known directory, improving compatibility with security standards
- Fixed issue with Suhosin PHP extension that was preventing certain modules from being enabled, improving compatibility with security-enhanced PHP environments
No critical security vulnerabilities were addressed in this release. As always, the Drupal security team continues to monitor and address security issues as they arise.
Performance Improvements
Entity Rendering Optimization
- Fixed issue where
getViewBuilder('node')->viewMultiple()was bypassing render cache, resulting in significant performance improvements for pages displaying multiple nodes
Database Query Performance
- Added indexes to migrate_map_* tables to improve migration performance
- Fixed PostgreSQL regular expression match operators to work correctly with non-text fields, improving query performance
ViewsEntitySchemaSubscriber Optimization
- ViewsEntitySchemaSubscriber now avoids doing unnecessary work when entity type definitions are updated, reducing overhead during entity updates
Route Handling Improvements
- Improved route rebuilding for REST resources, making configuration imports more efficient
- Better handling of contextual filters in views, reducing unnecessary processing
Impact Summary
Drupal 8.3.0-beta1 represents a significant step forward in Drupal's evolution with over 2,300 changes across 300 files. The release focuses on improving both the developer and user experience.
For site administrators and content editors, the redesigned status report page provides better visibility into site health, while the enhanced content moderation workflow system offers more intuitive content management. The updated CKEditor (4.6.2) with its new Moono-Lisa skin delivers a more modern editing experience.
Developers will appreciate the numerous improvements to the plugin system, better REST API responses, and fixes for random test failures that have been frustrating the community. The migration from Drupal 7 has been enhanced with better support for node translations.
Performance improvements include optimized entity rendering, better database indexing for migrations, and more efficient handling of entity type updates. These changes should result in better overall site performance, especially for sites with complex content structures.
While this beta release contains many improvements, it also includes API changes that may require updates to custom code, particularly around entity queries, node constants, and plugin definitions. The migration guide provides details on these changes to help developers prepare for the stable release.
Statistics:
User Affected:
- Benefit from the redesigned status report page with improved UI and information organization
- Can use enhanced content moderation workflows with default states and transitions
- Experience improved block management with better contextual links and actions
