Home

>

Tools

>

Drupal

>

Releases

>

5.0-rc-1

Drupal Release: 5.0-rc-1

Pre Release

Tag Name: 5.0-rc-1

Release Date: 12/15/2006

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 5.0 RC1: Performance Boost, Bug Fixes, and UI Improvements

This release candidate brings significant performance improvements with a new CSS preprocessor that can speed up page loads by up to 40%. It fixes numerous bugs including MySQL strict mode compatibility, improves memory usage, enhances usability with better form handling, and refines the Garland theme. This update represents the final stabilization phase before Drupal 5.0's official release, with particular focus on database compatibility, UI refinements, and documentation improvements.

Highlight of the Release

    • New CSS preprocessor that caches and compresses CSS files, improving page load times by up to 40%
    • Fixed MySQL strict mode compatibility issues
    • Improved memory usage in color.module
    • Added print stylesheet to Garland theme
    • Support for OpenDocument file extensions by default
    • Fixed multistep form handling to prevent session table bloat
    • Improved block rendering order for better header insertion
    • Enhanced usability with easier break-tag insertion
    • Added files directory writability to status reports

Migration Guide

for Drupal 5.0 RC1

For Site Administrators

  1. Database Updates

    • Run the update.php script immediately after upgrading to apply all database schema changes
    • Pay special attention if you're using MySQL in strict mode - this release includes fixes for compatibility
  2. Theme Changes

    • If you're using a custom theme based on Garland, review your CSS as the CSS preprocessor may affect your styling
    • Check your theme's compatibility with the new CSS compression system
    • Consider implementing the new print stylesheet functionality if appropriate for your site
  3. Block Configuration

    • Empty blocks will now be hidden in various contexts - review your block configuration if you rely on empty blocks displaying
    • Block rendering order has changed (blocks now render before page content) - check if this affects your site's appearance
  4. Form Handling

    • If you've implemented custom multistep forms, test them thoroughly as this release changes how they're processed
    • Check any custom form validation, especially for file uploads in PHP5 environments
  5. Module Compatibility

    • This release includes a specific workaround for CCK compatibility (#101454) - if you use CCK, test thoroughly
    • Modules without proper .info files will no longer appear on the module page - update any custom modules

For Developers

  1. API Changes

    • Review the updated bootstrap phases documentation (#101531)
    • Note that db_result() now returns FALSE if no result was found (consistent with PHP's mysql_result)
    • The meaning of #prefix in form API has changed when a #theme is present (#100787)
  2. CSS Processing

    • The new CSS preprocessor caches and compresses CSS files - test your theme's CSS thoroughly
    • If you use @import in your CSS, check that it still works correctly (#102877)
    • Review conditional CSS loading implementation if you have custom modules with CSS files
  3. Form API Updates

    • Spaces are now removed in autogenerated form #ids (#72003)
    • Class can now be added to checkboxes/radios group container (#40871)
    • Test any custom form implementations thoroughly
  4. Database Handling

    • If you're using custom database queries, test with MySQL strict mode enabled
    • Review any PostgreSQL-specific code as several PostgreSQL bugs were fixed
  5. Documentation

    • Many constants are now better documented - review the updated documentation for your code

Upgrade Recommendations

Who Should Upgrade

  • Current Drupal 5.0 Beta 2 Users: Strongly recommended to upgrade to this RC1 release as it contains numerous bug fixes and performance improvements
  • Production Sites on Drupal 4.x: Consider waiting for the final Drupal 5.0 release unless you're actively testing the upgrade path
  • Developers Building New Sites: Recommended to use this RC1 to help test and identify any remaining issues before the final release

Upgrade Priority: Medium-High

This is a Release Candidate, indicating that Drupal 5.0 is nearing its final release. The significant performance improvements (especially the CSS preprocessor) and numerous bug fixes make this an important update for anyone testing Drupal 5.0.

Upgrade Considerations

  1. Testing Environment: Always test the upgrade in a development environment first
  2. Database Backup: Create a complete backup of your database before upgrading
  3. Module Compatibility: Check if your contributed modules are compatible with Drupal 5.0 RC1
  4. Theme Testing: Test your theme thoroughly with the new CSS preprocessor
  5. Run update.php: After upgrading, immediately run the update.php script to apply database changes

Special Notes

  • If you're using MySQL in strict mode, this release contains important fixes for compatibility
  • The CSS preprocessor can significantly improve performance but may require theme adjustments
  • If you use CCK, note that this release includes a specific workaround for CCK compatibility (#101454)
  • Custom multistep forms should be tested thoroughly due to changes in form handling

Bug Fixes

Database & Performance

  • MySQL Compatibility: Fixed issues when MySQL runs in strict mode (#98551, #101421)
  • PostgreSQL Support: Fixed files-table functionality on PostgreSQL (#100143)
  • Database Results: Modified db_result to return FALSE if no result was found, consistent with PHP's mysql_result (#98988)
  • Query Optimization: Removed unnecessary 'GROUP BY' clause in thread-building code (#102151)
  • Page Cache: Made page cache keys case-sensitive on MySQL (#99970)

Forms & User Interface

  • Form API: Fixed issues with multistep forms filling the session table (#99087)
  • Form Handling: Fixed forms in node preview (#100775)
  • User Management: Fixed ability to fully save users during mass editing (#99426)
  • User Creation: Fixed issue preventing creation of blocked users (#101900)
  • Password Reset: Fixed parse error on password reset page (#100352)
  • Comment System: Fixed collapsed comments functionality (#100836)
  • Comment Display: Fixed comment de-indenting multiple levels at a time (#93897)
  • Comment Subjects: Fixed empty comment subjects when comment only contains HTML tags (#60916)
  • Table Headers: Fixed inability to add class to table header cells (#100612)
  • File Upload: Fixed file upload in PHP5 (pass by reference) (#101164)
  • File Upload: Fixed incorrectly displayed maxsize for file uploads (#102583)
  • Aggregator: Fixed aggregator categorization form (#100859)
  • Aggregator Blocks: Prevented display of empty aggregator blocks (#68156)
  • Filter System: Stopped adding unnecessary <br /> to empty output (#100679)
  • Profile Module: Fixed fields that appear on registration page (#102871)

Content & Node Management

  • Book Module: Removed "Add child page" link from unpublished book nodes (#26552)
  • Teaser Length: Fixed teaser length to be a maximum as described, not a minimum (#73910)
  • Content Display: Fixed posts being cut off at a lone < character (#101775)
  • Path Handling: Fixed return value of drupal_lookup_path() (#100957)
  • Search Results: Now using absolute links for search results to allow syndication (#87241)

System & Core

  • Installation: Fixed drupal_install_fix_file() calculation of correct permissions (#101829)
  • Session Handling: Modified user_logout to only end the current session (#90612)
  • Module Management: Fixed modules missing .info files wrongly adding empty entries to module page (#101379)
  • Variables: Stopped saving formapi metadata to variables table (#99601)
  • Variables: Fixed appending to non-existent variables
  • Path Handling: Fixed request_uri() on some systems (#87310, later rolled back #102232)
  • File Scanning: Avoided scanning hidden files and directories (#91592)
  • Image Handling: Fixed image_scale() to not scale to identical sizes (#101970)
  • Switch Statement: Fixed switch statement in index.php not to trigger on string numbers (#101486)

Theme & Display

  • Block Rendering: Fixed blocks to render before page content so they may insert headers (#87090)
  • CSS Issues: Fixed gap between textarea and grippie in Safari (#100668)
  • Fieldsets: Fixed cut-off content in wide fieldsets (#92849)
  • Menu CSS: Fixed menu indentation after conditional CSS patch (#101523)
  • CSS Preprocessor: Fixed overzealous CSS compressor (#102597)
  • Image Toolkit: Restored missing image toolkit settings (#99160)

New Features

Performance Enhancements

  • CSS Preprocessor: New system to cache and compress CSS files, resulting in up to 40% faster page loads (#100516)
  • Memory Optimization: Improved memory usage in color.module by de-allocating images earlier

UI Improvements

  • Status Reports: Added files directory writability check to status reports (#101133)
  • Status Reports: Added ability to show out-of-date database tables (#100547)
  • File Support: Added support for OpenDocument file extensions by default (#101714)
  • Garland Theme: Added print stylesheet to Garland theme (#92544)
  • Garland Theme: Added missing feed icons to Garland (#100696)
  • Color Module: Fine-tuned existing color schemes and added new ones (#101006)

Internationalization

  • Language Support: Added Brazilian-Portuguese support (#27906)

Usability Enhancements

  • Content Editing: Easier break-tag insertion for content creators (#87145)
  • Block Management: Improved handling of empty blocks in various contexts
  • Menu System: Improved menu indentation and styling

Security Updates

While this release doesn't contain major security-specific fixes, several improvements contribute to better security practices:

  • User Sessions: Modified user_logout to only end the current session rather than all sessions (#90612), providing better session management
  • File Permissions: Fixed drupal_install_fix_file() to calculate correct permissions during installation (#101829)
  • Form Handling: Improved form API handling to prevent potential issues with form data
  • Variable Storage: Stopped saving formapi metadata to variables table (#99601), reducing unnecessary data exposure
  • Path Handling: Fixed issues with request_uri() handling on some systems (#87310)

These changes, while not explicitly labeled as security fixes, contribute to a more secure Drupal installation by improving how the system handles sessions, permissions, and user input.

Performance Improvements

CSS Optimization

  • New CSS Preprocessor: Implemented a system to cache and compress all CSS files, resulting in up to 40% faster page loads (#100516)
  • Conditional CSS Loading: Added conditional loading of module CSS files to reduce unnecessary CSS loading (#100563)

Memory Management

  • Color Module: Improved memory usage by de-allocating images earlier in the process
  • Session Handling: Fixed multistep forms to prevent filling the session table unnecessarily (#99087)

Database Optimization

  • Index Addition: Added key on {files}.nid to improve query performance (#70504)
  • Query Optimization: Removed unneeded 'GROUP BY' clause in thread-building code for better efficiency (#102151)
  • Comment Tracking: Implemented more efficient query for comment tracking when comment module has been disabled (#102353)

File System

  • File Scanning: Improved performance by avoiding scanning of hidden files and directories (#91592)

Page Caching

  • Cache Flushing: Added targeted cache flushing when users change their profiles (#16798)
  • Cache Keys: Made page cache keys case-sensitive on MySQL for better performance (#99970)

Impact Summary

Drupal 5.0 RC1 represents a significant step toward the final Drupal 5.0 release, focusing on performance optimization, bug fixes, and usability improvements. The most notable impact comes from the new CSS preprocessor, which can improve page load times by up to 40% by caching and compressing CSS files.

This release addresses several critical compatibility issues, particularly with MySQL strict mode and PostgreSQL, making Drupal more robust across different database environments. The fixes for multistep forms prevent unnecessary session table bloat, improving overall system performance.

For site administrators, the addition of more comprehensive status reporting (including files directory writability and out-of-date database tables) provides better visibility into potential issues. Content editors will appreciate the improved usability features like easier break-tag insertion and better handling of teasers.

Theme developers benefit from enhancements to the Garland theme, including a new print stylesheet and better handling of fieldsets. The CSS preprocessor, while providing significant performance benefits, may require testing with custom themes to ensure compatibility.

Developers will find numerous API improvements and better documentation, particularly around bootstrap phases and system constants. The changes to form handling and database result functions may require updates to custom code but provide more consistent behavior.

Overall, this release candidate demonstrates Drupal's commitment to performance, usability, and stability as it approaches the final 5.0 release. The breadth of fixes across all aspects of the system makes this an important update for anyone testing or developing with Drupal 5.0.

Statistics:

File Changed68
Line Additions1,311
Line Deletions593
Line Changes1,904
Total Commits137

User Affected:

  • Benefit from improved MySQL strict mode compatibility
  • Can now see out-of-date database tables in status reports
  • Files directory writability now appears in status reports
  • Empty blocks no longer display on administration pages
  • Improved user management with fixed mass editing functionality

Contributors:

dbuytaertdrumm