Open mk-mxp opened 6 months ago
I can look into the first 3 and group them in one PR one of the next days.
The first 3 should be covered in https://github.com/exercism/php/pull/656 The PHP Test Runner PR https://github.com/exercism/php-test-runner/pull/100
The php-representer
I don't know enough about to take care of.
Update: I have looked a little into the PHP presenter, but as the tests even online, when looking into the logs are failing, it's hard to tell when the job is correctly done. So I would prefer someone with more knowledge about the presenter to handle this bit.
I don't know if it belongs in this to-do list, but still some exercises, probably older ones, have snake cases in the Stub files. I would prefer having them using camel case too, like the standard is today.
E.g. the https://github.com/exercism/php/blob/main/exercises/concept/lasagna/Lasagna.php
I haven't written documentation on this, yet: We use snake_case for functions, camelCase for methods and PascalCase for classes.
Edit: There is no "standard" defined for variable names, yet. And you may make this a separate issue, has nothing to do with PHP updates.
This is what I think must be done:
XDEBUG_MODE=off
solves this issue (XDebug is "more active" in default mode than before)XDEBUG_MODE=off
required to get CI passing without timeouts (in #656)composer ci
locally. It was not a problem at all with PHPUnit 9.6 (not even a noticable delay).XDEBUG_MODE=off
doesn't help as much as it did for other exercises. Can be solved by replacingassertArrayNotHasKey($name, $names, ...
withassertFalse(isset($names[$name]), ...
. This reduces runtime from minutes to milliseconds. Problem exists with PHPUnit >= 10.4 || < 11 #683timeout 54s <command>
as a process based limit per exercise (3x 18 seconds, see forum for calculation details) #683XDEBUG_MODE=off
for performance reasons. https://github.com/exercism/php-test-runner/pull/105XDEBUG_MODE=off
for performance reasons https://github.com/exercism/php-representer/issues/155Post-upgrade to modernize further:
rector/rector
for thatIn the whole process, try to avoid re-running the representer and not to trigger re-testing all community solutions. These are very costly to Exercism.