Page MenuHomePhabricator

`composer test` in MediaWiki core doesn't work like it does in other repositories
Closed, ResolvedPublic

Description

There is a general expectation that composer test will also work for MediaWiki core, just like it does in every other repository. But because core is so big, CI has a special system for it so it doesn't lint everything on every patch. We should switch that to a different entrypoint, and then repurpose composer test for humans.


If I do:

$ composer lint

It doesn't work, as the command it does is parallel-lint --exclude vendor which doesn't specify what directory.

I tried adding a dot to the end, which didn't seem to work as it had lots of red x's. But it was progressing really slowly so I ended up killing the process before it finished

Event Timeline

I had this issue as well and it is quite annoying.

On Gerrit @Arlolra wrote:

It sounds like I'm doing it wrong by expecting to be able to just run composer test

I replied:

I think your expectation is reasonable given that's how it works for all other repos, but when I set this up linting everything, especially PHPCS, was just too slow.

I think getting "composer test" to work, albeit slowly, is a good idea because it'll bring it in line with everything else (IIRC there was some LibUp bug because of this too), but it'll require some migration time, because we'll have to add a new entrypoint (e.g. composer test-some in line with what James suggested), switch CI over to it, then repurpose composer test.

Legoktm renamed this task from `composer lint` in mediawiki core doesn't work to `composer test` in MediaWiki core doesn't work like it does in other repositories.Feb 12 2021, 11:25 PM
Legoktm updated the task description. (Show Details)

OK, yeah, let's add composer test-some and migrate things.

Change 663917 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[integration/quibble@master] CoreNpmComposerTest: Run composer test-some with paths

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

Change 663918 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/core@master] composer: Provide test-some job for CI

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

Change 663919 had a related patch set uploaded (by Jforrester; owner: Jforrester):
[mediawiki/core@master] composer: Make test run for the whole repo

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

Change 663953 had a related patch set uploaded (by Reedy; owner: Jforrester):
[mediawiki/core@REL1_35] composer: Provide test-some job for CI

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

Change 663918 merged by jenkins-bot:
[mediawiki/core@master] composer: Provide test-some job for CI

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

Change 663954 had a related patch set uploaded (by Reedy; owner: Jforrester):
[mediawiki/core@REL1_31] composer: Provide test-some job for CI

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

Change 663954 merged by jenkins-bot:
[mediawiki/core@REL1_31] composer: Provide test-some job for CI

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

Change 663953 merged by jenkins-bot:
[mediawiki/core@REL1_35] composer: Provide test-some job for CI

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

Change 663917 merged by jenkins-bot:

[integration/quibble@master] CoreNpmComposerTest: Run `composer test-some` with paths

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

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

[integration/quibble@master] Release Quibble 0.0.47

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

Change 685502 merged by jenkins-bot:

[integration/quibble@master] Release Quibble 0.0.47

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

So, if I understand correctly, current status is that CI is running composer test-some <paths> now, but we haven't patched core's composer.json so that composer test Just Works like we expect. But it should be safe to do that now because CI doesn't use composer test any more?

It would also be nice to run phpunit from composer test as well, which is another oddity that core has.

So, if I understand correctly, current status is that CI is running composer test-some <paths> now, but we haven't patched core's composer.json so that composer test Just Works like we expect. But it should be safe to do that now because CI doesn't use composer test any more?

Yes, https://gerrit.wikimedia.org/r/c/mediawiki/core/+/663919 just needs merging.

It would also be nice to run phpunit from composer test as well, which is another oddity that core has.

That's a whole other thing. :-) But yes.

Change 663919 merged by jenkins-bot:

[mediawiki/core@master] composer: Make `test` run for the whole repo

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