Quantcast
Channel: Issues for Drupal core

Support CacheOptionalInterface in BlockViewBuilder, use it in language...

Problem/MotivationThe language switcher block is currently not cacheable at all by setting max-age 0. This bubbles up and prevents things like respecting max age for the internal page cache, since any...

View Article


Image may be NSFW.
Clik here to view.

Primary tabs order when editing a taxonomy term are reversed

Problem/MotivationIn Drupal 11.2.x-dev and 11.2.2, when viewing or editing a taxonomy term, the order of the "Edit” and "Delete” tabs is reversed, so the second tab now "Delete.” This appears to be a...

View Article


Simplify agreed commit format

Problem/MotivationOn #3439331: [policy] Decide on format of commit message, a format was agreed. When trying to put it into practice, many issues arose, and some of them might not be solvable.See...

View Article

Drupal Usability Meeting 2025-10-24

This meeting takes place every Friday at 14:00 UTC (currently 6:00am PT, 9:00am ET). See Time.is to see what that is in your timezone.The meetings are held using Zoom, and a link is posted in the #ux...

View Article

[PP-upstream] Support ESLint v9

Problem/MotivationESLint 9.0.0 was released in April 2024, and has a number of breaking changes. ESLint 8 was EOL'ed in October 2024 and is no longer supported. Drupal's coding standards are based on...

View Article


Add a style utility API

Problem/MotivationAfter SDC in Drupal 10.1 (July 2023), and the Icon API in Drupal 11.1 (Dec 2025), let’s continue to implement design systems API in Core, in order to be able to build business...

View Article

Replace SearchBlock service properties with service closures

Problem/MotivationWhile replacing the form builder service in NodeThemeeHooks with a service closure in #3543386: Use service closure for form builder in node module hook classes, @berdir noted that on...

View Article

Make render API documentation more discoverable

Problem/MotivationFollow-up for #2273925: Ensure #markup is XSS escaped in Renderer::doRender()It would seem sane to add documentation that #markup goes through checkAdminXss(), wherever we document...

View Article


EntityTypeBundleInfo static caching is not language aware

Problem/MotivationEntityTypeBundleInfo static caching is not language aware.Which leads to stale wrong-language content when language changes.Steps to reproduceAfter quire some debugging it boils down...

View Article


Unsupported operand types: array + null in Drupal\field_ui\...

