Page MenuHomePhabricator

Add a phan job to gated extensions/skins and core testing each change with all of them
Open, Needs TriagePublic

Description

Right now we test PHPUnit, npm, and selenium tests from all gated extensions against all changes, but we don't do the same for phan, which means changes like https://gerrit.wikimedia.org/r/c/mediawiki/core/+/701074 can break the build for gated extensions.

We can fix this by adding (yet another) job running this change with all the other gated extensions together in the gate-and-submit branch, like we do with the 'wmf-quibble' jobs.

Event Timeline

I'm not sure if it's doable... The main potential issues I can think of are:

  • It might need A LOT of time and memory
  • We need to make sure that vendor dirs are only parsed once
  • Different repos have different configs
  • More code to analyze means that phan will end up analyzing some methods in a different order, which is going to have a noticeable effect on analysis result

And there's certainly more.

What would work is to loop over the gated extensions and, for each of them, run its phan job. This would be even slower and pretty lame, but at least it shouldn't suffer from the other issues.