Problem/Motivation

Confirm requirements for Drupal 12

Proposed resolution

Define some 'not less than' minimum version requirements for Drupal 12.

Draft announcement.

Comments

quietone created an issue. See original summary.

quietone’s picture

Issue summary: View changes
catch’s picture

#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.

catch’s picture

Issue summary: View changes
xjm’s picture

Issue summary: View changes
gábor hojtsy’s picture

Title: [12.x] [meta] Set Drupal 12 platform and browser requirements at least six months before the release » [12.x] [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026

Made the 6 months explicit :)

longwave’s picture

Let'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?

catch’s picture

I 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:

MariaDb 10.11
MySQL 8.0
sqlite 3.45

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.

longwave’s picture

I 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?

catch’s picture

The latest proposal on that issue was:

the most recent PostgreSQL major version that is available 6 months before the expected Drupal major release date

from #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.

gábor hojtsy’s picture

I 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.

catch’s picture

I think remaining on MySQL 8.0 would be the best unless we really need something from later MySQL versions.

Yeah 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.).

xjm’s picture

waggles 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?

xjm’s picture

Sorry, 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.

gábor hojtsy’s picture

Re 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.

catch’s picture

Issue summary: View changes

I'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.

gábor hojtsy’s picture

I agree with the issue summary as it stands now, thanks for the summary.

catch’s picture

Status: Active » Needs review
quietone’s picture

I updated the announcement with the decision so far.

quietone’s picture

Issue summary: View changes

What about Symfony, PHPUnit and jQuery ? Shall we include something about those in the announcement.

catch’s picture

@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.

gábor hojtsy’s picture

StatusFileSize
new171.19 KB

I 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? :)

longwave’s picture

Status: Needs review » Reviewed & tested by the community

I 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.

catch’s picture

Announcement 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.

quietone’s picture

! asked about Symfony, PHPUnit and jQuery because the Drupal 11 announcement included those.

But I also agree with this as is.

gábor hojtsy’s picture

Status: Reviewed & tested by the community » Needs work

Posted 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.

quietone’s picture

Status: Needs work » Needs review

I'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.

quietone’s picture

Status: Needs review » Reviewed & tested by the community

AFAICT, 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.

quietone’s picture

Title: [12.x] [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026 » [12.x] [policy] Set Drupal 12 platform and browser requirements by Jan 15 2026

Actually, this became an issue to set the policy.

Title: [12.x] [policy] Set Drupal 12 platform and browser requirements by Jan 15 2026 » [12.x] [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026
Version: 11.x-dev » main

Drupal core is now using the main branch as the primary development branch. New developments and disruptive changes should now be targeted to the main branch.

Read more in the announcement.

longwave’s picture

Status: Reviewed & tested by the community » Fixed

Marking 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.

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

quietone’s picture

Seeing 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.

quietone’s picture

Title: [12.x] [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026 » [meta] Set Drupal 12 platform and browser requirements by Jan 15 2026

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.