Closed (fixed)
Project:
Drupal core
Version:
main
Component:
other
Priority:
Critical
Category:
Plan
Assigned:
Unassigned
Reporter:
Created:
4 Jul 2025 at 09:27 UTC
Updated:
24 Mar 2026 at 04:35 UTC
Jump to comment: Most recent, Most recent file
Comments
Comment #2
quietone commentedComment #3
catch#3406215: [policy] Default to requiring the latest stable PHP release available when a new major version reaches the first beta window has been signed off, which means Drupal 12 will require PHP 8.5. We can't require PHP 8.5 until we support it, which we don't fully yet because it hasn't been released, but I opened a child postponed issue.
Comment #4
catchComment #5
xjmComment #6
gábor hojtsyMade the 6 months explicit :)
Comment #7
longwaveLet's start some discussion here.
MySQL
The suggested policy is that we select the highest LTS available at the time of 12.0.0-beta1. The MySQL LTS cycle is "about every two years" and the current LTS is 8.4, released 20 months ago. There is a chance that the next MySQL LTS will be available by the time of 12.0.0-beta1, but it is not guaranteed.
Ubuntu 25.10 currently ships with MySQL 8.4, it seems likely that Ubuntu 26.04 LTS will also ship with MySQL 8.4.
The minimum version for Drupal 11 was MySQL 8.0. I suggest as a starting point we bump the minimum for Drupal 12 to MySQL 8.4.
MariaDB
There is no suggested policy for MariaDB. The latest LTS is currently MariaDB 11.8, released six months ago, and there is also MariaDB 11.4 LTS, released 18 months ago.
Ubuntu 25.10 currently ships with MariaDB 11.8, and it seems likely that Ubuntu 26.04 LTS will do the same.
The minimum in Drupal 11 was MariaDB 10.6. I suggest as a starting point we bump to MariaDB 11.4 and consider going to 11.8, but to be conservative and for some kind of parity with MySQL we may want to stick with 11.4.
PostgreSQL
The suggested policy is that we choose the major that is available prior to 12.0.0-beta1. The current major is PostgreSQL 18, released three months ago.
Ubuntu 25.10 currently ships with PostgreSQL 17, but perhaps this will be raised to PostgreSQL 18 for Ubuntu 26.04 LTS?
The minimum in Drupal 11 was PostgreSQL 16. I suggest we bump to PostgreSQL 17 to start with for Drupal 12, and consider PostgreSQL 18.
SQLite
The suggested policy is that we base the decision on feature set and availability, which is quite vague. The current minor is SQLite 3.51.
Ubuntu 25.10 currently ships with SQLite 3.46.
The minimum in Drupal 11 was SQLite 3.45. For now I suggest we stick with SQLite 3.45 unless we have a pressing reason to increase this?
Comment #8
catchI was hoping #3363102: [Policy] How to select the minimum required database versions would be resolved by now so that the actual version-specific stuff is just documenting what comes out of heuristic, but it's still open.
Based on the latest discussion in that issue, I get this for database requirements for 12.0.0:
This equates to leaving MySQL and sqlite requirements the same as in Drupal 11, while raising MariaDB to follow their LTS/EOL policy more closely.
Comment #9
longwaveI think that makes sense tbh. I haven't seen any requests for newer database features that would force us to upgrade; we already support versions that have the JSON functionality that we wanted, but still haven't fully implemented. In many organisations I think database versions are only upgraded when their hand is forced - so if we can avoid that then perhaps adoption of Drupal 12 will be slightly easier.
I also think we should try to finalize that policy following the decision made here!
Should we stick with PostgreSQL 16 as well, or bump to 17 or 18?
Comment #10
catchThe latest proposal on that issue was:
the most recent PostgreSQL major version that is available 6 months before the expected Drupal major release datefrom #3363102-8: [Policy] How to select the minimum required database versions.
Which is slightly more conservative than the issue summary (3 months before the beta), but because postgres always releases in September, ends up at exactly the same release.
So for Drupal 12 that would be PostgreSQL 18, released September 2025 and supported until November 2030.
Comment #11
gábor hojtsyI think remaining on MySQL 8.0 would be the best unless we really need something from later MySQL versions. I agree that hosts have a much harder time updating databases compared to PHP and other components, so keeping the Drupal 11 requirement would make adopting Drupal 12 much easier.
Comment #12
catchYeah I'm not aware of anything. It's a bit weird that it's going to be EOL before Drupal 12 is even released, but the main thing is that we support newer MySQL versions. The security surface of specific database versions is also extremely low, compared to PHP version where it can theoretically be quite high (different error behaviour etc.).
Comment #13
xjmwaggles fingers
We have precedent for the minimum required version of a platform requirement being below (even well below) what's EOL. See: Drupal 8 and PHP 5.3. It created serious problems later in Drupal 8's lifecycle, but it is a minimum, and Drupal 12 will have a shorter lifetime. Plus what @catch said about security surface of DB features.
Should we adopt recommended versions for databases like we have for PHP? It doesn't necessarily need to be enforced programmatically; could just be docs. And then what would we say the minimum supported version of MySQL would be, versus the recommended version?
Comment #14
xjmSorry, didn't mean to end with a rhetorical and d.o had a nap before I could fix it. :)
I suggest we would recommend at least 8.4, and communicate that in the release notes, platform requirement docs, etc.
We could also consider also having it on the core requirements listing programmatically as maybe a should- or could-have for D12 core to allow drivers to specify recommended versions.
Comment #15
gábor hojtsyRe MySQL how do we determine the supported version? Eg. https://www.mysql.com/support/supportedplatforms/database.html says both Ubuntu 22.04 LTS and Ubuntu 24.04 LTS support MySQL 8.0. The Standard EOL of Ubuntu 22.04 LTS is April 2027, while for 24.04 LTS it is May 2029.
Comment #16
catchI've updated the issue summary with what I think the current status is based on the various issues.
The one that I don't think we've discussed is composer, Drupal 11 currently requires 2.7.0 due to a security release.
Composer just released https://github.com/composer/composer/releases/tag/2.9.3 which is also a security release, we can 'require' that, but I don't think we ever added anything to enforce a minimum installed composer version on the server. Might be misremembering, maybe we do somewhere.
Package manager uses local composer now whenever it can, so the question is much less relevant than it was when we introduced package_manager, since #3528139: Package Manager should use a copy of Composer that is local to the current project, if available.
So for composer I'd be fine with not specifically saying anything, or requiring 2.9.3. But I think our de-facto policy is that we require at least the minimum secure release of composer whatever that is at the time, at least until composer 3 is out.
Comment #17
gábor hojtsyI agree with the issue summary as it stands now, thanks for the summary.
Comment #18
catchComment #19
quietone commentedI updated the announcement with the decision so far.
Comment #20
quietone commentedWhat about Symfony, PHPUnit and jQuery ? Shall we include something about those in the announcement.
Comment #21
catch@quietone this is more about hosts and sites that run their own infrastructure so I think we can leave it at just the hosting requirements.
Comment #22
gábor hojtsyI updated https://www.drupal.org/docs/getting-started/system-requirements/php-requ... to the PHP version decision since that was not questioned :)
Also removed the third party library related section from the announcement draft. Anything else to do to announce? :)
Comment #23
longwaveI fixed a typo in the Composer version number (missing dot) but otherwise this looks good to me - I agree with the "recommends" language for Composer, we can't really specify stronger than that because technically you can use an older version if you want.
Comment #24
catchAnnouncement looks good.
We'll need to update several of the child pages under https://www.drupal.org/docs/getting-started/system-requirements too but that can happen after the announcement goes out.
Comment #25
quietone commented! asked about Symfony, PHPUnit and jQuery because the Drupal 11 announcement included those.
But I also agree with this as is.
Comment #26
gábor hojtsyPosted the announcement at https://www.drupal.org/about/core/blog/announcing-drupal-1200-platform-r..., moving to needs work to update all the pages following the announcement.
Comment #27
quietone commentedI've updated all the specific requirements pages except one. That is the Overview page which I completely disagree because it creates two sources of important requirement information. I have commented on that page suggesting that it is removed.
Comment #28
quietone commentedAFAICT, everything has been updated and the announcement made. I made an issue for the needed db updates and there is already one for PHP.
#3537713: [12.x] Require PHP 8.5
#3569115: Add core testing with MariaDb 10.11
I have updated credit and I think this is now complete.
Comment #29
quietone commentedActually, this became an issue to set the policy.
Comment #31
longwaveMarking this as fixed, as there seems to be nothing else to do here. I agree the Overview page duplicates information given elsewhere and probably should be removed.
Comment #33
quietone commentedSeeing this issue again got me thinking about the Overview page. For reasons added in the log on that page I have changed the title to [Obsolete] and removed in from the menu. Mostly, I want anyone looking for the requirements to find them in one place (even across several pages) instead of two.
Comment #34
quietone commented