Skip to content

9.0.0: Drop support for PHP < 7.2 and clean up things

No due date 83% complete
  • switch to a current coding standard (PER2) to make the code more readable and consistent with other projects
  • create a class diagram (in Mermaid embedded in Markdown) to help us understand the system
  • make the code coverage publicly visible, add a link or badge from the README to the code coverage reports, and have a tool report the effects of PRs on th…
  • switch to a current coding standard (PER2) to make the code more readable and consistent with other projects
  • create a class diagram (in Mermaid embedded in Markdown) to help us understand the system
  • make the code coverage publicly visible, add a link or badge from the README to the code coverage reports, and have a tool report the effects of PRs on the code coverage numbers
  • comb through the existing tests, make them more fine-grained, clean them up and divide them into unit tests (which test only one class at a time) and functional tests (which test the whole system)
  • add proper dedicated getters and setters to OutputFormat and drop/deprecate the dynamic property accesses and magic methods
  • add more basic unit tests so we have at least the basic functionality covered
  • announce on social media that we are looking for more contributors (and possibly co-maintainers, if the collaboration is constantly good)
  • add a Composer script to re-create the class diagram
  • automate the Doxygen-generated documentation
  • go through the open PRs one by one, from old to new, decide if we want to have it at all, and re-create it with good test coverage (and then merge it)
  • go through the open tickets and categorize or close them
  • fix the bugs reported in the tickets
  • drop usage of mb_* methods
  • add logging
  • drop the switch for the lenient mode and instead use the behavior that matches what browsers do
  • use PHP 7.2 language-level code features (using Rector)
  • add native type declarations (using Rector)
  • do some automated code cleanup (using Rector)
  • raise the PHPStan levels one by one and fix all warnings
  • set up mutation testing using Infection, go through the findings, and add test for the most important missed things
  • add a PHPStan extension for cognitive complexity and refactor the code to be easier to grok
  • rename internal things (including parameter names) to ditch the Hungarian notation
  • make the types less ambiguous and more strict
  • find and fix the worst performance bottlenecks
  • every now and then test the latest development version with Emogrifier
  • release version 9.0.0