Open
Description
This is what I think must be done:
- Add PHP 8.3 to the CI of the track and allow it to fail CI Add PHPUnit 10 and PHP 8.3 #656
- Add PHPUnit 10 to the CI of the track and allow it to fail CI Add PHPUnit 10 and PHP 8.3 #656
- Fix the problems that occur with PHP 8.3 and PHPUnit 10
- Performance degrades when using PHP 8.3 CI Add PHPUnit 10 and PHP 8.3 #656
-
XDEBUG_MODE=off
solves this issue (XDebug is "more active" in default mode than before)
-
- Performance degrades when switching from PHPUnit 9 to 10
-
XDEBUG_MODE=off
required to get CI passing without timeouts (in CI Add PHPUnit 10 and PHP 8.3 #656) - Timeouts for "robot-name" exercise during
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 Test timeout issues #683
-
- Add a CI test to catch tests that would fail due to the runtime limit set by Exercism infrastructure. Uses
timeout 54s <command>
as a process based limit per exercise (3x 18 seconds, see forum for calculation details) Test timeout issues #683
- Performance degrades when using PHP 8.3 CI Add PHPUnit 10 and PHP 8.3 #656
- Prepare the PHP test-runner to upgrade to PHP 8.3 / PHPUnit10. Use
XDEBUG_MODE=off
for performance reasons. Upgrade to PHP 8.3 and PHPUnit 10 php-test-runner#105 - Prepare the PHP representer to upgrade to PHP 8.3. Use
XDEBUG_MODE=off
for performance reasons Coordination: Prepare for students code using PHP 8.3 php-representer#155 - Do the actual switch to PHP 8.1 - 8.3 and PHPUnit 10 as the production versions Upgrade track to PHP 8.1 - 8.3 and PHPUnit 10.5 #704
- Merge test runner upgrade PR
- Update student facing documentation
- Remove PHP 8.0 / PHPUnit 9 from CI, add PHP8.1/8.2 to PHPUnit10 workflow
Post-upgrade to modernize further:
- Merge Add State of Tic-Tac-Toe Exercise #651 (requires PHP >= 8.1)
- PHPUnit attributes, not annotations (annotations are deprecated, but still available)
- Update test generator to produce attributes not annotations
- Convert tests from annotations to attributes. Use
rector/rector
for that
- Revert performance workaround in "robot-name" exercise (requires PHPUnit >= 11)
In 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.
Metadata
Metadata
Assignees
Labels
No labels