Problem/Motivation
- Drupal core has 80 modules.
- 10(more ?) modules were added to core in the Drupal 8 cycle.
- 1(? more) module, place_block, was removed from core in the Drupal 8 cycle
MAINTAINERS.txtcurrently has 39 "?" denoting a subsystem or module that has no maintainer.- There are 4 modules, aggregator, tracker, book, forum that were only used by 5% or fewer Drupal sites
We have a lack of maintainers and we have a few modules that are used by very few sites.
Even though these modules don't change much they do require some maintenance and they must be kept up with core deprecations. For instance we had to move all the tests from SimpleTest to PHPUnit. When we update versions of phpunit will have to update all of the tests in these modules.
There are many contrib modules that have 20x the usage of these core modules.
Proposed resolution
We should create a policy to deprecate and remove any module that is used in less than 5% of Drupal sites with each new version of Drupal. This would be the default action if no issue is made to not remove a module. This would move the burden from those that would like to advocate for a module to be deprecated to those that would like to advocate for a module to not be deprecated.
We will have to determine which modules should be exempt from the policy but possible criteria would be:
- Only remove modules that were not introduced in the previous major version of Drupal. Therefore for the Drupal 9 recycle we would not by default remove any module that was introduced in the Drupal 9 release cycle. This would give modules more time to gain traction
- Do not remove modules that are not recommended for production use or modules that are only needed temporally. These modules would not have usage reflect in the numbers. For instance, migrate_drupal_ui would only need to be installed for brief period of time.
- Do not remove experimental modules with this policy. These modules may be removed by the Experimental Modules policy
This policy would not prevent removing other modules from core that do not fall below the 5% usage level. Any module could still be removed from core. The only difference would be that for modules under the threshold it would be the default and an issue would have to be approved to keep them in. For modules above the threshold an issue would have to be approved to remove them(which is the current case).
Remaining tasks
- Create a process for getting core sub module stats
- Determine when the stats should be run to determine which modules should be removed. When a new major version is released?
- Determine what % usage we should use to determine if a module is removed. 5% was just a starting point for discussion.
- Determine what the process should be for creating an issue to keep a module even if it has lower usage. For example should you be able to advocate for module to stay in core even though it has less than 5% usage if it has no maintainer?
.
| Comment | File | Size | Author |
|---|---|---|---|
| #47 | drupal-component-usage-by-release-2025-09-17.txt.gz | 179.67 KB | drumm |
| #43 | drupal-component-usage-by-release-2024-08-26.txt.gz | 87.84 KB | drumm |
| #22 | parse.php_.txt | 1.17 KB | effulgentsia |
| #20 | parse.php_.txt | 691 bytes | effulgentsia |
| #19 | drupalsubmodulesbyrelease.gz | 328.78 KB | gábor hojtsy |
Comments
Comment #2
tedbowHere is file with core module usage
@mixologic got this for me(thanks!) but it is just quick estimate. Just a starting point for discussion. We would need a more formal process to get usage before we started marking modules as deprecate with the suggested policy.
Comment #3
alexpottI would suggest that this list is greatly skewed by what is installed in standard. And what reports back - update 100% :D
Comment #4
larowlan80% of sites using RDF :P
Comment #5
tedbowre #3 yeah we can't really do anything about the
standard.profileproblem 😞. We could do something about the update.module problem by splitting out functionality that would report back to drupal.org but I am not sure that is something we want to do.So yes the numbers will always be skewed. I personally think it is still worth removing the modules that are used by very few sites. I think the important change with a policy in place would be that it would be the burden of the people supporting these modules to stay in core to make that case. They also just could stay in core without a maintainer.
Comment #6
tedbowAdding an issue from 2017 that the core module usage stats from then
Comment #7
alexpott@tedbow yeah I'm more concerned that this work will used to support maintain rdf in core - and prevent things like #2152459: [Policy] Deprecate RDF module and move it to contrib
This issue is also very related to #1273344: Establish heuristics for core feature evaluation
Comment #8
tedbow@alexpott look like I have some reading to do 😉. thanks for the link.
As far as preventing modules from being deprecated that don't fall below this threshold I would hope we could draft a policy where that would not be the case.
I added this to the summary
Comment #9
chi commentedThat points to another problem. The list of enabled by default modules in Standard profile is not sensible.
Comment #10
chi commentedThat's another curious thing here. I guess the usage of Color module should less than 1%. I think the statistics would be accurate if we only account modules on sites using minimal profile. Not sure if core update module supports this. We could probably ask some Drupal hosting providers (Acquia Cloud, Pantheon, etc) to collect such data for us.
Comment #11
catchcolor module has it's own dedicated issue at #2808151: [policy] Move the Color module to a contributed project when Bartik is deprecated.
Comment #12
yoroy commented@catch just updated #1136482: [policy] Deprecate aggregator.module in D9 core and remove it in D10 pointing out that an Aggregator dependency is now holding core back in fully supporting PHP8.
Comment #13
ressaAdding #2152459: [Policy] Deprecate RDF module and move it to contrib as related issue.
Comment #14
kristen polFrom #3:
+100
Personally, there are several that I usually turn off or forget to turn off but don't use (when I'm thinking about it, I start with the minimal profile though)... color, comment (used very occasionally), contact (replaced by webform), shortcut, rdf, tour.
Is there any discussion/issue about reducing the number of modules in the standard profile? I searched the issue queue but didn't find anything. Seems like something that would be good to revisit every major release.
Comment #15
catchI don't think there's an issue with an overview of modules to add/remove from standard (as opposed to removing from core of which there are many), so opened one here: #3196014: Revisit the modules enabled by the Standard profile
Comment #16
pasqualleThere is lot of room for improvement, I've summarized it in #3199472: Improved data sharing with d.o
Comment #17
g089h515r806 commentedIt is good to see this could happen in Drupal 10. I suggest a similar idea 3 years ago.
https://www.drupal.org/project/ideas/issues/2961289
For Drupal 8, we have made +++++++++++ for it. Big Pipe is great, add it; Rest is great, Add it; migrate is great, add it; Composer is great,add it... For Drupal 9, I suggest, we need do more ---------- work for it. Instead of add more modules to it, I suggest consider remove some modules from core.For examples:
aggregator
book
color
contact
forum
rest
tracker
big_pipe
field layout
migrate
migrate_drupal
migrate_drupal_ui
breakpoint
responsive_image
rdf
basic_auth
These are modules that I think it less important.
big_pipe is great, but I never use it.
migrate is a dedicated module, it is better move it to contributed.
Comment #19
gábor hojtsySaving current data from @mixologic for posterity, received yesterday.
Comment #20
effulgentsia commentedHere's a script that parses #19 and generates the following output:
Comment #21
chi commentedOnce again, statistics for modules installed by default is useless. See my comment #10.
Comment #22
effulgentsia commentedHere's a script that breaks it out by Drupal 8 and Drupal 9, and the results (first number is 8, second number is 9, sorted by total):
Comment #23
ressaCool script! Here is the data in table format, for easier readability:
Comment #24
catchThe 8 vs. 9 stats are very interesting. It's good to see layout builder go from 10% to 20% and media_library go from 20% to 36%. Shows new modules added later in 8.x picking up speed.
For some of the downward trajectories, I wonder how much of it is reflecting this:
The sites currently running Drupal 8 are the ones that are already four months out of support, so more likely to be smaller sites - installed with standard instead of a custom profile or distro (or minimal + install from config), either using bartik, or enabled another theme without uninstalling bartik etc.
So to some extent this may reflect a diverging install base of more frequently vs. less maintained sites as opposed to what the new sites are installing with. If all of the 8.x sites updated to Drupal 9 tomorrow it'd even out some of those stats. But then we still have the issue that we can't tell whether people running standard are using the modules it enabled for them or just haven't uninstalled them.
Comment #25
MixologicOne caveat to that data that I always like to repeat: Usage stat data is *not* ground truth, it gives us a good idea of the relative usage, but many sites do not enable updates, so we do not get their data. And many sites that *do* enable updates are default sites that are not necessarily seeing usage.
The stats also get some pollution/weighting by multisite features. One multisite with tons of subsites replicates their requests for each subsite, inflating their numbers.
But its all we have, so if we can imagine any reason that a particular module might be used by sites that dont report, more than others, we might want to consider that.
Comment #26
aaronmchaleOne way we can look at this is how core has changed over time, and how we want it to continue to evolve.
If you compare core of Drupal 6/7 to core of Drupal 8/9, one of the key differences when it comes to modules is that many more of the core modules we have now provide "building block" functionality: Views, JSON:API, Layout Builder, Media, Workflows, etc. Compared to some of the modules that are still there from the days of Drupal 6/7: Book, Color, Tracker, Book, Ban, etc.
There's a trend here, that being those modules which core has introduced in recent years are much more like "building block" modules, where they give you many ways to solve a problem. Whereas some of those modules of earlier years are much more prescriptive in nature, they solve a very specific use-case in a very specific way.
What we can draw from that is that we are moving in that direction where the modules shipped with core are mostly designed to address a particular problem space, but do it in a way that enables many possible different solutions, and those modules complement the existing set of modules. You can use combinations like Field, Views and JSON:API to do some really interesting things. In other words, you can use those modules like building blocks, to build a solution.
Maybe that is what we should be using as a metric, if a module which is designed to solve a particular problem doesn't do it in a way that compliments other modules and doesn't promote that idea of building blocks, then maybe it doesn't belong in core, or maybe it needs to be rewritten (Search is one example that comes to mind which could probably do with being rearchitected). Sure that's more open to interpretation, but in any research you need not just quantitative data, but also qualitative data. To me, what I've outlined here is probably a pretty good metric when it comes to that qualitative side of the coin, which we can use to compliment the quantitative data that we already collect.
Comment #27
gábor hojtsy@AaronMcHale: I think we used a variant of that as a deciding factor for the modules we are removing from Drupal 10. We called it "does it have a contrib ecosystem", which does not only indicate whether the module is a building block, but whether people actually used it to build something. Since we are talking about modules that have been in Drupal core for a while, I think this way to look at it works well and is even better than your "is this a building block".
Comment #28
aaronmchale@Gábor Yes that's a good way to look at it. The "does it have a contrib ecosystem" question could cover "is this a building block", because a module being a building block means it's easier for a contrib ecosystem to evolve. However, it's still possible for a contrib ecosystem to evolve around a module that's not designed to be a building block, it's just likely that such an ecosystem is smaller and more niche, in which case the module probably doesn't need to be in core.
Thinking about it from a slightly different angle though, when we're evaluating a core module it's probably still worth considering the question of whether it's a building block, because we might answer that question as "yes, but it could be better", which can then lead us down a different path of "okay well we're keeping it in core but we now recognise that some resource is needed to improving or rearchitecting it".
We might also find ourselves saying "this module does not currently have a contrib ecosystem but it's strategically important enough to improve the module so that one could evolve around it", I don't have any examples of that off the top of my head, but it's a scenario that we could run into at some point.
So if you think of it like a flow chart, I think we can use both the "building block" and "ecosystem" questions to determine the best course of action.
Comment #29
matthieuscarset commentedI want to +1 this idea.
We all agree several modules and themes do not need to be in core. They could and certainly should live as contrib. However it might be dangerous to deprecate projects automatically with strict predefined rules.
I think what we need in the first place are tools to:
IMHO future of core must be defined by needs form the real world users, not only by us, developers.
Comment #30
lauriiiI wonder if there are some additional caveats to the data that we are not aware of yet. I don't know if I'm alone with this but it seems strange that only 93.4% have Field enabled, and that only 91.0% have Block enabled. But then Menu UI is enabled by 88.0% of the sites 🤔.
Even more glaring to me is that Claro + Seven have total of 17.4% usage which seems really low. The two of the most popular contrib admin themes have total of around 74500 usages reported which is around 17%. They both depend on either Seven or Claro. Do we think it's possible that there are only 0.4% of sites using Seven or Claro as their admin theme?
Comment #31
catch@lauriii at one point tests with update status enabled were reporting back to Drupal.org, if this is still the case then that'd be a lot of sites every month with 'stark' enabled.
Comment #32
wim leersIf that's true, then shouldn't we be ignoring all update status checks to d.o for sites with
starkenabled? 😇 I think only an incredibly small number of Drupal sites will eve have gone into production onstark🤓Comment #33
lauriiiLooks like Stark usage is between 0.5% and 1.5%. Based on that, I'm not sure that #31 helps explain #30.
Comment #34
catch@lauriii that's a good point and also reassuring :)
The table in #23 is from March 2022, I think we could expect usage of Claro to have gone up significantly since then since it was marked stable and added to the standard profile in April 2022 (and then 9.4 was released in June). For me, that alone explains low Claro usage - too new to appear in the stats. Even with updated stats, it will probably still take some time to pick up - i.e. for existing sites to switch to Seven to Claro as part of a Drupal 10 upgrade, still a few months of that to go.
This doesn't explain the combined low usage though. Seven was on 44.5% in Drupal 8 according to #23 which seems more what I'd expect although still quite low.
The Drupal 8/9 comparison also shows the drop off with the other modules you mentioned like field - it's at 99+% in Drupal 8, more like 91% in Drupal 9, so that could be indicating collection issues (unless there's a real trend).
Comment #35
lauriiiSomething else that seems off about the data is that between Drupal 8 and 9 Stable usage went from 45.0% to 5.5%, and Classy usage went from: 45.0% to 3.9%. Did this many people really remove their dependency on Classy? If we look at the contrib Classy usage and compare it to Drupal 10.0.x sites, around 13.3% of Drupal 10 sites have Classy installed.
Comment #36
2dareis2do commentedWhat is the latest data on this? Where can I find this?
Also are there any plans to do the opposite? i.e. move contrib modules into core that are installed on more than 5% of sites
https://www.drupal.org/project/project_module?f%5B0%5D=&f%5B1%5D=&f%5B2%...
ckeditor5 usage has probably gone up as well?
Comment #37
catch@2dareis2do the data is only available via querying the d.o database, we'd need to ask the DA for updated stats.
The current list of modules that are actively being prepared for a move to contrib is in #3265680: Deprecate dependencies, libraries, modules, and themes that will be removed from Drupal 11 core.
There are individual issues like #229568: [policy, no patch] Pathauto in core although e.g. pathauto is installed on more like 75% of sites. The main focus on making it easier to find and install modules is on project browser.
Comment #38
2dareis2do commentedThanks @catch
Can I create an issue to make this data publicly available?
Current data is nearly 2 years old. Drupal 10 has been released since then.
Feedback loop is too long.
Comment #39
catch@2dareis2do there is probably already a public issue, I would look in the 'drupalorg' issue queue first, and open an issue there if there's not one already.
Comment #40
2dareis2do commentedOk I have added an issue here
https://www.drupal.org/project/infrastructure/issues/3417187
Comment #41
aaronmchaleWith Project Browser and Recipes soon coming into Core, we might find that we actually don't need to bring more module into core, because the barrier to entry for getting those modules becomes so much lower.
What I mean is that I can imagine a day where, when you setup Drupal, you don't install the standard profile, you pick from a curated set of recipes right in the installer, the recipe takes care of getting all of the modules it needs. Some of those recipes might not even be included with Core, they might life in contrib and the recipe you choose might then be downloaded during the installation. Maybe then core can become even smaller, and thus even more maintainable.
Now, I'm not saying this is definitely where we should go, but what I am saying is that I can see this being a place that we are gradually moving towards.
Comment #42
2dareis2do commentedProject Browser reminds me a little of Drupal Gardens.
Moving popular contributed modules into core also acheives this aim.
Comment #43
drummHere is updated data.
To clean the data, this is how I got the core components:
SET group_concat_max_len = 10000000000; SELECT group_concat(DISTINCT pcc.name SEPARATOR '\\|') FROM project_composer_component pcc INNER JOIN field_data_field_release_project fdf_rp ON fdf_rp.entity_id = pcc.release_nid AND fdf_rp.field_release_project_target_id = 3060\GComment #44
nod_tried to reformat it, double checking is needed.
Comment #45
quietone commentedThe Ideas project is being deprecated. This issue is moved to the Drupal project. Check that the selected component is correct. Also, add the relevant tags, especially any 'needs manager review' tags.
Comment #46
poker10 commentedIn the last table, pgsql module is 4%. Reading the proposed resolution, seems like that the module would qualify for removal, even if it is a DB driver. Can we exclude DB drivers modules explicitly, as I suppose we do not want to remove PostgreSQL support even if the module usage will be under the treshold?
Comment #47
drummThere was a request for updated data in Slack, it is attached.
More notes for myself for next time:
Get the current core components:
SET group_concat_max_len = 10000000000; SELECT group_concat(DISTINCT pcc.name SEPARATOR '\\|') FROM project_composer_component pcc INNER JOIN field_data_field_release_project fdf_rp ON fdf_rp.entity_id = pcc.release_nid AND fdf_rp.field_release_project_target_id = 3060\GFilter the usage data:
grep '\sdrupal|.*\([the core components]\)$' < /var/log/updatestats/counts/[most recent].submodule_release_counts > drupal-component-usage-by-release-[today].txtComment #48
grimreaperThanks @drumm,
Formatting data:
Comment #49
ressaThanks @grimreaper! Here are the percentage values sorted descending for Drupal 10 and Drupal 11 values. I finally figured out how to sort numbers in Libre Office Calc: "Data" > "Sort", and "Natural Sort" (number sort) under "Options".
Drupal 10 sorted descending
Core
8
9
10
11
system
52928
73909
274975
63239
update
100.0
100.0
100.0
99.9
user
100.0
100.0
100.0
99.5
path_alias
67.2
100.0
100.0
99.5
field
98.8
100.0
99.2
99.1
filter
98.8
100.0
99.1
99.4
block
98.8
100.0
99.1
99.3
text
98.8
100.0
99.1
99.1
node
98.8
99.9
99.0
99.0
file
98.8
97.8
98.3
98.3
breakpoint
97.4
97.7
98.3
98.2
views
97.4
97.7
98.3
98.2
image
97.4
97.7
98.1
97.9
link
97.4
97.8
98.1
97.5
editor
97.3
97.7
98.0
97.4
path
97.3
97.5
98.0
97.3
menu_link_content
97.3
97.6
98.0
97.2
menu_ui
97.3
97.6
97.9
97.1
toolbar
97.2
97.5
97.9
89.8
options
97.2
97.5
97.6
97.5
taxonomy
96.7
96.9
97.0
96.9
datetime
96.8
97.0
96.9
97.0
config
96.6
96.8
96.4
96.4
field_ui
95.5
96.1
96.3
93.7
mysql
0.7
71.8
95.8
91.3
dynamic_page_cache
95.6
95.4
95.5
97.6
block_content
96.5
96.1
95.1
82.2
views_ui
95.0
94.8
94.0
92.7
contextual
95.2
93.7
93.4
94.3
page_cache
95.6
94.6
91.7
94.9
ckeditor5
0.0
21.4
88.2
96.2
dblog
94.7
94.1
87.7
90.2
help
91.1
83.7
83.9
75.1
automated_cron
95.0
92.9
82.3
83.4
shortcut
92.5
89.0
82.1
75.4
history
90.5
85.4
77.6
71.9
media
32.9
55.9
73.0
61.5
phpass
0.0
0.0
70.5
36.4
language
61.4
66.1
65.2
59.1
big_pipe
59.6
71.3
64.3
77.3
comment
82.3
74.8
60.8
67.2
contact
82.8
73.4
59.8
67.2
search
83.8
75.1
55.6
60.5
media_library
18.3
40.5
55.2
52.3
serialization
27.9
38.4
52.6
35.8
locale
58.4
59.5
50.9
49.2
responsive_image
27.7
35.0
47.6
40.0
layout_discovery
29.6
36.2
42.3
47.9
rest
20.2
30.4
41.2
21.3
telephone
23.7
27.3
40.7
32.9
tour
84.5
78.4
36.7
0.2
workflows
7.9
17.7
33.8
28.3
datetime_range
15.4
20.4
33.5
24.8
config_translation
31.0
29.8
33.2
31.0
content_translation
32.6
31.8
32.4
32.7
content_moderation
6.5
15.8
31.5
26.8
layout_builder
10.1
21.1
28.6
40.4
migrate
9.4
15.8
28.3
18.0
syslog
7.9
12.8
20.3
9.7
inline_form_errors
7.8
14.9
19.6
23.1
jsonapi
5.5
11.1
18.1
7.5
ban
6.6
8.1
17.1
10.8
migrate_drupal
5.8
9.9
14.8
10.8
basic_auth
6.6
12.1
13.1
8.6
layout_builder_expose_all_field_blocks
0.0
0.0
12.5
1.7
announcements_feed
0.0
0.0
12.3
51.9
standard
43.8
25.2
7.6
13.8
claro
1.1
8.5
7.4
13.8
action
7.5
12.3
6.5
0.0
olivero
0.0
7.0
5.7
12.4
migrate_drupal_ui
4.3
5.7
5.5
5.9
settings_tray
3.1
4.7
4.4
3.3
statistics
12.0
11.2
4.2
0.0
field_layout
4.5
5.1
3.0
3.3
book
4.0
3.5
2.8
0.0
pgsql
0.3
1.7
2.5
4.1
sqlite
0.2
0.5
2.1
10.0
stable9
0.0
1.2
1.9
2.8
navigation
0.0
0.0
1.7
20.5
forum
5.1
3.2
1.4
0.0
tracker
2.7
3.4
1.2
0.0
sdc
0.0
0.0
1.1
0.0
navigation_top_bar
0.0
0.0
1.0
5.0
workspaces
0.3
0.4
0.7
1.6
stark
1.8
0.6
0.3
0.6
help_topics
0.2
1.2
0.3
0.0
stable
56.9
9.4
0.2
0.0
classy
56.9
7.1
0.2
0.0
rdf
92.9
74.0
0.1
0.0
ckeditor
97.1
62.8
0.1
0.0
color
87.9
54.1
0.1
0.0
seven
54.7
19.1
0.1
0.0
bartik
44.3
15.2
0.1
0.0
package_manager
0.0
0.0
0.0
6.2
quickedit
81.7
44.1
0.0
0.0
hal
11.6
5.6
0.0
0.0
aggregator
3.5
3.3
0.0
0.0
entity_reference
5.7
0.2
0.0
0.0
Drupal 11 sorted descending
Core
8
9
10
11
system
52928
73909
274975
63239
update
100.0
100.0
100.0
99.9
user
100.0
100.0
100.0
99.5
path_alias
67.2
100.0
100.0
99.5
filter
98.8
100.0
99.1
99.4
block
98.8
100.0
99.1
99.3
field
98.8
100.0
99.2
99.1
text
98.8
100.0
99.1
99.1
node
98.8
99.9
99.0
99.0
file
98.8
97.8
98.3
98.3
breakpoint
97.4
97.7
98.3
98.2
views
97.4
97.7
98.3
98.2
image
97.4
97.7
98.1
97.9
dynamic_page_cache
95.6
95.4
95.5
97.6
link
97.4
97.8
98.1
97.5
options
97.2
97.5
97.6
97.5
editor
97.3
97.7
98.0
97.4
path
97.3
97.5
98.0
97.3
menu_link_content
97.3
97.6
98.0
97.2
menu_ui
97.3
97.6
97.9
97.1
datetime
96.8
97.0
96.9
97.0
taxonomy
96.7
96.9
97.0
96.9
config
96.6
96.8
96.4
96.4
ckeditor5
0.0
21.4
88.2
96.2
page_cache
95.6
94.6
91.7
94.9
contextual
95.2
93.7
93.4
94.3
field_ui
95.5
96.1
96.3
93.7
views_ui
95.0
94.8
94.0
92.7
mysql
0.7
71.8
95.8
91.3
dblog
94.7
94.1
87.7
90.2
toolbar
97.2
97.5
97.9
89.8
automated_cron
95.0
92.9
82.3
83.4
block_content
96.5
96.1
95.1
82.2
big_pipe
59.6
71.3
64.3
77.3
shortcut
92.5
89.0
82.1
75.4
help
91.1
83.7
83.9
75.1
history
90.5
85.4
77.6
71.9
comment
82.3
74.8
60.8
67.2
contact
82.8
73.4
59.8
67.2
media
32.9
55.9
73.0
61.5
search
83.8
75.1
55.6
60.5
language
61.4
66.1
65.2
59.1
media_library
18.3
40.5
55.2
52.3
announcements_feed
0.0
0.0
12.3
51.9
locale
58.4
59.5
50.9
49.2
layout_discovery
29.6
36.2
42.3
47.9
layout_builder
10.1
21.1
28.6
40.4
responsive_image
27.7
35.0
47.6
40.0
phpass
0.0
0.0
70.5
36.4
serialization
27.9
38.4
52.6
35.8
telephone
23.7
27.3
40.7
32.9
content_translation
32.6
31.8
32.4
32.7
config_translation
31.0
29.8
33.2
31.0
workflows
7.9
17.7
33.8
28.3
content_moderation
6.5
15.8
31.5
26.8
datetime_range
15.4
20.4
33.5
24.8
inline_form_errors
7.8
14.9
19.6
23.1
rest
20.2
30.4
41.2
21.3
navigation
0.0
0.0
1.7
20.5
migrate
9.4
15.8
28.3
18.0
standard
43.8
25.2
7.6
13.8
claro
1.1
8.5
7.4
13.8
olivero
0.0
7.0
5.7
12.4
ban
6.6
8.1
17.1
10.8
migrate_drupal
5.8
9.9
14.8
10.8
sqlite
0.2
0.5
2.1
10.0
syslog
7.9
12.8
20.3
9.7
basic_auth
6.6
12.1
13.1
8.6
jsonapi
5.5
11.1
18.1
7.5
package_manager
0.0
0.0
0.0
6.2
migrate_drupal_ui
4.3
5.7
5.5
5.9
navigation_top_bar
0.0
0.0
1.0
5.0
pgsql
0.3
1.7
2.5
4.1
settings_tray
3.1
4.7
4.4
3.3
field_layout
4.5
5.1
3.0
3.3
stable9
0.0
1.2
1.9
2.8
layout_builder_expose_all_field_blocks
0.0
0.0
12.5
1.7
workspaces
0.3
0.4
0.7
1.6
stark
1.8
0.6
0.3
0.6
tour
84.5
78.4
36.7
0.2
rdf
92.9
74.0
0.1
0.0
ckeditor
97.1
62.8
0.1
0.0
color
87.9
54.1
0.1
0.0
quickedit
81.7
44.1
0.0
0.0
seven
54.7
19.1
0.1
0.0
stable
56.9
9.4
0.2
0.0
classy
56.9
7.1
0.2
0.0
bartik
44.3
15.2
0.1
0.0
action
7.5
12.3
6.5
0.0
statistics
12.0
11.2
4.2
0.0
book
4.0
3.5
2.8
0.0
hal
11.6
5.6
0.0
0.0
forum
5.1
3.2
1.4
0.0
tracker
2.7
3.4
1.2
0.0
aggregator
3.5
3.3
0.0
0.0
entity_reference
5.7
0.2
0.0
0.0
sdc
0.0
0.0
1.1
0.0
help_topics
0.2
1.2
0.3
0.0
Comment #51
ressaI was looking at #3466088: [meta] Deprecate dependencies, libraries, modules, and themes that will be removed from Drupal 12 core and remembered this issue.
Drupal 12 should be released with 65 core modules. These 11 core modules will be removed, where some are already moved to contrib, others are in the process:
13 core modules have been added since July 2020:
... and 28 core modules have been removed:
Perhaps it's possible to get a list with updated data in September, like in 2024 and 2025? (comment #43 and #47)
Comment #52
quietone commented