Problem/Motivation

  • Let's assume a Drupal 9 EOL of Nov. 2023 to coincide with Symfony 4's EOL, unless we decide something different in #3018653: Decide on Drupal 9's EOL date range (and therefore, Drupal 10's release date range).
  • As far as we know, all minimum database versions required by the core database drivers other than MariaDB will be security supported until approximately then:
    • MySQL 5.7 Community Server is supported by Oracle until October 2023.
    • PostgreSQL 10 is EOL by PostgreSQL after November 2022. However, RHEL/CentOS 8 will continue providing security backports until May 2024.
    • SQLite 3.26 is part of RHEL/CentOS 8 core (not an app stream), so as far as we know, will receive security backports until 2029.
  • However, MariaDB 10.2 goes EOL in May 2022, and there aren't any major Linux distros providing freely accessible security backports beyond that. SUSE 15 SP1 ships with MariaDB 10.2, but SUSE 15 SP2 will ship in June 2020 with MariaDB 10.4, and SP1 will go out of mainstream support 6 months later. One can purchase up to 3 years of additional SP1 support beyond that, but that's not free.
  • Because people can purchase extended support for MariaDB 10.2 (from MariaDB or from SUSE), it would be disruptive for core to raise the platform requirement in a Drupal minor release. Therefore, if we need to do it during D9's lifetime, it's better to do it prior to 9.0.
  • At the same time, we shouldn't require core contributors or maintainers to install software with publicly known security vulnerabilities in order to work on, test, or review issues. Nor should we require them to purchase extended support from anyone in order to get a secure build.
  • MariaDB 10.3 is EOL by MariaDB in May 2023, but it will ship with Ubuntu 20.04, so Ubuntu will provide freely available security backports until April 2025.

Proposed resolution

  • Raise the minimum MariaDB version required by core to 10.3. If we want to pick a patch version within the 10.3 series, then 10.3.7 is a logical choice, since that's the first stable (GA) release.
  • For people still stuck on 10.2, create a contrib driver for it similar to the one for MySQL 5.6 and PostgreSQL 9.6.

Note that I was against this in #3107113-28: [policy] Decide on MySQL/MariaDB/Percona Server version support status for Drupal 9, but that was before SUSE upgraded their MariaDB version in 15 SP2.

Remaining tasks

User interface changes

API changes

Data model changes

Release notes snippet

Minimum MariaDB requirement has been raised to version 10.3.7 (for sites using MariaDB only).

CommentFileSizeAuthor
#2 mariadb-minimum-3120124.patch1.46 KBeffulgentsia

Comments

effulgentsia created an issue. See original summary.

effulgentsia’s picture

Status: Active » Needs review
StatusFileSize
new1.46 KB
effulgentsia’s picture

#2's test results are as expected. Passed on MySQL 5.7 and MariaDB 10.3.22, and failed on MariaDB 10.2.7.

daffie’s picture

Status: Needs review » Reviewed & tested by the community
Related issues: +#3120197: Remove MariaDB 10.2 because the minimum supported version for Drupal 9.0 will be MariaDB 10.3

The one blocker for having MariaDB version 10.3 as a minimum has been removed.
Going for 10.3.7, because it is the first GA release is to me also a good idea.
I am for setting the minimum version of PostgreSQL to 10.3.7.
The patch looks good to me and the testbot is happy.
Great to see that it fails for with PostgreSQL 10.2.
Created a followup to remove the testbot with PostgreSQL 10.2. See: #3120197: Remove MariaDB 10.2 because the minimum supported version for Drupal 9.0 will be MariaDB 10.3.
For me it is RTBC.

gábor hojtsy’s picture

  • catch committed 8dc0353 on 9.0.x
    Issue #3120124 by effulgentsia, daffie: Raise the minimum MariaDB...
catch’s picture

Issue summary: View changes
Status: Reviewed & tested by the community » Fixed
Issue tags: -Needs release manager review

Discussed this with xjm last night and we're both OK with raising the version.

As long as we continue to test on MySQL 5.7, raising the MariaDB requirement should make it hard to introduce incompatibilies.

If we do want to take advantage of divergent features, we'll need to have a proper look at how to do that (probably different drivers, but then what about other MySQL-alikes?) - for now this is only about support cycles rather than actual API requirements. @effulgentsia has agreed to make a contrib driver for 10.2

Committed 8dc0353 and pushed to 9.0.x. Thanks!

gábor hojtsy’s picture

I went to see if there was a MariaDB 10.2.x regular test set up for core, so we should remove it but that does not seem to be the case.

xjm’s picture

And I queued an on-commit test for MariaDB 10.3.7. (The previous item on the QA report was the "run once" from before the separate test environments were added.)

xjm’s picture

We'll also want to explain in the release notes that this is different from the MySQL version and we know and we did that on purpose. I'll propose suggestions in the doc since it's in the context of a whole section.

Status: Fixed » Closed (fixed)

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