Home

>

Tools

>

Drupal

>

Releases

>

8.0-alpha4

Drupal Release: 8.0-alpha4

Pre Release

Tag Name: 8.0-alpha4

Release Date: 10/18/2013

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.0-alpha4 brings significant improvements to the development version of Drupal 8, focusing on configuration management, entity system refinements, and modern PHP practices. This release includes important changes to the node entity database schema, enhanced translation capabilities, and numerous API improvements. The update also features extensive code cleanup, better documentation, and performance optimizations. While still in alpha stage, this release demonstrates Drupal 8's continued evolution toward a more robust, developer-friendly platform with improved architecture and standards compliance.

Highlight of the Release

    • Improved node entity database schema for better performance and maintainability
    • Added UUIDs to default configuration for better deployment workflows
    • Enhanced translation capabilities with improved content language settings
    • Converted numerous page callbacks to modern controller-based architecture
    • Significant improvements to the plugin system and discovery mechanisms
    • Better integration between Views and core routing system
    • Improved field API with better type handling and organization
    • Enhanced CKEditor integration with better plugin management
    • Extensive code cleanup and modernization throughout the codebase

Migration Guide

Configuration System Changes

  • Configuration entities now use UUIDs for default configuration. If you've created custom configuration entities, ensure they implement UUID support properly.
  • The theme_default variable has been converted to CMI. Update any code that directly accessed this variable.
  • Configuration values are now stored as strings. If your code expects non-string types, you'll need to handle type conversion.

Entity System Changes

  • The node entity database schema has been significantly changed. If you have custom code that directly queries the node tables, you'll need to update it.
  • EntityFormControllerNG has been removed from the book module. Use EntityFormController instead.
  • FormInterface::getFormID() has been renamed to FormInterface::getFormId(). Update any custom form implementations.
  • The bundle_prefix concept has been removed from the entity system. Update any code that relied on this.

Routing and Controllers

  • Legacy router backwards compatibility layer has been removed. All routes must use the new routing system.
  • Many page callbacks have been converted to controllers. If your code extends or alters these callbacks, you'll need to update to the controller-based approach.
  • #autocomplete_path has been replaced with #autocomplete_route. Update any forms using autocomplete.

Plugin System

  • Plugin IDs in local_tasks.yml have been converted to 'module_name().foo_bar()' naming convention. Update any custom local tasks.
  • YamlDiscovery now uses module name instead of basename of directory. Check any custom plugin discovery implementations.

Field API

  • The 'hidden widget' plugin has been removed as it was never used. Use appropriate alternatives.
  • Field types have been converted to the field_type plugin. Update any custom field types accordingly.
  • ArrayAccess BC layer has been removed from field config entities. Direct array access is no longer supported.

JavaScript Changes

  • $.each() has been replaced with filtered for loops. Update any custom JavaScript that might depend on jQuery's iteration behavior.
  • data-* attributes are now used to store #states API information. Update any custom JavaScript that interacts with form states.

Other Important Changes

  • drupal_set_title() has been removed in various modules. Use the controller's title instead.
  • drupal_set_breadcrumb() has been removed. Use the breadcrumb service instead.
  • The global $user variable is deprecated. Use the current user service instead.
  • module_exists() is deprecated. Use the module handler service instead.

Upgrade Recommendations

As this is an alpha release (8.0-alpha4), it is not recommended for production sites. This release is intended for developers and site builders who want to test and contribute to Drupal 8's development.

If you are already running a Drupal 8 alpha site and want to test this release:

  1. Back up your database and files completely before attempting an upgrade
  2. Follow the standard upgrade path (update.php or drush updb)
  3. Test thoroughly after upgrading, especially custom code and contributed modules
  4. Report any issues you encounter to the Drupal issue queue

For developers working with Drupal 8:

  1. Be aware that APIs are still subject to change between alpha releases
  2. Review the migration guide for this release to update custom code
  3. Pay special attention to the entity system, routing system, and configuration system changes
  4. Test your modules and themes with this release and update them as needed

For site builders experimenting with Drupal 8:

  1. Consider using a fresh installation rather than upgrading from previous alphas
  2. Be prepared for potential data loss or corruption as this is pre-release software
  3. Do not use this release for any production or client sites

The Drupal 8 API is still evolving, and future alpha/beta releases will continue to include breaking changes. Production sites should continue using Drupal 7 until Drupal 8 reaches at least release candidate status.

Bug Fixes

Entity and Field System Fixes

  • Fixed case sensitivity for config entity queries
  • Fixed node deletion not clearing page cache
  • Fixed taxonomy term improperly deleted when only one of two parents is deleted
  • Fixed changing language settings for fields causing fatal errors
  • Fixed FilterFormatAccessController always granting access for any operation on fallback format
  • Fixed configuration language selectors not having English when English is not on the site
  • Fixed node search not correctly removing search information on node delete

UI and Usability Fixes

  • Fixed vertical tabs looking broken on small screens
  • Fixed double 'Quick edit' contextual link
  • Fixed 'Missing text format' in watchdog logs when visiting Text formats
  • Fixed settings for disabled filters not being hidden in narrow viewports
  • Fixed CKEditor plugin settings display issues in narrow viewports
  • Fixed Add new Forum Topic broken on subpage
  • Fixed feed aggregator configuration missing menu title