Problem/MotivationTypeError: Unsupported operand types: array + null in Drupal\field_ui\Form\EntityViewDisplayEditForm->Drupal\field_ui\Form\{closure}() (line 166 of...

View Article

Handle migration test coverage for Contact

Problem/MotivationContact module is being deprecated. Usages is tests not in Contact needs to removed and test coverage moved to the Contact module.Steps to reproduceProposed resolutionAdd migration...

View Article

Fix @todo in TestRunnerKernel

Problem/MotivationLet's try removing this odd code... // Prime the module list and corresponding Extension objects. // @todo Remove System module. Needed because // \Drupal\Core\Datetime\DateFormatter...

View Article

Branch 11.3.x

The 11.3.x branch will be created a few days prior to the 11.3.0-alpha1 release window.

View Article


Update links in Drupal Theming Guide in READMES and info files

Problem/MotivationIn core documentation, there are still many references to the old drupal theming guide url: https://www.drupal.org/docs/8/theming. While these do resolve on a redirect, these links...

View Article

Remove create method from controllers that use autowire trait

Problem/MotivationSince #3394870: Allow controller service wiring via constructor parameter attributes it's possible to autowire services in controllers extending ControllerBase. This means we can drop...

View Article


Use a 'main' branch as the development target

Problem/MotivationFollow-up from #3294814: [Policy] Branch Naming: Use an 11.x branch for HEAD, then use 'main' when d.o can support it....

View Article

BrowserTestBase::initMink crashes if not using DrupalTestBrowser

Problem/MotivationIf using a different driver instance and not DrupalTestBrowser \Drupal\Tests\BrowserTestBase::initMink crashes as it assumes the abstract browser instance has a method for setting the...

View Article


Move field_layout test integration from layout_builder to field_layout

Problem/MotivationField Layout is being deprecated.Field layout settings are used in layout_builder.install foreach ($displays as $display) { // Create the first section from any existing Field Layout...

View Article

Make hook testing with kernel tests very simple

Problem/MotivationNow that we have an OO hook test maybe we can make hook testing with kernel tests something really simple and allow kernel tests define hooks and discover and register then in a...

View Article

NodeController::revisionOverview is uncacheable

Problem/MotivationNodeController calls $this->renderer->addCacheableDependency with an object that doesn't implement CacheableDependencyInterface, this results in an uncacheable page for...

View Article

Layout Builder attempts to builds sections to determine if it is disabled

Problem/MotivationAs long as the module is installed, \Drupal\layout_builder\Entity\LayoutBuilderEntityViewDisplay::buildMultiple() will run for every entity displayed on the site. The concept of...

View Article


make it easier to instantiate ConfigImporter

The ConfigImporter needs a ton of services injecting to its constructor.This is a pain because anything wishing to use it (such as the config UI provided by core's config module, or Drush, or the...

View Article


Deprecate CommentManagerInterface::getCountNewComments

Problem/MotivationPart of #3524379: [meta] Remove usage of history module from comment moduleThis will need to move to the history module. Theoretically it could have other usage outside of history...

View Article

Image may be NSFW.
Clik here to view.

Refine labels and descriptions for field types

Problem/MotivationThis issue is a follow-up for #3356894: Make field selection less overwhelming by introducing groups to refine the newly added field descriptions if wanted. Steps to reproduceVisit...

View Article

Modules cannot grant access using hook_file_download()

from FileDownloadController:If one or more modules returned headers the download will start with the returned headers. If a module returns -1 an AccessDeniedHttpException will be thrown.This does not...

View Article


Non-english installed site. Unable to add "English" as a language...

Problem/MotivationUnable to enable "English" as a language if a site is installed in an other language.Steps to reproducedrush site:install --db-url= --site-name= --site-mail= --account-name=...

View Article

Fix 'DocComment.MissingShort' in KernelTest tests

Problem/MotivationThe sniff 'Drupal.Commenting.DocComment.MissingShort' is not enabled.Steps to reproduceProposed resolutionFix violations in KernelTest tests.Remaining tasksReview.User interface...

View Article

Add oop support to hooks currently supported by themes

Problem/MotivationModule hooks have successfully been converted to OOP. It would be great to convert Theme hooks to OOP.This requires several changes and architectural changes.Add theme namespaces to...

View Article

[meta] Refactor and improve theme and module installer's

Problem/MotivationInstall and uninstall is fu ll if weird edge cases and need careful handling of services around container rebuilds. It would be great to refactor and garden this process. Steps to...

View Article



Deprecate theme_get_setting()

Problem/MotivationReason #2999721: [META] Deprecate the legacy include files before Drupal 9.This issue is also another step in removing drupal_staticProposed resolutionDeprecate theme_get_setting()...

View Article

Support the AutowireServiceClosure attribute in AutowireTrait to inject...

Problem/MotivationThe idea of using injecting service closures into plugins was introduced in #3544405: Replace SearchBlock service properties with service closures. This allows two services used by...

View Article

Add support for autowiring to controller methods

Problem/MotivationSymfony supports auto-wiring of controller methods. For example:class SomeController { public function someMethod(ConfigFactoryInterface $configFactory) { // Here $configFactory is...

View Article

Image may be NSFW.
Clik here to view.

Missing accessible legend for required field indicator in node forms

Problem/MotivationWhen a field is marked as “Required”, Drupal displays a red bullet (•) or asterisk next to the field label, but no accompanying text explains its meaning (“* indicates required...

View Article


Add support for selecting the dropbutton_type with the Views dropbutton field

Problem/MotivationViews provides a nice Dropbutton field to display links using a dropbutton element. The dropbutton element has support for the #dropbutton_type property, however this property is not...

View Article

Image may be NSFW.
Clik here to view.

Unable to add query param using hook_oembed_resource_url_alter

Problem/MotivationI am using hook_oembed_resource_url_alter(array &$parsed_url, \Drupal\media\OEmbed\Provider $provider) {} hook in my custom module to add query parameter like below function...

View Article

Introduce a ConnectionParameters value object to store database connection...

Problem/MotivationDatabase connection configuration is stored in arrays that are more or less taken as is from info in the $databases array in settings.php.This makes the entire management of these...

View Article


Allow to select reference method in link field type for internal links

Problem/MotivationAs link widget for internal links allows to have entity reference autocomplete, it would be nice to have opportunity to select the reference method the same way as it is possible for...

View Article


Image may be NSFW.
Clik here to view.

Media items translate items in modal

Problem/MotivationIn https://www.drupal.org/project/drupal/issues/2985168 they are adding an edit button for media items on the node edit page. This improves usability a lot. This issue improves on...

View Article

Convert "Top 'access denied' errors.", "Top...

Problem/MotivationThe listings: Top 'access denied' errors.Top 'page not found' errors.Top search phrases.Provided by dblog are using some database specific logic to return information. I'm not even...

View Article

Image may be NSFW.
Clik here to view.

Rename the table headers on the watchdog 403/404 controllers

Updated: Comment 0Problem/MotivationThis 403/404 page should better describe that the message is actually the page on which the access denied/not found happened.Proposed resolutionRemaining tasksUser...

View Article

Include most recent date in page not found and access denied reports

Problem/MotivationThe reports at /admin/reports/page-not-found and /admin/reports/access-denied would be more useful if they included the date and time of the most recent instance of each item.Steps to...

View Article


[PP-1] Expose target type, selection handler and selection settings in...

Problem/Motivation#2418017: Implement autocomplete UI for the link widget implemented the 'entity_autocomplete' form element in LinkWidget but hardcoded the target type to 'node'.Proposed resolutionWe...

View Article

[PP-1] Allow translation of individual Link subfields

Problem/MotivationIn images, we can configure that only title and alt texts are translated, and not the original file. I think it will make sense in some cases to do the same for links, where you may...

View Article


Access forbidden when editing/deleting a block from the block layout with a...

Problem/MotivationEditor that have access to the block layout, manually change the create block machine name and add a "." dot at the beginning. This then create a block that cannot be edit or delete...

View Article

Remove unused class property...

Problem/MotivationThere are no usages of \Drupal\views\Plugin\views\argument\Date::$option_name.Steps to reproduceProposed resolutionRemaining tasksUser interface changesIntroduced terminologyAPI...

View Article


Handle serialization and unserialization of service closures

Problem/MotivationAs using closures becomes more prevalent in order to inject services lazily, whether in service definition argument definitions or manually created closures in plugin classes (such as...

View Article

Refactor \Drupal\link\AttributeXss from SA-CORE-2025-004

Problem/Motivationhttps://www.drupal.org/sa-core-2025-004 added some XSS filtering code to the link module which ideally would live in core itself.The aim is not to introduce new APIs or make BC...

View Article

Return only main content for endpoints designed to service htmx requests

Problem/MotivationWhen we intentionally build responses to service HTMX requests it is the main content that we want to send. We don't want or need all the surrounding blocks that Drupal generates. In...

View Article

Recommend PHP 8.4 for Drupal 11.3 and 10.6

Problem/MotivationDrupal 11.2 recommends PHP 8.3, but PHP 8.4 has been available for nearly a year. Core currently only has two known bugs being tracked for PHP 8.4 compatibility, one of which is...

View Article


[meta] Release preparation steps for 11.3.0 and 10.6.0

Release preparation worksheet11.3.0 and 10.6.0 release prep spreadsheet(Preparation issue: #3532966: Create 11.3.0 and 10.6.0 release prep spreadsheet)Committer Google Drive folder (restricted...

View Article



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>