What
Make the PHPUnit bootstrap clean on PHP 8.4 by removing duplicate custom-table installation notices and addressing actionable dependency deprecations observed during #1805.
Why
Tests pass, but noisy bootstrap output can hide real database failures and future PHP compatibility regressions. Interrupted runs can also leave the disposable test schema incomplete.
Tier
tier:standard — the investigation spans the WordPress test bootstrap, Ultimate Multisite installers, BerlinDB table creation, and pinned validation dependencies.
Files
tests/bootstrap.php
inc/class-requirements.php or the verified requirements implementation
inc/installers/ database setup paths
composer.json and composer.lock if dependency updates are required
- Focused installer/bootstrap tests
Reference pattern
Reproduce with an empty disposable wptests_ schema and XDEBUG_MODE=off vendor/bin/phpunit --filter WP_Ultimo_Main_Test. Verify installed dependency versions and local exports before changing third-party compatibility code.
Implementation steps
- Trace why custom
wptests_wu_* tables are created more than once during bootstrap.
- Make installation idempotent without suppressing genuine database errors.
- Separate WordPress-core deprecations from plugin/dependency deprecations.
- Update or patch pinned dependencies only when verified against local package source.
- Add a regression test for clean repeated bootstrap or installer execution.
Acceptance criteria
Verification
XDEBUG_MODE=off vendor/bin/phpunit --filter WP_Ultimo_Main_Test
XDEBUG_MODE=off vendor/bin/phpunit
pnpm run quality
Dependency
Blocked by #1805; begin after PR #1806 merges.
aidevops.sh v3.32.317 plugin for OpenCode v1.18.29 with gpt-5.6-sol spent 4h 26m and 539,830 tokens on this with the user in an interactive session.
What
Make the PHPUnit bootstrap clean on PHP 8.4 by removing duplicate custom-table installation notices and addressing actionable dependency deprecations observed during #1805.
Why
Tests pass, but noisy bootstrap output can hide real database failures and future PHP compatibility regressions. Interrupted runs can also leave the disposable test schema incomplete.
Tier
tier:standard— the investigation spans the WordPress test bootstrap, Ultimate Multisite installers, BerlinDB table creation, and pinned validation dependencies.Files
tests/bootstrap.phpinc/class-requirements.phpor the verified requirements implementationinc/installers/database setup pathscomposer.jsonandcomposer.lockif dependency updates are requiredReference pattern
Reproduce with an empty disposable
wptests_schema andXDEBUG_MODE=off vendor/bin/phpunit --filter WP_Ultimo_Main_Test. Verify installed dependency versions and local exports before changing third-party compatibility code.Implementation steps
wptests_wu_*tables are created more than once during bootstrap.Acceptance criteria
Verification
XDEBUG_MODE=off vendor/bin/phpunit --filter WP_Ultimo_Main_TestXDEBUG_MODE=off vendor/bin/phpunitpnpm run qualityDependency
Blocked by #1805; begin after PR #1806 merges.
aidevops.sh v3.32.317 plugin for OpenCode v1.18.29 with gpt-5.6-sol spent 4h 26m and 539,830 tokens on this with the user in an interactive session.