Hello internals folks!

As you may already know, run-tests.php is an old legacy app that is in
serious need of a refactor. Some things that are badly needed amongst other
things are:

- Better maintainability
- Unit tests
- Concurrency
- Prettier output

I have seen numerous attempts of rewriting run-tests from scratch after
some rallying at a UG or PHP conference only to see the initial excitement
die off. The general advice for refactoring legacy apps is to not start
with a clean slate, rather refactor a little bit at a time. We should treat
run-tests as we would any other legacy app.

We need a structured process to allow the run-tests app to get refactored a
little bit at a time. I propose the following (open to discussion of
course).

1) Create a new run-tests karma with access to php-src.git/run-tests.php
(and hopefully the soon-to-be created php-src.git/run-tests folder).

2) Elect 2-3 people and grant the new run-tests karma to them. They will
champion the PR's that incrementally improve run-tests.

3) The new run-tests champions (we'll call them "champions" because, why
not?) will run the entire test suite ensuring that the refactor didn't
inadvertently break the functionality and if all good, merge. (We might be
able to get a solid Docker container or an automated CI process for an
end-to-end test - thoughts?)

4) The run-tests champions could be elected for a year-long term with the
possibility of being reelected for another year commitment. This would help
prevent run-test champion drop-off (because sometimes, life happens).

Once we get a process in place, I've drafted up a possible proposal of next
steps to get run-tests refactoring kicked off:

https://github.com/SammyK/run-tests#proposed-refactoring-path

It's time to circle the wagons on run-tests! :)

Thanks,
Sammy Kaye Powers
sammyk.me

230 S Clark St #194
Chicago, IL 60604

Reply via email to