Drupal Release: 6.0-beta-1
Pre Release
Tag Name: 6.0-beta-1
Release Date: 9/14/2007
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 6.0 Beta 1: Major Overhaul with Performance and Usability Improvements
Drupal 6.0 Beta 1 represents a significant evolution of the Drupal CMS with substantial architectural improvements. This release introduces block caching, module splitting for better performance, improved theming capabilities, and enhanced database compatibility. The menu system has been completely revamped with better integration for modules like Book. UI improvements include RTL language support and better form handling. This beta marks the transition to a more modular, performant, and developer-friendly Drupal that maintains backward compatibility while setting the stage for future innovation.
Highlight of the Release
- New block caching system dramatically improves performance for anonymous users
- Major architectural improvements with many core modules split into smaller files for better performance
- Complete revamp of the menu system with 100% integration for the Book module
- Enhanced database compatibility with Oracle, DB2, and other database systems
- Right-to-left (RTL) language support throughout the interface including Garland theme
- Improved Form API with support for image buttons and better handling of file uploads
- Renamed actions module to trigger with a more usable interface
- Better theming capabilities with improved template suggestions and variable handling
Migration Guide
Preparing for Upgrade to Drupal 6.0
Before You Begin
- Backup your site: Create a complete backup of your database and files before attempting an upgrade.
- Check module compatibility: Verify that all your contributed modules have Drupal 6 versions or that you have a migration plan.
- Update to the latest Drupal 5.x release: Ensure your site is running the latest version of Drupal 5 before upgrading.
Database Schema Changes
- The variables table column length has been increased
- Several tables have had index optimizations
- Some NULL values are no longer allowed in certain columns
API Changes for Developers
Form API Changes
- Image button support has been added
- Form state handling has changed in many places
- File upload handling has been improved
Menu System Changes
- The menu system has been completely revamped
- Book module now integrates 100% with the menu system
- Menu links can exist outside of 'navigation'
Theming Changes
- Many modules have been "tplified" (converted to use template files)
- Theme engines can now register theme variable functions
- Theme-specific settings are supported via theme-settings.php
- Template suggestions now include path history
- CSS now uses href instead of @import
Module Structure Changes
Many core modules have been split into smaller files:
- system.module → system.module + system.admin.inc
- node.module → node.module + node.admin.inc
- user.module → user.module + user.admin.inc
- etc.
Update Process
- Replace your existing Drupal codebase with the new Drupal 6 codebase
- Run update.php and follow the instructions
- Rebuild permissions and other caches after the upgrade
- Test thoroughly before making the site public again
Known Issues
- The first user may be installed as uid = 2 in MySQL 4.1
- Some theme customizations may need to be updated for the new theming system
- Custom modules will likely need updates to work with the new Form API and menu system
Upgrade Recommendations
For Production Sites
This is a beta release and not recommended for production sites. Production sites should continue using Drupal 5.x until the final release of Drupal 6.0 is available.
For Development and Testing
This beta release is ideal for:
- Module developers who want to start updating their modules for Drupal 6
- Theme developers who want to explore the new theming capabilities
- Site builders who want to test their site architecture with Drupal 6
- Contributors who want to help test and improve Drupal 6 before the final release
Upgrade Path
If you do want to test the upgrade process:
- Set up a development/staging environment separate from your production site
- Make a complete backup of your Drupal 5 site
- Follow the migration guide to upgrade your test environment
- Report any issues you encounter to the Drupal issue queue
Module Compatibility
Many contributed modules will not yet be compatible with Drupal 6.0 Beta 1. Before attempting an upgrade, check the status of modules critical to your site's functionality. The Views module developers have already started working on Drupal 6 compatibility (as mentioned in the commit messages), which is a good sign for other popular modules following suit.
When to Upgrade Production Sites
Wait for:
- The final release of Drupal 6.0
- Stable releases of all contributed modules critical to your site
- A thorough testing period in a staging environment
Bug Fixes
Permission and Node Access Issues
- Fixed permission problems when node grants were acquired for unsuccessfully loaded nodes
- Fixed node access table rebuilding with new batch support for large sites
- Corrected issues with book outline removal and permissions
Form Handling and UI Fixes
- Fixed issues with file uploads in cached forms
- Corrected problems with reappearing teasers on node save
- Fixed uploads without JavaScript enabled
- Resolved issues with table headers in Safari that caused fieldset contents to disappear
- Fixed hidden textareas in Opera and removed gaps between textarea and grippie in Firefox/Safari
Database and Query Corrections
- Fixed MySQL error when moving menu links
- Corrected length for variables column
- Fixed numerous SQL queries for better cross-database compatibility
- Resolved issues with taxonomy term saving
- Fixed node saving centralization issues
Security and Error Handling
- Improved XSS protection by using SCRIPT_NAME instead of PHP_SELF in links
- Better error reporting for database connection issues
- Fixed IP address identification
- Enhanced mail problem logging
Notices and PHP Errors
- Fixed numerous E_NOTICE and E_ALL errors throughout the codebase
- Corrected call-time pass-by-reference warnings
- Fixed notices on profile pages with incomplete path components
New Features
Block Caching
A significant performance improvement has been implemented with block caching for anonymous users. This allows blocks to be cached and reused across page loads, reducing database queries and processing time.
Multiple Book Support
The Book module has been completely rewritten to support multiple books and achieves 100% integration with the menu system. This allows for more complex content organization and improves the performance of book rendering.
RTL Language Support
Full right-to-left (RTL) language support has been added throughout the interface, including the Garland theme. This makes Drupal more accessible to users of languages like Arabic, Hebrew, and Persian.
Image Button Support in Form API
The Form API now supports image buttons, facilitating the upgrade of modules like Views to Drupal 6. This is a small extension that doesn't break existing code but adds new functionality.
Enhanced Actions Interface (Trigger Module)
The actions module has been renamed to trigger and completely redesigned to be more user-friendly. Actions themselves remain available even when the trigger module is disabled, allowing for more flexible use by other modules.
Improved Template System
The theming system now supports more granular template suggestions, including path history in theme discovery. Theme engines can now register theme variable functions, and there's better support for theme-specific settings via theme-settings.php files.
Security Updates
XSS Protection
- Fixed potential XSS vulnerability by using SCRIPT_NAME instead of PHP_SELF in links
Database Security
- Removed db_update_field() function which could be easily misused
- Improved handling of database queries with proper quoting of values
User Authentication
- Enhanced session handling during user operations
- Improved OpenID module security
- Better handling of user approval processes
Access Control
- Fixed issues with node grants acquisition
- Improved menu access checking
- Enhanced book outline permissions
Input Sanitization
- Proper handling of input sanitization in appropriate places
- Added rel=nofollow attribute to anonymous comment home page links to counter spamming
Performance Improvements
Block Caching
The introduction of block caching is a major performance improvement for anonymous users. Blocks can now be cached and reused across page loads, significantly reducing the number of database queries and processing time required to render pages.
Module Splitting
Many core modules have been split into smaller files to improve performance by only loading code when needed:
- System module
- Node module
- User module
- Menu module
- Book module
- Filter module
- Help module
- Search module
- Statistics module
- Aggregator module
- Poll module
- Taxonomy module
- Upload module
- Throttle module
- Tracker module
Menu System Optimization
- Optimized menu queries and indices for better performance
- Improved book block performance
- Avoided using expensive array_shift() operations in menu handling
Node Loading Improvements
- Better handling of node loading processes
- Improved performance for book rendering
CSS and JavaScript Handling
- Changed from @import to href for CSS loading, which improves page rendering speed
- Updated to jQuery 1.2 for better JavaScript performance
- Improved JavaScript aggregation
Impact Summary
Drupal 6.0 Beta 1 represents a significant architectural evolution rather than a revolutionary change. The core focus has been on performance, modularity, and developer experience while maintaining backward compatibility where possible.
The most impactful changes include:
-
Performance Improvements: Block caching and module splitting provide substantial performance gains, especially for anonymous users. Sites with high traffic will see the most benefit from these changes.
-
Developer Experience: The refactoring of many core modules into smaller files makes the codebase more maintainable and improves load times by only including necessary code. The enhanced Form API and theming system give developers more flexibility and power.
-
Internationalization: Full RTL language support makes Drupal truly global, opening up markets in regions where right-to-left languages are used.
-
Database Compatibility: Improved support for Oracle, DB2, and other database systems makes Drupal more enterprise-ready and expands hosting options.
-
Content Organization: Multiple book support and improved menu integration provide more sophisticated content structuring capabilities.
For site builders and administrators, the learning curve is relatively gentle - most changes are under the hood, with the UI remaining largely familiar. Developers will need to adapt to the new module structure and API changes, but the improvements in performance and flexibility make this worthwhile.
This beta release sets the foundation for Drupal's continued growth as an enterprise-class CMS while maintaining its flexibility for smaller sites. The focus on performance and developer experience addresses key concerns from the Drupal community while introducing new capabilities that will benefit all users.
Statistics:
User Affected:
- Module developers benefit from a more modular codebase with many core modules now split into smaller files
- Enhanced Form API with support for image buttons
- Improved theme engine capabilities with better template suggestions and variable handling
- Better database compatibility across MySQL, PostgreSQL, Oracle, and DB2
