Home

>

Tools

>

Drupal

>

Releases

>

8.3.0

Drupal Release: 8.3.0

Tag Name: 8.3.0

Release Date: 4/6/2017

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.3.0 introduces significant improvements to content authoring, site building, and developer experience. This release adds new experimental modules for content moderation and layout management, enhances the migration system, improves REST API capabilities, and includes numerous bug fixes and performance optimizations. The update from 8.2.x to 8.3.0 maintains API compatibility while delivering important new features that make Drupal more powerful and user-friendly.

Highlight of the Release

    • New experimental modules: Content Moderation for improved workflow management and Layout Discovery for standardized layout management
    • Improved accessibility for datetime and daterange widgets
    • Comprehensive REST API improvements with extensive test coverage
    • Enhanced migration system with better multilingual support and documentation
    • Case-insensitive URL handling for improved user experience
    • Numerous bug fixes for Views, forms, and entity handling

Migration Guide

Updating from Drupal 8.2.x to 8.3.0

  1. Update your codebase:

    • Update Drupal core using Composer:
      composer update drupal/core --with-dependencies
      
    • Or download and replace your codebase:
      • Back up your sites directory and composer.json file
      • Replace everything else with the new release
      • Run composer install
  2. Run database updates:

    • Run update.php by navigating to /update.php or use Drush:
      drush updatedb
      
  3. Clear caches:

    drush cache-rebuild
    
  4. Review new experimental modules:

    • Content Moderation and Layout Discovery are available but experimental
    • Test thoroughly before using in production
  5. Code changes to be aware of:

    • Core now uses the new array syntax coding standards
    • Several constants have been moved from module files into interfaces
    • Path handling is now case-insensitive
  6. Test thoroughly:

    • Test your site's functionality, especially if you use custom modules
    • Pay special attention to forms, Views, and multilingual functionality

This update maintains API compatibility with 8.2.x, so most sites should update without issues.

Upgrade Recommendations

Recommendation Level: Standard upgrade recommended for all sites

Drupal 8.3.0 is a feature release that maintains API compatibility with Drupal 8.2.x. The upgrade path from 8.2.x to 8.3.0 is well-tested and should be straightforward for most sites.

Who should upgrade immediately:

  • Sites that need the new experimental modules for content moderation or layout management
  • Sites experiencing any of the bugs fixed in this release
  • Sites that would benefit from the improved REST API capabilities
  • Sites with multilingual content that would benefit from the improved migration tools

Who can wait:

  • Sites with complex custom code that might need additional testing
  • Sites that are running smoothly on 8.2.x and don't need the new features

Testing recommendations:

  • Always test the upgrade on a staging environment before applying to production
  • Pay special attention to custom modules that might interact with the areas that received significant changes (Views, forms, entity handling)
  • Test multilingual functionality thoroughly if your site uses it
  • If using the experimental modules, understand they may change significantly in future releases

Overall, this is a solid feature release that most sites should upgrade to when their maintenance schedule allows.

Bug Fixes

Views

  • Fixed an issue where Views would fail to build when an unrelated form on the same page had validation errors.
  • Fixed a bug where Views with not required relationships and aggregation enabled would fail to execute.
  • Fixed issues with Views NumericFilter 'regular_expression' operator.
  • Fixed a bug where Views StringFilter using 'Contains any word' or 'Contains all words' would break queries on strings containing only characters that would be trimmed.
  • Fixed a notice in exposed date filters.
  • Fixed an issue where bulk operation actions might not act on the selected items.
  • Fixed an issue where adding a filter group to a View required clicking on the UL instead of the link.
  • Fixed a strange bar in View UI filters Modal when there are no filter options.
  • Fixed an issue where Views add dialog filter searches on label instead of title.
  • Fixed an issue where sorting a large group of filters items when using the Exposed Grouped information was not possible.

Entity Handling

  • Fixed a bug where cloning an entity with initialized translations would leave references pointing to the old entity object.
  • Fixed an issue where initialized fields of an entity clone had a reference to the original entity object instead of the cloned entity object.
  • Fixed a bug where entity reference field with integer target ID and entity object would cause exceptions.
  • Fixed an issue where getViewBuilder('node')->viewMultiple() was bypassing render cache.
  • Fixed a bug where ContentModerationStateFormatter was pretending it's for the moderated entity, but it was for the content moderation state entity.
  • Fixed an issue where Views integration incorrectly joined content_moderation_state entities with matching IDs, but different entity types.

Forms and UI

  • Fixed a bug where the "Update Notifications" title was repeated for Drupal 8 installation in configure site page.
  • Fixed an issue with the AJAX throbber when clicking Place Block.
  • Fixed a bug where the label of contact form message field was not hidden.
  • Fixed an issue where Inline Form Errors was not compatible with Quick Edit.
  • Fixed a bug where edit mode behaved differently if entered by clicking "quick edit" vs toolbar.
  • Fixed an issue where contextual links button was always rendered even when no links were available.
  • Fixed a bug where Outside In was intermittently unable to bind dialog events to the window.

