Still on Drupal 7? Security support for Drupal 7 ended on 5 January 2025. Please visit our Drupal 7 End of Life resources page to review all of your options.Install
To start a new Drupal project with version 11.3.0-rc1@RC: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 release candidate for the next minor version (feature release) of Drupal 11. Release candidates are not supported for production sites, but they are intended for widespread testing in preparation for the upcoming stable release. More information on release candidates.
This minor release provides improvements and new functionality. It does not break backward compatibility (BC) for public APIs. There may be changes in internal APIs and experimental modules. If so, contributed and custom modules and themes may need updating. This is according to Drupal core's backward compatibility and experimental module policies.
This release may include string changes and additions. Translators can review the latest translation status on localize.drupal.org.
Drupal 11.3.x will receive security support until December 2026. Drupal 11.2.x will continue to receive security support until June 2026.
Drupal 11 will be supported until the release of Drupal 13.
Important update information
Navigation is now stable
The Navigation module is now stable and safe for use on production sites. Navigation provides a collapsible, vertical sidebar for Drupal's administrative user interface. It is a significant improvement for Drupal's administrative user experience.
Navigation will replace Drupal's existing Toolbar in the Standard profile in a future release, but there are known major and critical bugs that must be resolved first, including known accessibility issues:
- #3541728: Submenu opened with hover does not close by Escape key when another menu item has focus
- #3541910: Elements in closed sidebar are focusable
- #3443571: Mobile version of Navigation should have focus trap
- #3443830: Navigation layout Drag is not working in some browers
- #3542774: The “reduce motion” setting in the operating system should be respected
Full list of known accessibility issues: #3391723: [PLAN] Accessibility review for new Navigation bar
PHP dependency changes
- Symfony components have been updated to Symfony v7.4.0.
Frontend (CSS and JavaScript) production dependency changes
-
CKEditor has been updated to CKEditor v47.3.0.
Known issues
Search the issue queue for known issues.
All changes since Drupal 11.3.0-beta1
- task: #3561087 Add equivalent updates hook to prevent downgrades from 10.6 to 11.2
- docs: #3517609 Remove broken link in MenuTreeStorageInterface
- task: #3561212 Update CKEditor 5 to 47.3.0
- task: #3561139 Deprecate update include files that contain only deprecated functions
- task: #3490846 Deprecate hook_requirements
- task: #3546105 Automatically manage _wrapper_format for HTMX requests and clean up ajax_page_state in urls
- task: #3535734 Make block.settings.inline_block:* fully validatable
- task: #3536726 Use CallableResolver for form callbacks
- docs: #3560570 Fix documenation URLs that are 404, part 2
- fix: #3479427 Single Directory Components incompatible with Windows
- task: #3530453 Remove deprecated use of Assert::isType()
- fix: #3518992 Config overrides are loaded for English even when translate_english is false
- ci: #3546517 Show node/yarn version output in core's CI
- docs: #3513561 Fix LongLineDeclaration in KernelTests
- task: #3490713 Return the correct typehint when Drupal::service() is called with a class string
- task: #3534589 Autowire services in file module
- task: #3536191 Remove RainbowArray as maintainer for Breakpoint and Responsive Image
- task: #3560397 Deprecate node.admin.inc
- fix: #3524163 [regression] Empty slot definitions give incorrect validation message
- task: #3555535 Since symfony/validator 7.4: Support for passing the choices as the first argument to Symfony\Component\Validator\Constraints\Choice is deprecated.
- Revert "task: #3555535 Since symfony/validator 7.4: Support for passing the choices as the first argument to Symfony\Component\Validator\Constraints\Choice is deprecated."
- task: #3555535 Since symfony/validator 7.4: Support for passing the choices as the first argument to Symfony\Component\Validator\Constraints\Choice is deprecated.
- docs: #3478812 Remove phpcs:ignore VariableComment.Missing
- task: #3551738 Remove create method from controllers that use autowire trait
- docs: #3517501 Fix 'DocComment.MissingShort' in KernelTest tests
- fix: #3554919 Stop discovering theme preprocess twice for theme engine discovered templates
- fix: #3033516 Revision log message field missing from layout overrides entity form
- fix: #3556315 Current approach to ensuring RunTestsInSeparateProcesses is added does not work
- task: #3498540 Deprecate unused ImageStyle::getReplacementID()
- task: #3555526 Update to Symfony 7.4.0
- task: #3502755 Deprecate migrate process plugins needed only for site upgrades
- fix: #3349434 docs for ViewsDataHelper::fetchFields() don't explain how global works
- fix: #3060985 Layout Builder attempts to builds sections to determine if it is disabled
- fix: #3520188 Do not try to load date format when custom date format is provided but not declared
- task: #3559573 Replace TrustedCallbackInterface with TrustedCallback attribute in Drupal\navigation\ShortcutLazyBuilder
- fix: #3557917 Remove stale implementations of WorkspaceNegotiatorInterface::getActiveWorkspace()
- task: #3540788 CI: replace postgresql 17 with 18 for PHP 8.5 jobs
- fix: #3554801 The exception thrown by AutowiredInstanceTrait::createInstanceAutowired() uses the wrong name for the constructor
- fix: #3424200 Media overwrites validation constraints
- fix: #3480025 Implement ::garbageCollection in the memory backend
- task: #3361659 Replace string override example '@count min' => '@count minutes',
- task: #3554551 Missing nullable type in \Drupal\views\Plugin\views\query\Sql
- fix: #3553671 BrowserTestBase::initMink crashes if not using DrupalTestBrowser
- fix: #3522087 set_attribute Twig filter doesn't work on responsive_image_formatter element
- fix: #3546894 HandlerBase::breakString doesn't handle tokens, leading to type mismatches in calling code
- fix: #3506870 Tabledrag misalignment and "Show row weights" link
- fix: #2839344 Broken aria-describedby in radios and checkboxes
- task: #3553528 Fix documenation URLs that are 404, part 1
- docs: #3559067 Fix type hints missing the leading backslash in @param, @return and @var
- task: #3557578 Mark Navigation as a stable module
- fix: #3315276 Fatal error when using a union type on a controller's callback
- fix: #3552521 Fatal error caused by install_check_class_requirements
- ci: #3547746 run-tests.sh reports x2 duration for failed tests
- docs: #3098676 EntityConstraintViolationListInterface::filterByFields documentation is opposite of actual functionality
- fix: #3549583 Use #config_target to remove user_form_system_regional_settings_submit
- test: #3549419 Add permission reset after test writes to file
- docs: #3540756 Fix Drupal.Commenting.FunctionComment.Missing in HookOrder test module
- fix: #3055983 Locks on SQLite - consistent fails on PHP 8.4 and PHP 8.5
- fix: #3539508 form-data: Usage of unsafe random function
- Back to dev.