This morning I tried to run some unit tests, and to my surprise it failed
with an error that PHPUnit 3.7.0 is now required. This was apparently done
in Gerrit change 105920[1] in response to bug 59759.[2]
Grepping through 1.23wmf10 finds the PHPUnit function complained about in
that bug in only a few extensions (Diff, EducationProgram, DataTypes). I
ran unit tests against various extensions that I have locally installed,
and core, AntiSpoof, cldr, FlaggedRevs, Gadgets, GeoData, Math, OAuth,
ParserFunctions, Scribunto, and TitleBlacklist all appear to work fine in
3.6.10. TemplateData uses another 3.7-only function
(assertJsonStringEqualsJsonString), which is also used in one test in
EventLogging.
The problem here is that Ubuntu's upcoming 14.04 Trusty Tahr, as well as
Debian unstable (sid), currently contain PHPUnit 3.6.10.[3][4] It seems to
me that requiring our developers to manually install a different version of
phpunit is instead going to make it even less likely for developers to
write or run tests, and will make it that much more difficult to fix tests
if they break.
Is there anything in 3.7 that we actually need? The problematic functions
seem to just be additional asserts that could probably be worked around. Or
is there any hope that Debian and/or Ubuntu will upgrade PHPUnit any time
soon?[5]
[1]:
https://gerrit.wikimedia.org/r/#/c/105920/
[2]:
https://bugzilla.wikimedia.org/show_bug.cgi?id=59759
[3]:
http://packages.debian.org/phpunit
[4]:
http://packages.ubuntu.com/phpunit
[5]:
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=697343
--
Brad Jorsch (Anomie)
Software Engineer
Wikimedia Foundation