Skip to content

chore: require PHP 8.2#1410

Open
superdav42 wants to merge 3 commits into
mainfrom
chore/php-82-minimum
Open

chore: require PHP 8.2#1410
superdav42 wants to merge 3 commits into
mainfrom
chore/php-82-minimum

Conversation

@superdav42

@superdav42 superdav42 commented Jun 11, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Raise Ultimate Multisite's declared minimum PHP version to 8.2 in plugin metadata, runtime requirements, Composer platform constraints, and supporting documentation.
  • Refresh composer.lock platform metadata for the new PHP requirement.
  • Keep PHPUnit/addon test coverage on PHP 8.2, 8.3, 8.4, and 8.5, while limiting the main E2E workflow to PHP 8.5 only to control CI cost.

Verification

  • php -l ultimate-multisite.php && php -l inc/class-requirements.php
  • vendor/bin/phpcs ultimate-multisite.php inc/class-requirements.php
  • composer validate --no-check-publish
  • Workflow YAML parse for changed workflows
  • Tracked grep for old PHP 7.4 / 8.1 workflow requirement references
  • E2E workflow grep confirming PHP 8.2, 8.3, and 8.4 are not in the E2E matrix
  • git diff --check

Notes

  • composer validate --no-check-publish passes with existing warnings about the version field and commit-pinned packages.

aidevops.sh v3.20.55 plugin for OpenCode v1.17.3 with gpt-5.5 spent 58m and 303,609 tokens on this with the user in an interactive session.

@coderabbitai

coderabbitai Bot commented Jun 11, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

This PR raises the minimum required PHP version for the Ultimate Multisite plugin from 7.4.x to 8.2. The change is applied consistently across runtime requirement checks, Composer dependency constraints, CI/CD test matrices, and public documentation.

Changes

PHP 8.2 Minimum Version Requirement

Layer / File(s) Summary
Core PHP version requirement definition
inc/class-requirements.php, composer.json, ultimate-multisite.php
Requirements::$php_version updated to 8.2; Composer require.php constraint raised from >=7.4.1 to >=8.2 and config.platform.php updated to 8.2.0; plugin header Requires PHP metadata updated to 8.2.
CI/CD workflow test matrices and build environment
.github/workflows/addon-integration-test.yml, .github/workflows/e2e.yml, .github/workflows/release.yml
Addon integration test reusable workflow default expanded to test against ["8.2", "8.3", "8.4", "8.5"]; E2E test matrix updated to the same versions; release workflow Setup PHP step updated to PHP 8.2 and release notes updated to document PHP 8.2+ requirement.
Documentation and metadata updates
readme.txt, README.md, AGENTS.md, .wiki/*, CONTRIBUTING.md
WordPress.org metadata Requires PHP, README badges/requirements, AGENTS and wiki requirement pages, and CONTRIBUTING prerequisites updated to document PHP 8.2+; composer platform mention updated in docs.
Tests and self-boot bundle
tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php, views/site-exporter/self-boot/readme.txt
Syntax-compatibility test renamed/updated to reference PHP 8.2; self-boot bundle README requirements updated to PHP 8.2+.

🎯 3 (Moderate) | ⏱️ ~20 minutes


Possibly related PRs


🐰 From seven-point-four we hop to eight-point-two, so spry,

CI and docs aligned beneath a brighter sky,

Tests and headers updated, composer tags too,

A nimble rabbit cheers: "Fresh PHP — let's review!" 🥕✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title 'chore: require PHP 8.2' clearly and concisely summarizes the main change: raising the minimum PHP version requirement to 8.2 across the entire project.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/php-82-minimum

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@superdav42 superdav42 added the origin:interactive Created by interactive user session label Jun 11, 2026
@github-actions

Copy link
Copy Markdown

🔨 Build Complete - Ready for Testing!

📦 Download Build Artifact (Recommended)

Download the zip build, upload to WordPress and test:

🌐 Test in WordPress Playground (Very Experimental)

Click the link below to instantly test this PR in your browser - no installation needed!
Playground support for multisite is very limitied, hopefully it will get better in the future.

🚀 Launch in Playground

Login credentials: admin / password

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
composer.json (1)

33-83: ⚠️ Potential issue | 🟡 Minor

Verify PHP 8.2 dependency compatibility in composer.json (with extension requirements)

  • Dependencies resolve cleanly against the PHP 8.2 platform constraint (no PHP-version constraint conflicts).
  • Composer resolution fails unless PHP extensions are enabled:
    • remotelyliving/php-dns requires ext-intl
    • mpdf/mpdf requires ext-gd
  • Ensure intl and gd are present in CI/deployment environments running composer install/update, otherwise the “PHP 8.2” change won’t be usable in practice.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@composer.json` around lines 33 - 83, composer.json declares PHP 8.2 but two
required packages need PHP extensions that CI may not have; ensure ext-intl and
ext-gd are present or handled: update CI/deployment images and composer config
to require those extensions (ext-intl and ext-gd) so composer resolution
succeeds with remotelyliving/php-dns and mpdf/mpdf, or add platform-check/extra
notes and/or replace those packages with alternatives that don't need the
extensions; specifically verify and add ext-intl and ext-gd to the environment
used for composer install/update and, if desired, add them to composer.json
require section to make the dependency explicit.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@inc/class-requirements.php`:
- Line 39: The repo still contains many textual and conditional references to
PHP 7.4; update them to reflect the new minimum PHP >= 8.2 by changing the class
property public static $php_version (inc/class-requirements.php) and
composer.json as the source of truth, then edit all remaining docs and comments
(README.md, CONTRIBUTING.md, AGENTS.md,
views/site-exporter/self-boot/readme.txt,
tests/WP_Ultimo/Site_Exporter/Self_Boot_Builder_Test.php) to say “PHP 8.2” or
“PHP 8.2.0+” and update any badges and phrases like “7.4”/“7.4.30” accordingly;
also update runtime checks that call version_compare(..., '7.1.0') or similar
(e.g., in mu-migration code) to compare against '8.2.0' (or use the $php_version
constant) so logic and messaging are consistent.

---

Outside diff comments:
In `@composer.json`:
- Around line 33-83: composer.json declares PHP 8.2 but two required packages
need PHP extensions that CI may not have; ensure ext-intl and ext-gd are present
or handled: update CI/deployment images and composer config to require those
extensions (ext-intl and ext-gd) so composer resolution succeeds with
remotelyliving/php-dns and mpdf/mpdf, or add platform-check/extra notes and/or
replace those packages with alternatives that don't need the extensions;
specifically verify and add ext-intl and ext-gd to the environment used for
composer install/update and, if desired, add them to composer.json require
section to make the dependency explicit.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: be9d61a0-1ce5-42ae-8eec-39febd572b14

📥 Commits

Reviewing files that changed from the base of the PR and between 6b02775 and f4047c3.

⛔ Files ignored due to path filters (1)
  • composer.lock is excluded by !**/*.lock