Multilingual

  • Fixed an issue where OverviewTerms didn't respect the current content language when building the form.
  • Fixed a bug where custom language settings configuration was not saved when a language selector was enabled for any content.
  • Fixed an issue where LanguageNegotiationUrl removed path prefix even when detection was based on domain.
  • Fixed a bug where plain text field default value was not translatable.

Other

  • Fixed an issue where module form structure had bugs when Suhosin was used.
  • Fixed a bug where a serial/primary key field could not be added to an existing table.
  • Fixed an issue where PostgreSQL regular expression match operators only worked for text.
  • Fixed a bug where the system menu link for user/login could not be edited as an admin.
  • Fixed an issue where DateTimePlus didn't track errors properly.

New Features

Experimental Modules

  • Content Moderation: A new experimental module that provides workflow management tools for content, allowing for more complex publishing workflows.

  • Layout Discovery: A new experimental module that provides a standardized way for modules and themes to register layouts and for other modules to discover and use those layouts.

  • Panels Layouts: Core now includes Panels layouts to enhance layout management capabilities.

REST API Improvements

  • Added comprehensive test coverage for various entity types in the REST API.
  • REST Resource configuration entities now properly respect enabled/disabled status.
  • Fixed issues with REST resource authentication configuration.

Migration System Enhancements

  • Added documentation to numerous migration process plugins including Extract, Flatten, Callback, SkipRowifNotSet, DefaultValue, Explode, Substr, MachineName, UrlEncode, FileCopy, Get, Route, and SkipOnEmpty.
  • Improved migration of multilingual content from Drupal 6.
  • Fixed issues with file migrations to prevent ID conflicts.

URL Handling

  • Drupal now handles incoming paths in a case-insensitive fashion for routing, improving user experience.

Form Improvements

  • Added Inline Form Errors module to core, which displays form errors inline next to form elements rather than at the top of the form.
  • Fixed issues with form validation and error handling.

Security Updates

No significant security fixes were explicitly mentioned in the release notes. However, as with all Drupal core updates, this release likely includes security hardening and minor security improvements that are part of the ongoing development process.

It's worth noting that Drupal 8.3.0-rc2 included a security update (SA-CORE-2017-001), which would be included in this final release.

Performance Improvements

Render System

  • Improved caching in the render system, particularly for entity rendering.
  • Fixed an issue where getViewBuilder('node')->viewMultiple() was bypassing render cache.

Database Optimizations

  • Improved PostgreSQL regular expression match operators to work for more than just text.
  • Fixed database query issues in Views filters for better performance.

JavaScript Performance

  • Optimized contextual links to only render when links are available, improving client-side performance.
  • Improved AJAX throbber rendering and positioning.

Entity Handling

  • Enhanced entity cloning and translation handling for better performance.
  • Improved entity reference field handling to prevent exceptions and improve performance.

Impact Summary

Drupal 8.3.0 represents a significant step forward in Drupal's evolution, particularly in the areas of content authoring, site building, and developer experience. The introduction of experimental modules for content moderation and layout management addresses long-standing needs in the Drupal ecosystem, providing more sophisticated tools for managing content workflows and page layouts.

The improvements to the REST API and comprehensive test coverage enhance Drupal's capabilities as a headless CMS, making it more robust for decoupled applications. The migration system enhancements, particularly for multilingual content, make it easier to upgrade from older versions of Drupal.

Accessibility improvements in datetime and daterange widgets demonstrate Drupal's ongoing commitment to inclusivity. The case-insensitive URL handling addresses a common user experience issue, making the platform more forgiving of user input.

The numerous bug fixes in Views, forms, and entity handling improve the stability and reliability of core functionality that site builders and developers rely on daily. Performance optimizations in the render system and database queries contribute to better overall site performance.

For developers, the adoption of array syntax coding standards throughout core and improved documentation for migration process plugins enhance code readability and developer onboarding.

While this release doesn't introduce dramatic changes to the user interface or fundamental architecture, it represents a solid iteration that makes Drupal more powerful, accessible, and developer-friendly. The experimental modules point to exciting future directions for the platform, while the bug fixes and performance improvements ensure that current sites can operate more reliably.

Statistics:

File Changed300
Line Additions2,542
Line Deletions2,071
Line Changes4,613
Total Commits250

User Affected:

  • Can now use the experimental Layout Discovery module for standardized layout management
  • Benefit from improved Views functionality with fixes for grouped filters, exposed date filters, and filter searches
  • Have access to better workflow management through the experimental Content Moderation module
  • Can leverage case-insensitive URL handling for improved user experience

Contributors:

junowildernessxjmeffulgentsiaalexpottwebchick