linting

  • Hooks arrived and the class component did not have to go

    16.8 shipped on 6 February and the migration pressure was immediate and mostly self-inflicted. What they actually solve, and what the dependency array means.

  • PHPUnit 8 and the deprecations with a deadline

    void return types on setUp, and a fatal error rather than a warning. The mechanical pass, the one it cannot do, and the assertion split that is not…

  • assertRegExp became assertMatchesRegularExpression

    8.x deprecates a set of assertions with names that were shortened years ago, and 9 removes them — so the warnings are a deadline rather than noise. The…

  • set -x is a debugger you already have

    A deploy script that failed silently in the middle is a script nobody can debug from the logs, and the fix is one line rather than a rewrite…

  • expectException replaced the annotation, quietly

    The @expectedException annotation asserts that the exception happened somewhere in the method, which passes when it is thrown by the setup rather than by the thing under test.…

  • A content security policy that does not break the site

    The header is one line. The work is finding out what it will break — which means report-only for weeks, and reading violations that are mostly not your…

  • docker-compose config prints what will actually run

    A compose file with variable substitution, an override file and an extends is not readable by inspection, and the difference between what you think it says and what…

  • Counting something that is not countable is now a warning

    count(null) returned zero, which meant a function returning null instead of an empty array produced a plausible number and no complaint. 7.2 warns. The warning is noisy on…

  • set -euo pipefail at the top of every script

    A deploy script without it continues after a failed command, so a failed composer install is followed by a successful symlink swap and a broken site reported as…

  • Trailing commas in function calls

    Arrays have allowed a trailing comma since forever and calls did not, which is why a multi-line call always produced a two-line diff when an argument was added.…