Home

>

Tools

>

Drupal

>

Releases

>

9.0.0-rc1

Drupal Release: 9.0.0-rc1

Pre Release

Tag Name: 9.0.0-rc1

Release Date: 5/22/2020

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 9.0.0-rc1: Polishing the Path to Drupal 9

This release candidate marks a significant milestone in Drupal's evolution from version 8 to 9. It focuses on code cleanup, bug fixes, and preparation for the stable Drupal 9 release. Key improvements include fixing installation and update issues, enhancing SQLite support, addressing migration challenges, and removing Drupal 8-specific branding. This RC1 represents the final stretch of refinement before Drupal 9's official launch, with emphasis on stability and compatibility.

Highlight of the Release

    • Fixed critical installation and update issues that could prevent successful Drupal updates
    • Improved SQLite in-memory database support for better development workflows
    • Enhanced migration support for Drupal 7 multilingual content
    • Removed Drupal 8 branding from Drupal 9 status reports
    • Updated documentation with links to drupal.org instead of static text files

Migration Guide

Upgrading to Drupal 9.0.0-rc1

For Sites Currently on Drupal 8.8.x or 8.9.x

  1. Prepare Your Site:

    • Ensure all contributed modules are compatible with Drupal 9
    • Use the Upgrade Status module to check for compatibility issues
    • Fix any deprecated code usage in custom modules
  2. Update composer.json:

    {
      "require": {
        "drupal/core-recommended": "^9.0.0-rc1"
      }
    }
    
  3. Run Composer Update:

    composer update drupal/core-* --with-all-dependencies
    
  4. Run Database Updates:

    drush updatedb
    
  5. Clear Caches:

    drush cache:rebuild
    

Special Considerations

  • If you've experienced issues with Views configurations during previous updates, this release fixes those problems, but you should still back up your database before updating.
  • Sites using SQLite may benefit from improved in-memory database support.
  • Multilingual sites migrating from Drupal 7 will have better support for entity translation revision translations.

Known Issues

  • Some contributed modules may not yet be fully compatible with Drupal 9.
  • This is a release candidate, so while it's stable enough for testing, it's not recommended for production sites unless you're prepared to help test and report issues.

Upgrade Recommendations

For Development and Testing Environments

Recommendation: Upgrade to test compatibility

This release candidate is an excellent opportunity to test your site's compatibility with Drupal 9. Development and staging environments should consider upgrading to identify any potential issues before the final release.

For Production Environments

Recommendation: Wait for the stable release

While this RC1 release includes important bug fixes and improvements, it's still a release candidate. Production sites should generally wait for the stable 9.0.0 release unless they are actively participating in the testing process and are prepared to handle potential issues.

For Sites Experiencing Specific Fixed Issues

Recommendation: Consider targeted updates

If your site is experiencing any of the specific issues fixed in this release (particularly installation problems, update failures with Views, or issues with SQLite), you might consider upgrading to benefit from these fixes, but proceed with caution and thorough testing.

Preparation Steps

Regardless of when you plan to upgrade, now is a good time to:

  1. Audit your custom and contributed modules for Drupal 9 compatibility
  2. Test your site with the Upgrade Status module
  3. Fix any deprecated code usage in custom modules
  4. Ensure your hosting environment meets Drupal 9 requirements

Bug Fixes

Critical Bug Fixes

  • Installation Process: Fixed an issue where Drupal would incorrectly show "Drupal already installed" when any database settings were wrong or unsatisfactory.

  • Update Path: Resolved a critical bug where Views with invalid configuration would cause updates from 8.7.10 to 8.8.0 to fail.

  • Database Schema: Fixed an issue with invalid system.schema key_value entries that could cause fatal errors when updating to 8.8.5.

UI and Navigation Improvements

  • Status Report: Removed Drupal 8 branding from Drupal 9 status report screens.

  • Update Process: Fixed broken links to "Put your site into maintenance mode" on update.php that could result in a white screen of death (WSOD).

Code Quality Fixes

  • Typo Corrections: Fixed "incompatitable" and "inheritdoc" typos throughout the codebase.

  • Removed Redundancy: Eliminated unused 'database_ready' install state logic.

  • Test Improvements: Fixed issues with assertions involving calls to is_readable() and is_writeable() on files and directories.

New Features

Enhanced Development Experience

  • Improved SQLite Support: Better support for SQLite in-memory databases, making local development and testing more efficient.

Migration Improvements

  • D7 Entity Translation: Added support for migrating Drupal 7 entity translation revision translations, improving the upgrade path for multilingual sites.

Documentation Updates

  • Modern Documentation Approach: Replaced static UPDATE.txt with links to drupal.org documentation, ensuring users always have access to the most current information.

Maintainer Updates

  • Migration Team: Added benjifisher as a sub-system maintainer for the migrate subsystem.

Security Updates

No specific security fixes were mentioned in the release notes for Drupal 9.0.0-rc1. Security is always a priority in Drupal development, but this release candidate appears to focus primarily on bug fixes, code cleanup, and preparation for the stable release rather than addressing specific security vulnerabilities.

Performance Improvements

Development Performance

  • SQLite In-Memory Support: Enhanced support for SQLite in-memory databases, which can significantly speed up development and testing workflows by eliminating disk I/O bottlenecks.

Testing Efficiency

  • PHPUnit Assertions: Replaced file system permission checks with proper PHPUnit assertions, making tests more reliable and potentially faster.

  • Composer Tests: Improved ComposerProjectTemplatesTest to avoid testing internet connectivity, making tests more reliable and faster in environments with limited connectivity.

Impact Summary

Drupal 9.0.0-rc1 represents a significant milestone in the Drupal 9 release cycle, focusing on stability and polish rather than introducing major new features. This release candidate addresses several critical issues that could prevent successful updates or installations, improves multilingual support through better migration tools, enhances developer experience with improved SQLite support, and removes Drupal 8-specific branding from the interface.

The most impactful changes are the fixes for installation and update processes, particularly resolving the "Drupal already installed" error that could occur with incorrect database settings and fixing the update path for sites with invalid Views configurations. These improvements ensure a smoother upgrade experience for sites moving from Drupal 8 to Drupal 9.

For developers, the enhanced SQLite in-memory database support improves local development workflows, while the code quality improvements and documentation updates contribute to a more maintainable codebase. Multilingual site owners benefit from improved migration paths for Drupal 7 entity translation revision translations.

Overall, this release candidate demonstrates Drupal's commitment to a stable, reliable upgrade path to version 9, with careful attention to fixing critical issues before the final release. While not introducing revolutionary features, it solidifies the foundation for Drupal's future.

Statistics:

File Changed237
Line Additions2,197
Line Deletions1,872
Line Changes4,069
Total Commits26

User Affected:

  • Fixed issues with the installation process that incorrectly showed 'Drupal already installed' errors when database settings were incorrect
  • Improved update.php experience with fixed links to maintenance mode documentation
  • Resolved problems with Views configurations that could cause update failures from 8.7.10 to 8.8.0
  • Status report page now shows proper Drupal 9 branding instead of Drupal 8

Contributors:

xjmalexpott