diff --git a/.github/workflows/install-testing.yml b/.github/workflows/install-testing.yml index 1599ad019d827..6cd3b70ad7439 100644 --- a/.github/workflows/install-testing.yml +++ b/.github/workflows/install-testing.yml @@ -1,6 +1,9 @@ # Confirms that installing WordPress using WP-CLI works successfully. # # This workflow is not meant to test wordpress-develop checkouts, but rather tagged versions officially available on WordPress.org. +# +# This workflow is triggered for all WordPress versions that are currently receiving security updates. It therefore needs to +# retain support for older PHP and database versions. name: Installation Tests on: diff --git a/.github/workflows/local-docker-environment.yml b/.github/workflows/local-docker-environment.yml index 06638af14a552..5ddb5f5d6fe57 100644 --- a/.github/workflows/local-docker-environment.yml +++ b/.github/workflows/local-docker-environment.yml @@ -106,11 +106,6 @@ jobs: - db-version: '9.2' - db-version: '9.3' - db-version: '9.4' - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.5' - - php: '7.3' - db-version: '9.5' # No PHP 8.5 + Memcached support yet. - php: '8.5' memcached: true diff --git a/.github/workflows/phpunit-tests.yml b/.github/workflows/phpunit-tests.yml index 63615dfad19f8..de2de9091677c 100644 --- a/.github/workflows/phpunit-tests.yml +++ b/.github/workflows/phpunit-tests.yml @@ -72,7 +72,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-24.04 ] - php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] + php: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.0', '8.4' ] tests-domain: [ 'example.org' ] @@ -149,7 +149,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-24.04 ] - php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] + php: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mariadb' ] db-version: [ '5.5', '10.3', '10.5', '10.6', '10.11', '11.4', '11.8' ] multisite: [ false, true ] @@ -201,7 +201,7 @@ jobs: fail-fast: false matrix: os: [ ubuntu-24.04 ] - php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] + php: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql', 'mariadb' ] db-version: [ '9.5', '12.0' ] multisite: [ false, true ] @@ -209,11 +209,6 @@ jobs: db-innovation: [ true ] exclude: - # MySQL 9.0+ will not work on PHP <= 7.3 because mysql_native_password was removed. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.5' - - php: '7.3' - db-version: '9.5' # Exclude version combinations that don't exist. - db-type: 'mariadb' db-version: '9.5' @@ -248,7 +243,7 @@ jobs: strategy: fail-fast: false matrix: - php: [ '7.2', '7.4', '8.0', '8.4' ] + php: [ '7.4', '8.0', '8.4' ] db-type: [ 'mysql' ] db-version: [ '8.4' ] phpunit-test-groups: [ 'html-api-html5lib-tests' ] @@ -277,7 +272,7 @@ jobs: strategy: fail-fast: false matrix: - php: [ '7.2', '8.4' ] + php: [ '7.4', '8.4' ] db-version: [ '8.4', '11.8' ] db-type: [ 'mysql', 'mariadb' ] multisite: [ false ] diff --git a/.github/workflows/reusable-upgrade-testing.yml b/.github/workflows/reusable-upgrade-testing.yml index 193802ce9f4ad..aa1760daf6c40 100644 --- a/.github/workflows/reusable-upgrade-testing.yml +++ b/.github/workflows/reusable-upgrade-testing.yml @@ -75,8 +75,6 @@ jobs: --health-retries="5" -e MYSQL_ROOT_PASSWORD="root" -e MYSQL_DATABASE="test_db" - --entrypoint sh ${{ inputs.db-type }}:${{ inputs.db-version }} - -c "exec docker-entrypoint.sh mysqld${{ inputs.db-type == 'mysql' && contains( fromJSON('["7.2", "7.3"]'), inputs.php ) && ' --default-authentication-plugin=mysql_native_password' || '' }}" steps: - name: Set up PHP ${{ inputs.php }} diff --git a/.github/workflows/upgrade-develop-testing.yml b/.github/workflows/upgrade-develop-testing.yml index 8d00334c38903..b33188106c44f 100644 --- a/.github/workflows/upgrade-develop-testing.yml +++ b/.github/workflows/upgrade-develop-testing.yml @@ -63,20 +63,12 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '8.4' ] + php: [ '7.4', '8.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] - # WordPress 4.9 is the oldest version that supports PHP 7.2. - wp: [ '4.9', '6.7', '6.8', '6.9-RC1' ] + # WordPress 5.3 is the oldest version that supports PHP 7.4. + wp: [ '5.3', '6.7', '6.8', '6.9-RC1' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' - # WordPress 4.9 does not support PHP 8.4. - - php: '8.4' - wp: '4.9' with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -98,17 +90,11 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '8.4' ] + php: [ '7.4', '8.4' ] db-type: [ 'mysql' ] db-version: [ '8.4' ] - # WordPress 4.9 is the oldest version that supports PHP 7.2. wp: [ '6.7', '6.8' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' with: os: ${{ matrix.os }} php: ${{ matrix.php }} diff --git a/.github/workflows/upgrade-testing.yml b/.github/workflows/upgrade-testing.yml index f6ba23c87a328..4f6025e054580 100644 --- a/.github/workflows/upgrade-testing.yml +++ b/.github/workflows/upgrade-testing.yml @@ -68,23 +68,11 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] + php: [ '7.4', '8.0', '8.1', '8.2', '8.3', '8.4', '8.5' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.0', '8.4', '9.5' ] wp: [ '6.7', '6.8' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' - - php: '7.3' - db-version: '8.4' - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.5' - - php: '7.3' - db-version: '9.5' with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -105,16 +93,11 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '7.4', '8.0', '8.4' ] + php: [ '7.4', '8.0', '8.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] wp: [ '6.0', '6.3', '6.4', '6.5' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -124,7 +107,7 @@ jobs: new-version: ${{ inputs.new-version && inputs.new-version || 'latest' }} multisite: ${{ matrix.multisite }} - # Tests 5.x releases where the WordPress database version changed on the oldest and newest supported versions of PHP 7. + # Tests 5.x releases where the WordPress database version changed on the only supported version of PHP 7. upgrade-tests-wp-5x-php-7x-mysql: name: ${{ matrix.wp }} to ${{ inputs.new-version && inputs.new-version || 'latest' }} uses: ./.github/workflows/reusable-upgrade-testing.yml @@ -135,16 +118,11 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '7.4' ] + php: [ '7.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.4' ] wp: [ '5.0', '5.1', '5.3', '5.4', '5.5', '5.6', '5.9' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' with: os: ${{ matrix.os }} php: ${{ matrix.php }} @@ -199,23 +177,11 @@ jobs: fail-fast: false matrix: os: [ 'ubuntu-24.04' ] - php: [ '7.2', '7.3', '7.4' ] + php: [ '7.4' ] db-type: [ 'mysql' ] db-version: [ '5.7', '8.0', '8.4', '9.5' ] wp: [ '4.7' ] multisite: [ false, true ] - - exclude: - # The PHP <= 7.3/MySQL 8.4 jobs currently fail due to mysql_native_password being disabled by default. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '8.4' - - php: '7.3' - db-version: '8.4' - # MySQL 9.0+ will not work on PHP 7.2 & 7.3. See https://core.trac.wordpress.org/ticket/61218. - - php: '7.2' - db-version: '9.5' - - php: '7.3' - db-version: '9.5' with: os: ${{ matrix.os }} php: ${{ matrix.php }} diff --git a/.version-support-php.json b/.version-support-php.json index 6618a1680b9bf..5374052d2383c 100644 --- a/.version-support-php.json +++ b/.version-support-php.json @@ -1,7 +1,5 @@ { "7-0": [ - "7.2", - "7.3", "7.4", "8.0", "8.1", diff --git a/composer.json b/composer.json index 64ce2356a6719..2c5b20f7879a9 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ "require": { "ext-hash": "*", "ext-json": "*", - "php": ">=7.2.24" + "php": ">=7.4" }, "suggest": { "ext-dom": "*" diff --git a/docker-compose.yml b/docker-compose.yml index 274e106ec8e5c..cc2ed8d94975e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -79,9 +79,6 @@ services: - ./tools/local-env/mysql-init.sql:/docker-entrypoint-initdb.d/mysql-init.sql - mysql:/var/lib/mysql - # For compatibility with PHP versions that don't support the caching_sha2_password auth plugin used in MySQL 8.0. - command: ${LOCAL_DB_AUTH_OPTION-} - healthcheck: test: [ 'CMD-SHELL', diff --git a/phpcompat.xml.dist b/phpcompat.xml.dist index a4771be79618b..c4ebab64ea19b 100644 --- a/phpcompat.xml.dist +++ b/phpcompat.xml.dist @@ -66,8 +66,8 @@ - - + +