Drupal Release: 7.0-alpha1
Pre Release
Tag Name: 7.0-alpha1
Release Date: 1/15/2010
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 7.0-alpha1 marks a significant milestone in Drupal's evolution with major architectural improvements and new features. This release introduces the Entity API, Field API, and RDFa support, enabling more flexible content modeling and better semantic web integration. Performance improvements include menu caching, static caching, and database optimizations. The UI has been enhanced with the new Overlay module, improved administrative interfaces, and the Dashboard. While this is an alpha release with ongoing development, it represents the foundation of what will become a more powerful and developer-friendly Drupal platform.
Highlight of the Release
- Introduction of the Entity API for more flexible content modeling
- New Field API allowing fields to be attached to any entity type
- RDFa support for better semantic web integration
- Improved performance with new caching mechanisms and database optimizations
- Enhanced administrative interface with Overlay and Dashboard modules
- Better multilingual support with rebuilt locale module
- Improved accessibility for screen readers
- Enhanced search with better Unicode support for non-Latin scripts
Migration Guide
Preparing for Drupal 7
Database Changes
- Drupal 7 now defaults to InnoDB with transactions ON for MySQL
- The database abstraction layer has been completely rewritten
- Update your custom database queries to use the new db_select(), db_query(), etc.
Entity System
- Content is now managed through the Entity API
- Nodes, users, comments, and taxonomy terms are all entities
- Update custom code that directly accesses these objects to use the new API
Field API
- CCK has been moved into core as the Field API
- Fields can be attached to any entity type, not just nodes
- Update custom CCK field modules to use the new Field API
Theme System
- Template suggestions have been standardized
- The
__pattern for theme suggestions is now easier to use - Update custom themes to use the new theme hooks and suggestions
JavaScript and AJAX
- The JavaScript API has been significantly improved
- AJAX framework now supports more complex interactions
- Update custom JavaScript to use the new Drupal.settings and AJAX commands
Taxonomy Changes
- Taxonomy has been completely rewritten
- The
taxonomy_term_nodetable is gone; taxonomy uses fields now - Update custom taxonomy code to use the new Field API integration
Menu System
- The menu system has been made pluggable
- Menu router items have changed structure
- Update custom menu items to use the new structure
Token System
- A new standardized Token API has been introduced
- Update custom token implementations to use the new API
Multilingual Support
- The locale module has been split and improved
- Update custom multilingual code to use the new APIs
Important Notes
- This is an alpha release - expect bugs and API changes
- The memory requirement has been temporarily raised to 40MB
- Test thoroughly before upgrading production sites
Upgrade Recommendations
As this is an alpha release (7.0-alpha1), it is not recommended for production websites. This release is intended for developers to begin testing and preparing modules for compatibility with Drupal 7.
Who should use this release:
- Module developers who need to update their modules for Drupal 7
- Theme developers who need to update their themes for Drupal 7
- Site builders who want to test and provide feedback on new features
- Contributors who want to help identify and fix bugs before the stable release
Who should not use this release:
- Production websites
- Sites that require stability and reliability
- Sites without experienced developers to handle potential issues
Preparation for eventual upgrade:
- Begin auditing custom code for compatibility with Drupal 7 APIs
- Test contributed modules you depend on to see if they have Drupal 7 versions in development
- Create a development environment to test the upgrade process
- Review the migration guide and API changes
- Consider waiting for at least a beta or RC release before attempting upgrades on more critical sites
The upgrade path from Drupal 6 to Drupal 7 is being actively worked on, with several critical upgrade path bugs fixed in this release. However, more work is needed before the upgrade process is fully stable.
Bug Fixes
Menu and Navigation
- Fixed menu description XSS vulnerability (SA-CORE-2009-009)
- Fixed nested lists in
theme_item_list() - Fixed broken pager on taxonomy term pages
- Fixed access bypass in translation module (SA-CORE-2009-001)
- Fixed incorrect menu argument for IP address blocking
- Fixed 404 errors when adding certain pages as shortcuts
Content and Fields
- Fixed direct calls to
node_view()not triggering field attach prepare view - Fixed
#after_build_done()being set after firstafter_build()function instead of all functions - Fixed
field_extra_fields()functionality - Fixed node save insertion logic
- Fixed multistep node forms unable to change basic options
UI and Theming
- Fixed tables with
style='width:auto;'rendering badly - Fixed incorrect jQuery UI shake effect configuration
- Fixed Webkit browsers displaying customize dashboard screen incorrectly
- Fixed IE8 showing no content in overlay on manage field page
- Fixed overlay's loading spinner often not visible
- Fixed jumping page heights in Overlay
Search
- Fixed search incorrectly splitting some katakana words
- Improved Unicode support for search indexing
Performance
- Fixed CSS aggregator producing invalid code for
@importfiles which breaks IE - Fixed taxonomy static caching issues
Database
- Fixed
drupal_write_record()inability to update a column to NULL - Fixed
DatabaseConnection::prepareQuery()ignoring arguments - Fixed bug in SQLite's NextId() that prevented installation
Other
- Fixed incorrect multicall implementation
- Fixed list module incorrectly validating data
- Fixed PHP notices in various modules
- Fixed batch API issues in update.php
New Features
Entity API
The new Entity API provides a standardized way to work with different types of content. This allows for more flexible content modeling and consistent APIs across different entity types.
Field API
Fields can now be attached to any entity type, not just nodes. This enables more flexible content structures and reuse of field types across different entities.
RDFa Support
Built-in RDFa support allows for better semantic web integration, making Drupal content more machine-readable and interoperable with other systems.
Dashboard Module
A new customizable administrative dashboard provides quick access to important site information and common tasks.
Overlay Module
The Overlay module provides an improved administrative experience by displaying administrative pages in a modal overlay on top of the current page.
Shortcut Module
The new Shortcut module allows users to create personalized lists of commonly-used links for quick access.
Improved Database Abstraction
Enhanced database abstraction layer with support for transactions and better cross-database compatibility, including improved support for SQLite and PostgreSQL.
Enhanced Update Manager
The Update Manager now resolves dependencies when installing modules and provides better error handling.
Token API
A new standardized Token API provides consistent token handling across modules.
Improved JavaScript and AJAX Framework
Enhanced JavaScript and AJAX framework with better support for progressive enhancement and accessibility.
Security Updates
XSS Vulnerabilities
- Fixed SA-CORE-2009-009: Menu description XSS vulnerability
- Improved sanitization of HTTP_HOST to prevent potential attacks
Access Control
- Fixed SA-CORE-2009-001: Access bypass in translation module
- Improved permission handling in various modules
Authentication
- Hardened one-time login links against vulnerability from disclosure of SQL backups or SQL 'SELECT' injection
- Added support for more HTTP authentication settings in tests
User Management
- Prevented account cancellation for user ID 1 (admin account) to protect against privilege escalation
Input Validation
- Fixed list module incorrectly validating data
- Improved sanitization in various form handling functions
Performance Improvements
Menu System Optimization
- Cache results of
menu_get_item(), making it possible to serve pages with no database hits when using alternate caching backends - Reduced memory consumption of
menu_rebuild()by splitting huge queries into multiple passes - Made menu.inc pluggable to support high-performance options in contrib modules
Static Caching
- Implemented new static caching API with
drupal_static() - Updated various modules to use the new static caching API, including node, search, and locale modules
- Added static cache for taxonomy parent and children functions
Database Optimizations
- Default MySQL to transactions ON (with InnoDB)
- Replaced LOWER() with db_select() and LIKE() where possible for better performance
- Added missing index to taxonomy_get_term_by_name() query
Memory Usage Improvements
- Reduced RAM usage in Update module by only saving necessary attributes from .info files
- Split update status logic into a per-project helper to reduce memory footprint
- Optimized template_process() and template_preprocess() functions
Batch Processing
- Fixed scaling issues with batch API for better performance with large operations
JavaScript and CSS
- Optimized drupal_render() with conditional call to element_children()
- Improved CSS organization and reduced file sizes
Impact Summary
Drupal 7.0-alpha1 represents a significant architectural evolution with the introduction of the Entity API and Field API as its cornerstone features. These changes fundamentally alter how content is modeled and managed in Drupal, providing much greater flexibility and extensibility. The integration of CCK into core as the Field API means fields can now be attached to any entity type, not just nodes.
Performance has received substantial attention with new caching mechanisms, database optimizations, and memory usage improvements. The menu system can now serve pages with no database hits when using alternate caching backends, and the database layer has been completely rewritten with better cross-database support.
The user experience has been enhanced with new modules like Dashboard, Overlay, and Shortcut, providing a more intuitive administrative interface. Accessibility improvements make Drupal more usable for people with disabilities, particularly those using screen readers.
For developers, the new APIs (Entity, Field, RDFa, Token) provide more consistent and powerful tools for extending Drupal. The JavaScript and AJAX framework has been improved to support more complex interactions and progressive enhancement.
Multilingual support has been strengthened with a rebuilt locale module, and search functionality now better supports non-Latin scripts, making Drupal more globally accessible.
As an alpha release, this version is not yet ready for production use, but it provides a clear view of the direction Drupal 7 is taking. The significant number of changes (over 24,000) reflects the substantial evolution from Drupal 6, with important architectural improvements that will benefit the platform for years to come.
Statistics:
User Affected:
- New Entity API and Field API provide more flexible content modeling capabilities
- Improved database abstraction layer with support for transactions and better cross-database compatibility
- New static caching API for better performance optimization
- RDFa support for semantic web integration
- Pluggable field storage and menu systems
- New token API for more consistent token handling
- Improved JavaScript and AJAX framework