Form and Controller Fixes

  • Fixed ParameterConverter mangling raw values
  • Fixed unreachable return statement in AggregatorFeedBlock.php
  • Fixed drupal_valid_path() Notice: Undefined variable: form_item()
  • Fixed comment preview causing "Call to a member function id() on a non-object"
  • Fixed editing a comment changing creation date
  • Fixed fatal error when editing a nonexistent image effect

Translation and Multilingual Fixes

  • Fixed comment translation overview having broken local tasks
  • Fixed ConfigEntities loading Entity translated on Edit Forms
  • Fixed content translation module admin page not supporting RTL

Performance and System Fixes

  • Fixed Windows 7 and MTimeProtectedFileStorage problems
  • Fixed phpunit strict mode killing debugging with 1 second timeout
  • Fixed YamlDiscovery using basename of directory instead of module name
  • Fixed Views block category being double escaped with autocomplete

New Features

Enhanced Configuration Management

  • Added UUIDs to default configuration, improving configuration deployment workflows
  • Added tests for configuration deployment scenarios
  • Improved configuration entity handling with better case sensitivity support

Improved Entity System

  • Made node entity database schema more sensible and performant
  • Added support for config entities in entity reference fields
  • Enhanced field API with better type handling and organization
  • Improved entity translation capabilities

Modern Controller Architecture

  • Converted numerous page callbacks to controllers:
    • node_show() and node_page_view()
    • tracker_page()
    • block_admin_demo()
    • system_timezone()
    • Various test form callbacks

Enhanced Plugin System

  • Improved interaction between Annotation, Reflection & Plugin Discovery
  • Added hook-based plugin discovery tests
  • Standardized plugin cache prefix names between plugin managers
  • Cleaned up Views plugins (area, relationship, join)

Routing Improvements

  • Allow Views to override existing routing items
  • Added route to resolve update.php path
  • Created BreadcrumbBuilderBase to remove boilerplate code
  • Created RouteSubscriberBase for easier route subscription

Translation Enhancements

  • Improved content language settings
  • Made non-configurable field translation settings available
  • Converted locale_translate_english variable to CMI
  • Converted locale_custom_strings_* to settings

Security Updates

File System Security

  • Added comment in .htaccess describing how to forbid execution of PHP files in subfolders
  • Let non-interactive installers determine mode of files directory and its subdirectories
  • Improved file handling security with better visibility checks

Access Control

  • Fixed FilterFormatAccessController always granting access for any operation on the fallback format
  • Added admin_permission to EntityType annotations to provide simple default access handling
  • Improved access checking with standardized access constants

Input Handling

  • Enhanced URL handling with better protocol stripping
  • Improved handling of dangerous protocols in URLs
  • Better form validation and input sanitization

Performance Improvements

File and Image Handling

  • Optimized file usage updates in file/image fields, reducing unnecessary database operations
  • Improved file handling with better visibility checks moved to the FileItem class
  • Enhanced image toolkit management with service injection

Database and Entity Operations

  • Made node entity database schema more sensible and performant
  • Improved configuration entity handling with better case sensitivity support
  • Enhanced field API with better type handling and organization

Caching and Processing

  • Added cache tags to CKEditor plugin cache entries for better cache invalidation
  • Improved node deletion to properly clear page cache
  • Enhanced Views data handling for better performance

Code Optimization

  • Replaced jQuery $.each() with filtered for loops for better JavaScript performance
  • Removed unused local variables across multiple core files
  • Consolidated test methods in MenuRouterTest
  • Improved Views UI preview tests
  • Optimized configuration value handling

Impact Summary

Drupal 8.0-alpha4 represents a significant step forward in Drupal 8's development journey, with substantial improvements to core architecture and developer experience. This release focuses on refining the entity system, enhancing configuration management, and modernizing code practices throughout the codebase.

Key architectural improvements include a more sensible node entity database schema, UUIDs for default configuration, and conversion of numerous page callbacks to modern controllers. The plugin system has been enhanced with better discovery mechanisms and standardized naming conventions. Translation capabilities have been significantly improved with better content language settings and field translation options.

For developers, this release brings more consistent APIs, better type hinting, and improved documentation throughout the codebase. The move toward modern PHP practices continues with proper namespacing, service-based architecture, and removal of global variable usage. The routing system has been enhanced to allow Views to override existing routes and provide better integration between components.

Site builders will appreciate the improved field UI with better organization of field types, more consistent configuration interfaces, and enhanced block management. Content editors benefit from improvements to the entity editing experience, better CKEditor integration, and more consistent interfaces for managing multilingual content.

While still an alpha release with known issues and evolving APIs, 8.0-alpha4 demonstrates Drupal 8's continued progress toward a more robust, developer-friendly platform with improved architecture and standards compliance. The significant number of bug fixes and performance improvements also indicates the growing stability of the platform as it moves closer to beta status.

Statistics:

File Changed300
Line Additions4,173
Line Deletions3,186
Line Changes7,359
Total Commits250

User Affected:

  • Improved configuration management with UUIDs added to default configuration
  • Enhanced entity system with better API and database schema
  • Modernized code with proper namespacing and PHP standards
  • New controller-based architecture replacing legacy page callbacks
  • Improved plugin system and discovery mechanisms

Contributors:

alexpottwebchickjhodgdon-drp