Drupal Release: 6.0-beta-2
Pre Release
Tag Name: 6.0-beta-2
Release Date: 10/17/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-2: Significant Enhancements and Refinements
Drupal 6.0-beta-2 represents a substantial step forward in the development of Drupal 6, with over 9,600 changes across 160 files. This release focuses on improving usability, performance, and developer experience while fixing numerous bugs from beta-1.
Key improvements include enhanced AHAH functionality for dynamic forms, better theme system flexibility, improved RTL language support, and numerous security and performance optimizations. The release also introduces comment settings per node type, better menu handling, and various UI improvements.
This beta is recommended for developers and site builders who want to test and prepare for Drupal 6's final release, but is not yet ready for production environments.
Highlight of the Release
- Enhanced AHAH functionality for dynamic forms without writing JavaScript
- Comment settings now configurable per node type
- Improved theme system with better CSS inheritance and variable preprocessing
- Better RTL (right-to-left) language support in core themes
- Performance improvements in user access checking and locale handling
- Menu system improvements with new path placeholders and better tab handling
- Taxonomy management improvements with pager for large vocabularies
- Real-time book outline reordering with AHAH
Migration Guide
Upgrading from Drupal 6.0-beta-1 to 6.0-beta-2
Theme System Changes
- If you've created custom themes, review your theme's .info file to take advantage of the new ability to override core and module CSS files
- Check any theme_preprocess functions as the theme preprocessing system has been enhanced
- Review any custom theming of menus as menu tabs now run through theme('menu_item_link')
Form API Changes
- If you've used #DANGEROUS_SKIP_CHECK in your forms, you should remove it and use the new AHAH functionality instead
- Review any custom AHAH implementations as the AHAH system has been significantly expanded
Menu API Changes
- If you're using custom menu items, be aware that the menu system now supports GET query and fragment information
- New %index and %map menu path placeholders are available for advanced routing
Database API Changes
- Review any IN() queries to ensure they use proper field type placeholders
- Consider using the new schema-based record load/save functionality for database operations
Module Changes
- The Drupal module (site metrics reporting) has been removed from core and will be available in contrib
- Comment settings are now per node type, so review any code that interacts with comment settings
Function Name Changes
- 'access control' has been renamed to 'permissions' throughout the system
- drupal_match_path() is now available for path-based matching
This is a beta release and further changes may occur before the final 6.0 release. It's recommended to test thoroughly in a development environment before deploying to production.
Upgrade Recommendations
Who should upgrade to Drupal 6.0-beta-2?
Recommended for:
- Developers who want to test their modules and themes against the latest Drupal 6 codebase
- Site builders who want to familiarize themselves with new features and prepare for Drupal 6
- Contributors who want to help test and identify issues before the final release
- Anyone who was already using Drupal 6.0-beta-1 for testing purposes
Not recommended for:
- Production websites (this is still a beta release with known issues)
- Sites that require stability and security updates
- Sites without a proper development/testing environment for upgrades
Upgrade Path:
If you're currently running Drupal 6.0-beta-1, you can upgrade directly to 6.0-beta-2. The upgrade process should be straightforward, but always back up your database and files before upgrading.
If you're running Drupal 5.x, it's recommended to wait for the final Drupal 6.0 release before upgrading production sites, as there may still be significant changes between beta releases and the final version.
Important Note:
This beta release includes all security fixes from Drupal 5.3, making it more secure than beta-1, but as a beta release, it may still contain undiscovered security issues or bugs.
Bug Fixes
Theme and UI Fixes
- Fixed account-specific theme selection form
- Fixed notices in theme.inc when specific sidebars are not set
- Fixed notices in Chameleon theme
- Fixed XHTML validity issues in Garland theme
- Fixed empty tbody validation issues
- Fixed proper style and script inheritance between themes more than two levels deep
Node and Content Management
- Fixed node.changed not being updated on mass operations
- Fixed issues around node submission dates and content editing
- Fixed nodeapi alter hook not being invoked during search indexing
- Fixed comment submission on nodes where a form is displayed
- Fixed moderation bug when editing comments
Menu and Navigation
- Fixed user path access broken by the user module split
- Fixed menu link classes
- Fixed proper depth counting for menu tabs when parents are missing
- Fixed multiple menu links to the same node not being shown
Database and Performance
- Fixed database placeholders in IN() queries for better security
- Fixed range query in node_update_index() using more arguments than placeholders
- Fixed PostgreSQL code comments incorrectly mentioning MySQL
- Performance improvements for user_access()
- Improved locale cache handling performance
OpenID
- Fixed "cancel OpenID login" link display even when login trial did not succeed
- Fixed enforcement of site user account creation policy in OpenID module
- Fixed OpenID delegation
Other
- Fixed cookie handling to use path=/ to avoid broken situations in subdirectories
- Fixed language code regular expression being too greedy
- Fixed HTTP Basic authentication username and password not being used in requests
- Fixed race condition with drupal_goto()
- Fixed block and page cache cleaning when menu items change
New Features
Enhanced AHAH Functionality
The AHAH (Asynchronous HTML and HTTP) system has been significantly expanded to work with most form elements without requiring custom JavaScript. This enables dynamic form updates and improves user experience across the interface. The blocks admin page and book module now use this functionality.
Per-Node Type Comment Settings
Comment settings can now be configured separately for each content type, providing much more granular control over how comments work across different sections of your site.
Theme System Improvements
- Theme
.infofiles can now override core and module CSS files based on file basenames - New
hook_theme_registry_alter()for modules to modify the theme registry - Improved theme variable preprocessing with more hook options
- Better support for CSS-only themes
Menu System Enhancements
- New
%indexand%mapmenu path placeholders for advanced routing - Menu tabs now run through
theme('menu_item_link')for better theming - First and last CSS classes added to menu trees and themed item lists
- GET query and fragment information now possible in menu links
Schema API Improvements
Added functionality to load and save records based upon schema definitions, making database operations more consistent and reducing boilerplate code.
New "Powered by Drupal" Block
A new block has been added to promote Drupal sites, available in the block administration interface.
Security Updates
Database Security
- Improved field type placeholders in IN() queries, setting a best practice to avoid SQL injection vulnerabilities
- Better sanitization of user input in various contexts
Authentication and Access
- Fixed user path access issues broken by the user module split
- Proper enforcement of site user account creation policy in OpenID module
- Removed #DANGEROUS_SKIP_CHECK as safer methods are now available with AHAH functionality
Cookie and Session Handling
- Improved cookie handling to use path=/ to avoid broken situations in subdirectories
- Fixed race condition with drupal_goto() to ensure session data is written before redirection
Private Key Management
- Now using drupal_get_private_key() instead of directly retrieving the drupal_private_key variable to ensure proper key generation
Module Security
- Removed the Drupal module (site metrics reporting) from core to improve security and privacy (will be available in contrib)
Performance Improvements
User Access Performance
Significant performance improvements have been made to user_access(), which is one of the most frequently called functions in Drupal. This results in faster page loads across the entire site.
Locale Cache Handling
The locale module's cache handling has been improved to:
- Prune the whole cache when string additions affect all languages
- Rebuild language caches as needed, distributing this load among page requests
- This results in better performance for multilingual sites
Query Debugging
For developers, SQL queries now include the caller function name and username in the query log when debug mode is turned on, making performance debugging easier without adding overhead in production.
Menu and Path Handling
- Abstracted path matching to
drupal_match_path()from block listing for better reuse and performance - Improved menu router rebuilding with better cache handling
Form Processing
- Improved form state handling to avoid unnecessary system settings saves
- Better handling of AHAH form submissions with improved caching
Impact Summary
Drupal 6.0-beta-2 represents a significant step forward in the Drupal 6 development cycle, with over 9,600 changes across 160 files. This release focuses on refining the features introduced in beta-1 while adding several important new capabilities.
The most impactful changes include the enhanced AHAH functionality, which enables dynamic form updates without custom JavaScript, and per-node type comment settings, which provide much more granular control over how comments work across different content types. These features significantly improve both the developer experience and site builder flexibility.
For theme developers, the ability to override core and module CSS files through theme .info files and improved variable preprocessing hooks offer much more control over the presentation layer without requiring PHP code changes.
Performance improvements in user access checking and locale cache handling will benefit all sites, but especially larger installations with many users and multilingual sites. Security has been enhanced through better database query handling and improved session management.
The removal of the Drupal module (site metrics reporting) from core improves privacy and security, while the renaming of 'access control' to 'permissions' improves usability for administrators.
Overall, this beta release brings Drupal 6 much closer to a production-ready state, though as a beta it's still recommended primarily for testing and development environments rather than production sites.
Statistics:
User Affected:
- Enhanced AHAH functionality for dynamic forms without writing JavaScript
- New hook_theme_registry_alter() for modifying the theme registry
- Improved theme system with better CSS inheritance and overriding capabilities
- New drupal_match_path() function for path-based matching
- New %index and %map menu path placeholders for advanced routing
- Schema API improvements with record load/save functionality
- Better debugging with function name and username in SQL query logs
