Page MenuHomePhabricator

Drop deprecated phpunit.php and suite.xml
Open, Needs TriagePublic

Description

The old tests/phpunit/phpunit.php entrypoint and its associates tests/phpunit/suite.xml configuration file have been deprecated as part of T90875 and some parts were removed via T227900. Developers should now use composer phpunit (or vendor/bin/phpunit directly), and phpunit.xml.dist if they need to do something explicitly with the config file. This task tracks the removal of both, as well associated functionality, from MW core.

To do:

  • Direct usages in CI (codesearch). Some of these might were kept around for REL1_39, where vendor/bin/phpunit was not yet a viable replacement, but that is now EOL.
    • quibble-coverage scripts in integration/config.git
    • Use in integration/quibble.git
      • Dropped
      • Released
  • Usages in WMF extensions/skins (codesearch)
  • MW core cleanup (codesearch). Also anything referenced by these, like dropping bootstrap.maintenance.php, and merging bootstrap.common.php and bootstrap.integration.php.

Details

Related Changes in Gerrit:
SubjectRepoBranchLines +/-
integration/configmaster+3 -3
integration/configmaster+15 -15
integration/configmaster+1 -1
integration/quibblemaster+23 -18
mediawiki/extensions/Scoremaster+2 -2
mediawiki/coremaster+10 -350
integration/configmaster+1 -1
mediawiki/coreREL1_44+4 -13
mediawiki/coreREL1_43+4 -13
mediawiki/coreREL1_39+1 -0
mediawiki/coremaster+3 -11
integration/configmaster+1 -1
integration/configmaster+1 -1
integration/configmaster+7 -1
integration/configmaster+7 -1
mediawiki/extensions/MobileFrontendmaster+0 -18
mediawiki/vagrantmaster+1 -1
mediawiki/extensions/UniversalLanguageSelectormaster+1 -1
mediawiki/extensions/CirrusSearchmaster+2 -2
mediawiki/extensions/ContentTranslationmaster+2 -2
mediawiki/extensions/Elasticamaster+1 -5
mediawiki/tools/phpunit-patch-coveragemaster+1 -1
mediawiki/extensions/GeoDatamaster+1 -1
integration/configmaster+3 -3
mediawiki/extensions/UniversalLanguageSelectormaster+2 -2
mediawiki/extensions/TranslationNotificationsmaster+1 -1
mediawiki/extensions/cldrmaster+1 -1
mediawiki/extensions/Flowmaster+1 -48
integration/configmaster+16 -12
Show related patches Customize query in gerrit

Related Objects

StatusSubtypeAssignedTask
OpenNone
OpenNone
OpenNone
ResolvedReedy
ResolvedReedy
ResolvedAtieno
ResolvedNone
ResolvedZabe
Resolvedmmartorana
ResolvedReedy
ResolvedDaimona
Resolvedkostajh
ResolvedDaimona
Resolveddaniel
ResolvedBUG REPORTkostajh

Event Timeline

There are a very large number of changes, so older changes are hidden. Show Older Changes

Change #1176721 had a related patch set uploaded (by Krinkle; author: Krinkle):

[integration/config@master] mwext-phpunit-coverage: Switch from legacy phpunit.php to vendor/bin/phpunit

https://gerrit.wikimedia.org/r/1176721

Change #1176721 merged by jenkins-bot:

[integration/config@master] mwext-phpunit-coverage: Switch from legacy phpunit.php to vendor/bin/phpunit

https://gerrit.wikimedia.org/r/1176721

Change #1178034 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/MobileFrontend@master] tests: Drop ancient bootstrap.php

https://gerrit.wikimedia.org/r/1178034

Change #1178037 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/Flow@master] tests: Drop ancient PHPUnit setup

https://gerrit.wikimedia.org/r/1178037

Change #1178039 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/cldr@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178039

Change #1178040 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/UniversalLanguageSelector@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178040

Change #1178041 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/TranslationNotifications@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178041

Change #1178042 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/GeoData@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178042