📒 Files selected for processing (7)
  • .github/workflows/addon-integration-test.yml
  • .github/workflows/e2e.yml
  • .github/workflows/release.yml
  • composer.json
  • inc/class-requirements.php
  • readme.txt
  • ultimate-multisite.php

Comment thread inc/class-requirements.php
@github-actions

Copy link
Copy Markdown

🔨 Build Complete - Ready for Testing!

📦 Download Build Artifact (Recommended)

Download the zip build, upload to WordPress and test:

🌐 Test in WordPress Playground (Very Experimental)

Click the link below to instantly test this PR in your browser - no installation needed!
Playground support for multisite is very limitied, hopefully it will get better in the future.

🚀 Launch in Playground

Login credentials: admin / password

@superdav42

Copy link
Copy Markdown
Collaborator Author

CLAIM_RELEASED reason=worker_complete runner=superdav42 ts=2026-06-11T22:07:24Z aidevops_version=3.20.55 opencode_version=1.17.3

@github-actions

Copy link
Copy Markdown

🔨 Build Complete - Ready for Testing!

📦 Download Build Artifact (Recommended)

Download the zip build, upload to WordPress and test:

🌐 Test in WordPress Playground (Very Experimental)

Click the link below to instantly test this PR in your browser - no installation needed!
Playground support for multisite is very limitied, hopefully it will get better in the future.

🚀 Launch in Playground

Login credentials: admin / password

@superdav42

Copy link
Copy Markdown
Collaborator Author

CLAIM_RELEASED reason=worker_complete runner=superdav42 ts=2026-06-11T23:23:08Z aidevops_version=3.20.55 opencode_version=1.17.3

@superdav42

Copy link
Copy Markdown
Collaborator Author

CLAIM_RELEASED reason=worker_complete runner=superdav42 ts=2026-06-12T00:44:53Z aidevops_version=3.20.55 opencode_version=1.17.3

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

origin:interactive Created by interactive user session

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant