| #3325551 |
Add "Disable image resize" setting to image fields |
Feature |
image system |
28 |
23 |
398 |
| #3400254 |
[policy, no patch] Add a "developer tooling" topic to Drupal core |
Feature |
other |
21 |
2 |
381 |
| #2842780 |
Add a token for the site logo |
Feature |
token system |
59 |
15 |
257 |
| #3202631 |
Add Textarea option to normalize newlines to \n |
Bug |
render system |
32 |
9 |
240 |
| #3324952 |
add a method to NestedArray that does array_walk_recursive but passes the parents to the callback |
Feature |
base system |
9 |
4 |
230 |
| #3513035 |
New NoEntitiesExistYetWithHigherCardinality constraint |
Feature |
field system |
11 |
5 |
185 |
| #3357742 |
Guidelines for semantic versioning for contributed projects in relation to Drupal core compatibility |
Plan |
documentation |
33 |
2 |
169 |
| #3532930 |
Make Drupal\Core\Database\Database type strict and PHPStan L10 compliant |
Task |
data base system |
8 |
3 |
163 |
| #2954834 |
Add poster image to HTML5 media videos |
Feature |
media system |
61 |
6 |
153 |
| #3228209 |
Move hasRole() method from UserInterface to AccountInterface |
Task |
user system |
26 |
4 |
149 |
| #3463868 |
Two #config_targets error when used on a text_format form element |
Bug |
configuration system |
16 |
4 |
141 |
| #2783897 |
Current theme condition plugin should provide an option to match all themes and introduce checkboxes |
Feature |
system.module |
21 |
7 |
141 |
| #3359511 |
[regression] missing menu active trail since Drupal 9.5.9 |
Bug |
base system |
80 |
8 |
137 |
| #3522561 |
Prepare full typing of StatementInterface methods' parameters |
Task |
data base system |
6 |
4 |
136 |
| #3488260 |
Stop logging an error when component not found |
Bug |
single-directory components |
8 |
3 |
134 |
| #2050477 |
[META] Identify component maintainers for components with no maintainer listed in MAINTAINERS.txt |
Task |
documentation |
31 |
1 |
125 |
| #3502993 |
Convert Navigation messages component to SDC |
Task |
navigation.module |
10 |
3 |
123 |
| #3020938 |
Add view unpublished block content permission |
Feature |
block_content.module |
10 |
3 |
122 |
| #3047022 |
Layout builder fails to assign inline block access dependencies for the overrides section storage on entities with pending revisions |
Bug |
layout_builder.module |
83 |
4 |
120 |
| #3538681 |
Add support for selecting the dropbutton_type with the Views dropbutton field |
Feature |
views.module |
9 |
4 |
118 |
| #2486267 |
Attributes of a block content are applied to block itself |
Bug |
block.module |
21 |
2 |
105 |
| #3550083 |
robots.txt should disallow all '/search/' and '/search?' pages by default |
Bug |
other |
11 |
4 |
101 |
| #3532950 |
Support importing default content in JSON format |
Feature |
default content system |
6 |
3 |
86 |
| #3558934 |
Fix styling of link autocomplete with long titles |
Bug |
ckeditor5.module |
8 |
3 |
84 |
| #2973515 |
MenuActiveTrail should ignore disabled menu links |
Bug |
menu system |
19 |
5 |
82 |
| #3202329 |
Outbound path processors miss the route name and parameters |
Feature |
routing system |
22 |
3 |
78 |
| #3549107 |
Escape or strip control characters in JSON:API |
Bug |
jsonapi.module |
11 |
2 |
74 |
| #3562361 |
Add return types to core/tests code via Rector - round 2 |
Task |
phpunit |
7 |
4 |
72 |
| #3549730 |
Enable LongLineDeclaration |
Task |
other |
7 |
4 |
69 |
| #3057267 |
Stop automatically logging out users during maintenance mode |
Feature |
user system |
13 |
5 |
68 |
| #3559874 |
The UUID data type should validate that its value is an actual UUID |
Bug |
typed data system |
10 |
2 |
68 |
| #2954725 |
AccountInterface::getLastAccessedTime() implementors return incorrect data type |
Bug |
user system |
12 |
2 |
61 |
| #3453210 |
getCreatedTime returns string instead of integer |
Bug |
comment.module |
18 |
1 |
61 |
| #2985400 |
Url::createFromRequest ignores query parameters |
Bug |
base system |
17 |
5 |
60 |
| #2906490 |
Link to useful information about .htaccess and directory protection |
Bug |
file system |
20 |
2 |
57 |
| #3544395 |
Current user missing from language negotiator outside of request context |
Bug |
language system |
11 |
2 |
57 |
| #3476883 |
[Policy] Move Search module to contrib |
Plan |
search.module |
21 |
1 |
54 |
| #2229617 |
Change form element access bypass default to FALSE on programmatic submissions. |
Task |
forms system |
8 |
2 |
52 |
| #3564589 |
Log path in js_testing_log.js |
Feature |
phpunit |
4 |
2 |
49 |
| #3561564 |
Support the same block being used for page title & main content |
Feature |
block.module |
7 |
2 |
49 |
| #3015812 |
Introduce new Theme extension object and properly deprecate REGIONS_VISIBLE and REGIONS_ALL |
Task |
extension system |
39 |
3 |
47 |
| #3066751 |
Add resolvable_uri property to LinkItem for APIs |
Feature |
link.module |
48 |
3 |
45 |
| #3566782 |
Deprecate block_theme_initialize() and move the logic to a service |
Task |
block.module |
5 |
2 |
45 |
| #3538177 |
Remove jQuery UI _focusedElement and _focusTabbable from dialog Ajax |
Feature |
ajax system |
6 |
3 |
44 |
| #3114887 |
Error responses are stored when using the Download migration process |
Bug |
migration system |
9 |
3 |
42 |
| #3414108 |
Fix Call to an undefined method $this(Drupal\views\Plugin\views\HandlerBase)::getFormula() |
Task |
views.module |
11 |
3 |
40 |
| #3568124 |
Deprecate remaining functions in media.module |
Task |
media system |
3 |
1 |
40 |
| #2335523 |
Remove node.module.css from node/drupal.node library and deprecate node/form library |
Task |
node system |
20 |
5 |
39 |
| #3534144 |
[12.x] [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026 |
Plan |
other |
10 |
2 |
39 |
| #3568092 |
Convert editor.module procedural submit, validate and Ajax callbacks to methods |
Task |
editor.module |
5 |
2 |
39 |
| #3560357 |
Taxonomy term ID from URL ViewsArgumentDefault plugin does not apply node cache tags when "Load filter from node page" is selected |
Bug |
taxonomy.module |
4 |
2 |
39 |
| #3521184 |
Email validation allows deprecated email addresses |
Bug |
mail system |
11 |
3 |
35 |
| #3390344 |
Create new List component for Umami |
Feature |
Umami demo |
8 |
2 |
34 |
| #3568444 |
Simplify PostCSS config |
Task |
CSS |
5 |
1 |
32 |
| #3285176 |
Warning message links to "available updates" even if user does not have permission for that page |
Bug |
update.module |
14 |
2 |
31 |
| #2536594 |
Add a FilterFormatRepository providing methods to load filter formats |
Task |
filter.module |
12 |
1 |
31 |
| #3560659 |
HTMX Drupal behaviors are not applied when swapped element is body |
Bug |
ajax system |
7 |
1 |
31 |
| #3530186 |
Switch to argon2 as the default password hashing algorithm |
Feature |
base system |
22 |
6 |
30 |
| #3558292 |
Support passing container parameters with the Autowire attribute in AutowireTrait and AutowiredInstanceTrait |
Task |
base system |
8 |
2 |
29 |
| #2868079 |
Add a default Content-Security-Policy-header for svg files |
Task |
image.module |
45 |
3 |
28 |
| #3319212 |
Entities without labels cause TypeError in EntityController title callbacks |
Bug |
entity system |
14 |
1 |
28 |
| #3414184 |
Test that the PHP versions in .gitlab-ci.yml match PHP EOL versions |
Task |
base system |
6 |
1 |
27 |
| #3436295 |
ParamConverterManager lazy services are broken and should use a service locator |
Bug |
routing system |
6 |
3 |
27 |
| #3570849 |
Deprecate SessionManager::delete() |
Task |
base system |
4 |
1 |
27 |
| #3561385 |
Fix "expects FieldableEntityInterface" issues detected by phpstan |
Task |
other |
5 |
2 |
26 |
| #3568387 |
Move text_summary to TextSummary service and deprecate |
Task |
text.module |
6 |
2 |
26 |
| #3570839 |
Deprecate remaining underscore functions in media_library.module |
Task |
media system |
4 |
3 |
26 |
| #3570351 |
content_translation_form_language_content_settings_submit()` creates BaseFieldOverride configs for untranslatable bundles |
Bug |
config_translation.module |
6 |
1 |
26 |
| #3040302 |
"Edit summary" button for the text with summary widget has unthemable markup |
Feature |
text.module |
15 |
1 |
26 |
| #3571094 |
Remove RegisterStreamWrappersPass |
Task |
base system |
3 |
1 |
26 |
| #3547353 |
Move HIDDEN, CLOSED and OPEN constants in CommentItemInterface to new CommentingStatus enum |
Task |
comment.module |
6 |
4 |
25 |
| #3570235 |
Deprecate functions in syslog.module |
Task |
syslog.module |
5 |
3 |
25 |
| #3560127 |
Exception in Umami building breadcrumbs for error pages |
Bug |
Umami demo |
5 |
1 |
25 |
| #3541380 |
Node edit form always uses published revision when using content_moderation and workspaces |
Bug |
workspaces.module |
8 |
1 |
25 |
| #3552669 |
Error when fetching all query results as class instances |
Bug |
data base system |
8 |
2 |
24 |
| #3046985 |
The word "Second" needs translation context |
Bug |
user interface text |
21 |
1 |
24 |
| #3564197 |
Package Manager should not restrict which packages can do scaffolding |
Bug |
package_manager.module |
4 |
1 |
24 |
| #3560844 |
Update starterkit and GenerateThemeTests to handle OOP hooks |
Task |
Starterkit theme |
3 |
1 |
24 |
| #3117430 |
file-link template should not always display file_size |
Bug |
Claro theme |
11 |
1 |
23 |
| #3567157 |
Convert expectation-less test mocks to stubs - Serialization module |
Task |
serialization.module |
3 |
1 |
23 |
| #3560260 |
OEmbedIframeController makes responses uncacheable by mistake |
Bug |
other |
7 |
1 |
22 |
| #3569418 |
Convert expectation-less test mocks to stubs - Block module |
Task |
block.module |
3 |
2 |
21 |
| #3397041 |
Autowire core modules that do not require explicit configuration |
Task |
base system |
7 |
4 |
20 |
| #3568144 |
Convert editor_filter_xss() to a element.editor service method |
Task |
editor.module |
5 |
2 |
20 |
| #3564713 |
Search module fails to handle HTML tags with whitespace between tag name and attributes |
Bug |
search.module |
4 |
1 |
20 |
| #3039248 |
Deprecate views_ui_contextual_links_suppress(), views_ui_contextual_links_suppress_push(), views_ui_contextual_links_suppress_pop() |
Task |
views_ui.module |
11 |
1 |
20 |
| #3566890 |
Deprecate and remove procedural code from content_translation.module |
Task |
content_translation.module |
7 |
2 |
19 |
| #3567128 |
Convert expectation-less test mocks to stubs - Comment module |
Task |
comment.module |
3 |
2 |
19 |
| #3572348 |
Static cache EntityDataDefinition::getDataType() |
Task |
entity system |
4 |
2 |
18 |
| #3572055 |
Fix skip for unsupported methods on REST tests |
Bug |
rest.module |
3 |
1 |
18 |
| #3572243 |
Deprecate several views functions |
Task |
views.module |
7 |
3 |
17 |
| #3572047 |
"Last" pager links inside a modal do not open in the modal |
Bug |
ajax system |
3 |
1 |
17 |
| #3572785 |
\Drupal\system\Controller\ThemeController::willInstallExperimentalTheme() prevents code from reaching the theme was not found errors |
Bug |
system.module |
3 |
1 |
17 |
| #3572967 |
Renderer::executeInRenderContext() should also pass immediate as resume type |
Bug |
render system |
4 |
2 |
16 |
| #3525391 |
Conditions plugin validation schema is wrong |
Bug |
configuration system |
8 |
1 |
16 |
| #3573167 |
Widen StubConnection::open() return type and value |
Bug |
data base system |
3 |
1 |
16 |
| #3566476 |
Convert expectation-less test mocks to stubs - Link module |
Task |
link.module |
3 |
3 |
15 |
| #3311365 |
Use PHP attributes for route discovery |
Task |
routing system |
47 |
2 |
15 |
| #3572051 |
hook_icon_pack_alter() is undocumented |
Bug |
documentation |
5 |
2 |
15 |
| #3573259 |
Prevent new expects($this->any()) in tests |
Task |
phpunit |
6 |
3 |
15 |
| #3572098 |
JSON:API normalisation caching can be more expensive than normalisation |
Task |
jsonapi.module |
4 |
1 |
15 |
| #3570172 |
Add cache header tests for custom file schemes |
Task |
file.module |
6 |
1 |
14 |
| #3571143 |
Convert BlockHooks::pageTop to attachment in BlockController::demo |
Task |
block.module |
4 |
1 |
14 |
| #3570908 |
Fix signatures of ExecutableInterface and CategorizingPluginManagerInterface |
Bug |
base system |
4 |
1 |
14 |
| #3093378 |
Use ARIA disclosure pattern for submenu buttons in vertical toolbar orientation |
Task |
toolbar.module |
15 |
1 |
11 |
| #3135042 |
Add link cache metadata for referenced entities |
Task |
link.module |
7 |
1 |
11 |
| #2633232 |
Missing fallback plugin configuration schemas |
Bug |
configuration system |
11 |
2 |
10 |
| #3571400 |
Deprecate functions in menu_ui.module and move to hooks or helper class |
Task |
menu_ui.module |
6 |
2 |
10 |
| #3567132 |
Convert expectation-less test mocks to stubs - Node module |
Task |
node system |
3 |
2 |
10 |
| #3526541 |
Cannot set default values on multi-valued formatted Text fields |
Bug |
text.module |
12 |
1 |
10 |
| #3439643 |
Improve how and what navigation block titles are communicating to screenreader users |
Task |
navigation.module |
18 |
1 |
10 |
| #3556580 |
Remove remaining references to @group annotations from tests |
Task |
phpunit |
3 |
1 |
10 |
| #3573242 |
Add custom row and column classes to the Responsive Grid views format |
Feature |
views.module |
5 |
1 |
10 |
| #3551528 |
Mobile expanded sidebar modal overlay has invalid ARIA attribute: aria-expanded |
Bug |
navigation.module |
9 |
1 |
10 |
| #3570505 |
Navigation's top level menu items for workspaces and help have the same ID when caching enabled |
Bug |
navigation.module |
7 |
1 |
10 |
| #3568495 |
Remove IE support from AjaxResponseSubscriber |
Task |
ajax system |
6 |
1 |
9 |
| #3536964 |
run-tests.sh - segregate command line parsing and use Symfony Console classes |
Feature |
phpunit |
6 |
1 |
9 |
| #3572039 |
Add dropdown list relies on buttons being input elements |
Bug |
views_ui.module |
4 |
1 |
9 |
| #3096170 |
Add Confirmation Page for theme uninstall |
Feature |
extension system |
10 |
1 |
9 |
| #3305356 |
[policy, no patch] Automatic Updates & Project Browser, should NOT handle dependency management for projects not known to Composer |
Plan |
composer |
10 |
1 |
9 |
| #3574721 |
FormBuilder service order causes failure |
Task |
forms system |
3 |
1 |
8 |
| #3567618 |
Create service for image_path_flush, image_style_options and constant for IMAGE_DERIVATIVE_TOKEN |
Task |
image system |
5 |
1 |
6 |
| #3398534 |
Allow form service wiring via constructor parameter attributes |
Task |
forms system |
8 |
2 |
5 |
| #2986699 |
Add missing getter method to retrieve range (limit/offset) from Select query objects |
Bug |
data base system |
8 |
1 |
5 |
| #3571079 |
Remove shortcuts from recipes |
Task |
shortcut.module |
4 |
1 |
5 |
| #3575080 |
[CI] Enhance PHPStan ErrorFormatter |
Task |
other |
5 |
1 |
5 |
| #3567121 |
Convert expectation-less test mocks to stubs - batch 1 |
Task |
phpunit |
3 |
1 |
5 |
| #3569152 |
Move some test coverage to shortcut module |
Task |
shortcut.module |
5 |
1 |
5 |
| #3575231 |
Add return types to AssertPageCacheContextsAndTagsTrait |
Task |
system.module |
4 |
1 |
5 |
| #3575228 |
Add return types to CommentTestTrait |
Task |
comment.module |
4 |
1 |
5 |
| #3575234 |
Add return types to FieldUiTestTrait |
Task |
field_ui.module |
3 |
1 |
5 |
| #3552827 |
Replace all expectDeprecation() calls with expectUserDeprecationMessage() |
Task |
phpunit |
3 |
1 |
5 |
| #3309169 |
hook_entity_create() should clearly state the entity is unsaved and mention the hook can be invoked for dummy entities |
Bug |
documentation |
5 |
1 |
5 |
| #3520468 |
[12.x] [meta] Tasks to remove History module |
Task |
history.module |
4 |
2 |
4 |
| #3574859 |
Remove deprecated code from lib/menu, lib/routing, lib/session, lib/StackMiddleWare, and lib/Validation |
Task |
base system |
4 |
3 |
4 |
| #3567483 |
Update manager crashing admin panel with uncaught exceptions parsing version strings |
Bug |
update.module |
26 |
3 |
4 |
| #3573870 |
Remove deprecated code from user and basic_auth module |
Task |
user.module |
4 |
2 |
4 |
| #3575324 |
Add return type documentation to ResourceTestBase |
Task |
rest.module |
4 |
1 |
4 |
| #3538002 |
run-tests.sh - separate test allocation to bins into a WorkAllocator class |
Task |
phpunit |
5 |
1 |
4 |
| #3575572 |
Add [#NoDiscard] to Utility classes |
Task |
base system |
3 |
1 |
3 |
| #3566514 |
Theme override/extend deprecation message uses the wrong extension name |
Bug |
asset library system |
3 |
1 |
3 |
| #3575583 |
Convert Olivero to OOP |
Task |
Olivero theme |
4 |
1 |
3 |
| #3560876 |
NavigationUserBlock::buildLinks() doesn't check if the user could be loaded |
Bug |
navigation.module |
3 |
1 |
3 |
| #3569092 |
Update method signatures for addConstraint() and ConstraintManager::create() and remove HasNamedArguments use |
Task |
typed data system |
5 |
1 |
3 |
| #3573953 |
LogicException in Renderer::render() still mentions renderPlain() |
Task |
render system |
5 |
1 |
3 |
| #3575542 |
Remove deprecations related to the theme preprocess discovery and theme.inc |
Task |
theme system |
4 |
2 |
3 |
| #3252278 |
Complete JSON:API's handling of field (including computed & empty fields) cache metadata |
Task |
jsonapi.module |
25 |
1 |
2 |
| #3294241 |
Remove drupal/legacy-project as a starting point for Drupal 12 |
Task |
composer |
20 |
2 |
1 |
| #3575792 |
Bump PHPStan & friends to latest release |
Task |
base system |
3 |
1 |
1 |
| #3575585 |
Convert remaining themes to OOP |
Task |
theme system |
4 |
1 |
1 |
| #3572171 |
Persist is_syncing across container rebuilds |
Bug |
theme system |
8 |
1 |
1 |
| #3571069 |
Remove hook_module_implements_alter and support in HookCollectorPass |
Task |
extension system |
5 |
1 |
1 |
| #3469143 |
MainContentViewSubscriber should use a service locator |
Task |
render system |
4 |
1 |
1 |
| #2613044 |
Requests are pushed onto the request stack twice, popped once |
Bug |
request processing system |
69 |
1 |
0 |