Change #1178044 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/Elastica@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178044

Change #1178045 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/ContentTranslation@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178045

Change #1178046 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/CirrusSearch@master] Update PHPUnit command in Makefile and documentation

https://gerrit.wikimedia.org/r/1178046

Change #1178047 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/vagrant@master] Update PHPUnit command in run-mediawiki-tests

https://gerrit.wikimedia.org/r/1178047

Change #1178048 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/tools/phpunit-patch-coverage@master] Avoid comment reference to deprecated suite.xml

https://gerrit.wikimedia.org/r/1178048

I made patches for all extensions, as well as development tools (plus a couple cleanup patches for things that were accidentally included in the codesearch, not tagged with this task). The only remaining thing is CI config, once that's also done we can drop the old stuff and clean up.

Change #1178037 merged by jenkins-bot:

[mediawiki/extensions/Flow@master] tests: Drop ancient PHPUnit setup

https://gerrit.wikimedia.org/r/1178037

Change #1178039 merged by jenkins-bot:

[mediawiki/extensions/cldr@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178039

Change #1178040 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178040

Change #1178041 merged by jenkins-bot:

[mediawiki/extensions/TranslationNotifications@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178041

Change #1178071 had a related patch set uploaded (by Krinkle; author: Krinkle):

[integration/config@master] quibble-bullseye-php81-coverage: Fix bad `--path-to-mw` arg

https://gerrit.wikimedia.org/r/1178071

Change #1178030 had a related patch set uploaded (by Krinkle; author: Krinkle):

[integration/config@master] jjb: Update mwext-*-coverage* jobs to quibble-bullseye-php81-coverage:1.14.2-s1

https://gerrit.wikimedia.org/r/1178030

Change #1178071 merged by jenkins-bot:

[integration/config@master] quibble-bullseye-php81-coverage: Fix bad `--path-to-mw` arg

https://gerrit.wikimedia.org/r/1178071

Change #1178030 merged by jenkins-bot:

[integration/config@master] jjb: Update mwext-*-coverage* jobs to quibble-bullseye-php81-coverage:1.14.2-s2

https://gerrit.wikimedia.org/r/1178030

Change #1178042 merged by jenkins-bot:

[mediawiki/extensions/GeoData@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178042

Change #1178048 merged by jenkins-bot:

[mediawiki/tools/phpunit-patch-coverage@master] Avoid comment reference to deprecated suite.xml

https://gerrit.wikimedia.org/r/1178048

Change #1178044 merged by jenkins-bot:

[mediawiki/extensions/Elastica@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178044

Change #1178045 merged by jenkins-bot:

[mediawiki/extensions/ContentTranslation@master] Update PHPUnit command in Makefile

https://gerrit.wikimedia.org/r/1178045

Change #1178046 merged by jenkins-bot:

[mediawiki/extensions/CirrusSearch@master] Update PHPUnit command in Makefile and documentation

https://gerrit.wikimedia.org/r/1178046

Change #1178511 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/UniversalLanguageSelector@master] Update PHPUnit command in Makefile, take 2

https://gerrit.wikimedia.org/r/1178511

Change #1178511 merged by jenkins-bot:

[mediawiki/extensions/UniversalLanguageSelector@master] Update PHPUnit command in Makefile, take 2

https://gerrit.wikimedia.org/r/1178511

Change #1178034 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/MobileFrontend@master] tests: Drop ancient bootstrap.php

https://gerrit.wikimedia.org/r/1178034

Change #1178047 merged by Daimona Eaytoy:

[mediawiki/vagrant@master] Update PHPUnit command in run-mediawiki-tests

https://gerrit.wikimedia.org/r/1178047

Change #1178034 merged by jenkins-bot:

[mediawiki/extensions/MobileFrontend@master] tests: Drop ancient bootstrap.php

https://gerrit.wikimedia.org/r/1178034

Change #1180606 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] quibble-coverage: Fix `--path-to-mw` arg for skins

https://gerrit.wikimedia.org/r/1180606

Change #1180606 abandoned by Hashar:

[integration/config@master] quibble-coverage: Fix `--path-to-mw` arg for skins

Reason:

Per Timo, it is a bit more complicated :)

https://gerrit.wikimedia.org/r/1180606

Change #1176721 had a related patch set uploaded (by Krinkle; author: @Krinkle):

[integration/config@master] mwext-phpunit-coverage: Switch from legacy phpunit.php to vendor/bin/phpunit

https://gerrit.wikimedia.org/r/1176721

We need the same patch for the mwskin-phpunit-coverage or alternatively move skins to use the same jobs (mwext-phpunit-coverage and mwext-phpunit-coverage-publish). The later will let us phase out the last mwskin prefixed jobs and fulfill T402398.

Change #1185862 had a related patch set uploaded (by Hashar; author: Hashar):

[mediawiki/core@master] tests: add skins to PHPUnit "extensions" test suite

https://gerrit.wikimedia.org/r/1185862

Change #1185925 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] jjb: switch skins coverage to mwext-phpunit-coverage

https://gerrit.wikimedia.org/r/1185925

Change #1185926 had a related patch set uploaded (by Hashar; author: Hashar):

[integration/config@master] zuul: switch skins coverage to same job as extensions

https://gerrit.wikimedia.org/r/1185926

Change #1185862 merged by jenkins-bot:

[mediawiki/core@master] tests: add skins to PHPUnit "extensions" test suite

https://gerrit.wikimedia.org/r/1185862

Change #1185925 merged by jenkins-bot:

[integration/config@master] jjb: switch skins coverage to mwext-phpunit-coverage

https://gerrit.wikimedia.org/r/1185925

Change #1185926 merged by jenkins-bot:

[integration/config@master] zuul: switch skins coverage to same job as extensions

https://gerrit.wikimedia.org/r/1185926

Change #1186436 had a related patch set uploaded (by Hashar; author: Hashar):

[mediawiki/core@REL1_39] tests: add skins to PHPUnit "extensions" test suite

https://gerrit.wikimedia.org/r/1186436

Change #1186440 had a related patch set uploaded (by Hashar; author: Hashar):

[mediawiki/core@REL1_43] tests: add skins to PHPUnit "extensions" test suite

https://gerrit.wikimedia.org/r/1186440

Change #1186441 had a related patch set uploaded (by Hashar; author: Hashar):

[mediawiki/core@REL1_44] tests: add skins to PHPUnit "extensions" test suite

https://gerrit.wikimedia.org/r/1186441

Remaining usages in CI are in quibble-bullseye-php81-coverage and mwcore-phpunit-coverage-patch; presumably both simple updates? Then removing the old syntax from phpunit-suite-edit.py and updating some comments. I think the usages in quibble need to stay for 1.39 but can be cleaned up later this year.

Change #1186436 merged by jenkins-bot:

[mediawiki/core@REL1_39] tests: add skins to PHPUnit "extensions:unit" test suite

https://gerrit.wikimedia.org/r/1186436

Change #1186440 merged by jenkins-bot:

[mediawiki/core@REL1_43] tests: add skins to PHPUnit "extensions:unit" test suite

https://gerrit.wikimedia.org/r/1186440

Change #1186441 merged by jenkins-bot:

[mediawiki/core@REL1_44] tests: add skins to PHPUnit "extensions:unit" test suite

https://gerrit.wikimedia.org/r/1186441

Reedy changed the status of subtask T403199: Formally EOL MW 1.39 from Open to In Progress.Dec 16 2025, 6:31 PM

OK, this should now finally be fully unblocked, AIUI?

OK, this should now finally be fully unblocked, AIUI?

Correct. The CI cleanup needs to happen first and I think I wasn't completely sure about a couple places; there's also some extra cleanup like removal of the --path-to-mw option. Then the MW core part should be straightforward.

Change #1226955 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: [mwcore-phpunit-coverage-patch] Switch from legacy PHPUnit entrypoint to composer

https://gerrit.wikimedia.org/r/1226955

Change #1226955 merged by jenkins-bot:

[integration/config@master] jjb: [mwcore-phpunit-coverage-patch] Stop using legacy PHPUnit entrypoint

https://gerrit.wikimedia.org/r/1226955

OK, this should now finally be fully unblocked, AIUI?

Correct. The CI cleanup needs to happen first and I think I wasn't completely sure about a couple places; there's also some extra cleanup like removal of the --path-to-mw option. Then the MW core part should be straightforward.

I've done the easy one, mwcore-phpunit-coverage-patch, which was defined inline. I'll have a poke at the other four (mwext-phpunit-coverage-patch, mwext-phpunit-coverage, mwext-phpunit-coverage-publish, mwcore-phpunit-coverage-master) later if I have time.

Change #1229739 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[integration/quibble@master] Always use `composer phpunit` for PHPUnit tests

https://gerrit.wikimedia.org/r/1229739

Change #1229756 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[integration/config@master] dockerfiles: Drop legacy PHPUnit entrypoint from quibble-coverage

https://gerrit.wikimedia.org/r/1229756

OK, this should now finally be fully unblocked, AIUI?

Correct. The CI cleanup needs to happen first and I think I wasn't completely sure about a couple places; there's also some extra cleanup like removal of the --path-to-mw option. Then the MW core part should be straightforward.

I've done the easy one, mwcore-phpunit-coverage-patch, which was defined inline. I'll have a poke at the other four (mwext-phpunit-coverage-patch, mwext-phpunit-coverage, mwext-phpunit-coverage-publish, mwcore-phpunit-coverage-master) later if I have time.

Thanks! I made patches for quibble and quibble-coverage. It seemed easy enough, but then I don't know if it actually works. Patch for core coming next.

Change #1229764 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/extensions/Score@master] README: Update instructions for running tests

https://gerrit.wikimedia.org/r/1229764

Change #1229777 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[mediawiki/core@master] Remove deprecated PHPUnit entry point, config, and bootstrap

https://gerrit.wikimedia.org/r/1229777

Change #1229764 merged by jenkins-bot:

[mediawiki/extensions/Score@master] README: Update instructions for running tests

https://gerrit.wikimedia.org/r/1229764

For mwcore-phpunit-coverage-patch, I just randomly opened a build and noticed that it fails due to the 5m timeout of composer. Switching to the direct invocation should fix that.

Change #1229739 merged by jenkins-bot:

[integration/quibble@master] Always use `composer phpunit` for PHPUnit tests

https://gerrit.wikimedia.org/r/1229739

Change #1230350 had a related patch set uploaded (by Daimona Eaytoy; author: Daimona Eaytoy):

[integration/config@master] jjb: [mwcore-phpunit-coverage-patch] Invoke PHPUnit directly

https://gerrit.wikimedia.org/r/1230350

Change #1230350 merged by jenkins-bot:

[integration/config@master] jjb: [mwcore-phpunit-coverage-patch] Invoke PHPUnit directly

https://gerrit.wikimedia.org/r/1230350

Change #1229756 merged by jenkins-bot:

[integration/config@master] Docker: [quibble-coverage] Stop using legacy PHPUnit entrypoint

https://gerrit.wikimedia.org/r/1229756

Mentioned in SAL (#wikimedia-releng) [2026-01-22T17:36:18Z] <James_F> Docker: [quibble-coverage] Stop using legacy PHPUnit entrypoint (T395470) & Stop excluding Dump/ParserFuzz/Stub groups (T415230)

Change #1230404 had a related patch set uploaded (by Jforrester; author: Jforrester):

[integration/config@master] jjb: Bump quibble-coverage: Direct PHPUnit, incclude Dump/ParserFuzz/Stub

https://gerrit.wikimedia.org/r/1230404

Change #1230404 merged by jenkins-bot:

[integration/config@master] jjb: Bump quibble-coverage: Direct PHPUnit, include Dump/ParserFuzz/Stub

https://gerrit.wikimedia.org/r/1230404