Install
To start a new Drupal project with version 9.3.0-beta1@beta:To update your site and all dependencies to the latest version of Drupal:
To update your site to this specific release:
Using Composer to manage Drupal site dependencies
Downloads
Release notes
This is a beta release for the next minor (feature) release of Drupal 9. Betas are good testing targets for developers and site builders who are comfortable reporting (and where possible, fixing) their own bugs. Beta releases are not recommended for non-technical users, nor for production websites. More information on beta releases.
This minor release provides new improvements and functionality without breaking backward compatibility (BC) for public APIs. Note that there may be changes in internal APIs and experimental modules that require updates to contributed and custom modules and themes per Drupal core's backwards compatibility and experimental module policies.
Drupal 9.3.x contains new features, and should be the target for new site development. Drupal 9.2.x will continue to have security support until June 2022. Security support for 9.1.x ends with the release of 9.3.0 on December 8.
Regardless of which version you choose now, features will only be added to Drupal 9 minor releases, so plan to adopt Drupal 9 this year so that you can easily update to Drupal 9.3 and later.
Important update information
Updating from Drupal 8
For information on updating from Drupal 8 to Drupal 9, see Upgrading a Drupal 8 site to Drupal 9.
Upgrading from Drupal 7
Drupal 6 and 7 users can continue to migrate to Drupal 8.9, or 9.3 directly. The migration paths from Drupal 6 and Drupal 7 to Drupal 9 will remain supported throughout Drupal 9's release cycle.
CKEditor 5 added as a new experimental module
CKEditor 4 will be end-of-life in 2023. An experimental module for CKEditor 5 has been added and will replace CKEditor 4 in Drupal 10.
CKEditor 5 differs significantly from CKEditor 4, so sites and modules should begin testing with it now in preparation for Drupal 10's release next year. The module is experimental and therefore not yet intended for production use.
Testing CKEditor 5
Back up your site data and configuration before beginning testing.
-
The automatic content upgrade path: Under Configuration > Content Authoring > Text formats and editors, configure a text format and change its "text editor" setting from "CKEditor" to "CKEditor 5". (This will happen automatically when upgrading to Drupal 10.)
You will get the equivalent CKEditor 5 configuration created automatically: toolbar, plugin settings, and so on. Messages will appear upon switching that explain what happened and why. Verify that the messages and generated configuration are correct.
-
The editing experience: Verify that the default CKEditor 5 configuration works as you need and expect. For example, the linking experience should be improved, uploading images is much faster, and so on.
-
Your existing content: When you edit existing content with CKEditor 5 and you save it, verify that the resulting markup looks as you expect, and that no data is lost.
Upgrading contributed modules to CKEditor 5
The module can be also used for making modules extending CKEditor 4 to become compatible with CKEditor 5.
- Meta issue of contrib modules being ported: #3207845: [META] Port some initial CKEditor 4 plugin integration modules to CKEditor 5
- Examples of complex CKEditor 4 modules updating to CKEditor 5 compatibility:
Warning added for missing PostgreSQL requirement
In preparation for Drupal 10 PostgreSQL requirements, sites running PostgreSQL without the pg_trm extension will begin to see a warning in the status report when it is not installed.
Dependency updates
The symfony-cmf/routing and composer/composer dependencies have received patch-level updates to the latest versions.
All changes since 9.3.0-alpha1
- Issue #3231364 by Wim Leers, lauriii, bnjmnm, webchick, xjm, tim.plunkett, larowlan, Luke.Leber, catch, effulgentsia, longwave, gabesullice, caldenjacobs, Reinmar, anand.toshniwal93, Shoshana Mayden, zrpnr, yash.rode, nod_, rkoller, antojose, johnwebdev: Add CKEditor 5 module to Drupal core
- Issue #3248649 by alexpott: \Drupal\views\Plugin\views\display\PathPluginBase::alterRoutes() can become very slow on a site with lots of entities and JsonAPI
- Issue #3243041 by Gábor Hojtsy: Mark Olivero stable
- Issue #3244621 by mherchel, rikki_iki, catch, cathwaldron, rachel_norfolk, alexpott, Gábor Hojtsy: Olivero: JS error when secondary tabs are present
- Issue #3248600 by andypost, longwave: Update dependencies for 9.3.x
- Issue #2975461 by quietone, Matroskeen, Lendude: Convert query string to array for d6 menu_link migration
- Issue #3247901 by danflanagan8, longwave: ContentTranslationUITestBase should not rely on Classy
- Issue #3158289 by alexpott, barboza: Deprecate hook_init for theme engines
- Issue #3231683 by daffie, longwave: [Symfony 6] A number of methods of the class Drupal\Core\TypedData\Validation\ExecutionContext are considered internal and Drupal should not override them
- Issue #3214921 by daffie, xurizaemon, alexpott, mondrake, andypost, Taran2L, Mixologic, longwave: Add a requirements warning in Drupal 9 when PostgreSQL is used and the pg_trgm extension is not created
- Issue #3248156 by alexpott, longwave: Update dependencies prior to 9.3.0 beta
- Issue #3028837 by quietone, joachim, alexpott: views_hooks group has nothing in it
- Issue #3212891 by vaish, brentgees@gmail.com, srilakshmier, mikelutz, quietone, alexpott: Incorrect type declaration in docblock for class property
- Issue #3239509 by hooroomoo, larowlan, bnjmnm, lauriii: Add String.includes polyfill to support IE11 and Opera Mini
- Issue #3087332 by quietone, huzooka, amateescu, danflanagan8: Deprecate the 'd6_url_alias_language' migration process plugin
- Issue #3163663 by mpp, chrisolof, alexpott, quietone: Too many open files issue with migrating multiple files using "download" process plugin
- Issue #3245820 by paul121, dww, eojthebrave: Remove references to removed node publish actions
- Issue #3246595 by andypost: Update dependencies for 9.3.x
- Issue #3213644 by Beakerboy, daffie: StatementWrapperLegacyTest::testClientStatementMethod() should be less specific
- Issue #2569381 by alx_benjamin, init90, vasi, deepakaryan1988, Munavijayalakshmi, Lendude, DuaelFr, alexpott, dawehner: Drupal\views\Plugin\viewsrea\Result does an unnecessary XSS::adminFilter()
- Issue #3227821 by wtrv: Broken svg element with "Auto convert linebreaks" (autop) filter
- Issue #3246053 by quietone: Fix file_managed table for ds9.txt
- Issue #3214170 by Sakthivel M, manojithape, mitthukumawat, tushar_sachdeva: Claro:The cancel button is not center-aligned in the layout builder
- Issue #3186992 by hinal05, djsagar, kiran.kadam911, hitvika_verma, tushar_sachdeva, chetanbharambe, ranjith_kumar_k_u, bnjmnm, BhumikaVarshney, Sakthivel M, Abhijith S, babusaheb.vikas, lauriii: Nav menu items can overflow outside of container