From c5ae5f067b8eaeaad26dd6f79c1d6796852298f9 Mon Sep 17 00:00:00 2001 From: Gregor Harlan Date: Fri, 9 Oct 2026 20:36:19 +0200 Subject: [PATCH] feat!: require MySQL 8.4 and MariaDB 10.11 MySQL 8.0 and MariaDB 10.6 and older are end of life. Hosters that still run MySQL 8.0 offer MariaDB as an alternative. The EOL warning entries below the minimum versions are dropped, as they can no longer apply. CI tests the lower bounds with mysql:8.4 and mariadb:10.11, and the phpstan job runs on ubuntu-26.04, whose preinstalled MySQL is 8.4. --- .github/workflows/static-analysis.yml | 2 +- .github/workflows/unit-tests.yml | 6 ++---- src/Setup/Setup.php | 20 ++------------------ 3 files changed, 5 insertions(+), 23 deletions(-) diff --git a/.github/workflows/static-analysis.yml b/.github/workflows/static-analysis.yml index 3bda7e6456..3d9a72b1ab 100644 --- a/.github/workflows/static-analysis.yml +++ b/.github/workflows/static-analysis.yml @@ -161,7 +161,7 @@ jobs: file_pattern: .tools/psalm/baseline-taint.xml phpstan: - runs-on: ubuntu-latest + runs-on: ubuntu-26.04 timeout-minutes: 30 if: github.event_name != 'repository_dispatch' || github.event.client_payload.pull_request.head.repo.full_name == github.repository && (github.event.client_payload.slash_command.args.unnamed.all == '' || contains(github.event.client_payload.slash_command.args.unnamed.all, 'phpstan')) permissions: diff --git a/.github/workflows/unit-tests.yml b/.github/workflows/unit-tests.yml index 2211e981ea..104f3d52b7 100644 --- a/.github/workflows/unit-tests.yml +++ b/.github/workflows/unit-tests.yml @@ -26,16 +26,14 @@ jobs: strategy: matrix: include: - - php-version: '8.5' - db-image: 'mysql:8.0' - composer-flags: '--prefer-lowest' - php-version: '8.5' db-image: 'mysql:8.4' + composer-flags: '--prefer-lowest' - php-version: '8.6' db-image: 'mysql:latest' composer-flags: '--ignore-platform-req=php' - php-version: '8.5' - db-image: 'mariadb:10.4' + db-image: 'mariadb:10.11' - php-version: '8.5' db-image: 'mariadb:latest' diff --git a/src/Setup/Setup.php b/src/Setup/Setup.php index 06ebd3b3ae..d9cb1d3836 100644 --- a/src/Setup/Setup.php +++ b/src/Setup/Setup.php @@ -33,8 +33,8 @@ final class Setup /** @var string */ public const MIN_PHP_VERSION = REX_MIN_PHP_VERSION; public const MIN_PHP_EXTENSIONS = ['ctype', 'fileinfo', 'iconv', 'intl', 'mbstring', 'pdo_mysql', 'session', 'tokenizer']; - public const MIN_MYSQL_VERSION = '8.0'; - public const MIN_MARIADB_VERSION = '10.4'; + public const MIN_MYSQL_VERSION = '8.4'; + public const MIN_MARIADB_VERSION = '10.11'; /** no-password placeholder required to support empty passwords/clearing the password. */ public const DEFAULT_DUMMY_PASSWORD = '-REDAXO-DEFAULT-DUMMY-PASSWORD-'; @@ -209,16 +209,6 @@ public static function checkDbSecurity(): array // Deprecated versions and dates // Source: https://endoflife.date/mariadb, set to 1st of month $deprecatedVersions = [ - '10.1' => '2020-10-01', - '10.2' => '2022-05-01', - '10.3' => '2023-05-01', - '10.4' => '2024-06-01', - '10.5' => '2025-06-01', - '10.6' => '2026-07-01', // LTS - '10.7' => '2023-02-01', - '10.8' => '2023-05-01', - '10.9' => '2023-08-01', - '10.10' => '2023-11-01', '10.11' => '2028-02-01', // LTS '11.0' => '2024-06-01', '11.1' => '2024-08-01', @@ -244,12 +234,6 @@ public static function checkDbSecurity(): array // Deprecated versions and dates // Source: https://en.wikipedia.org/wiki/MySQL#Release_history, set to 1st of month $deprecatedVersions = [ - '5.6' => '2021-12-01', - '5.7' => '2023-10-01', - '8.0' => '2026-04-01', - '8.1' => '2023-10-01', - '8.2' => '2024-01-01', - '8.3' => '2024-04-01', '8.4' => '2032-04-01', '9.0' => '2024-10-01', '9.1' => '2025-01-01',