For the last ~year, I have been a maintainer of Catch2 test framework, and I have decided to write about how that came to be.

I started using Catch for my code well over two years ago. At the time I liked the idea of having my code tested, but experience with CppUnit at work meant that I did not want to actually test my code because there was too much ceremony involved. Then I saw Phil Nash's presentation at CppCon 2015 and found a solution to my problem: a test framework that can be set up with minimal ceremony and where I can intersperse implementation code and test code.

Soon after, all of my little projects have had unit tests.

A year or so later, I ended up redesigning my university's C++ course. The primary goals were to start teaching C++14 (previously the course taught C++98) and to provide our students with enough opportunity to practice coding. To that end, we changed how homework worked and started giving out more automatically-graded ones, with one significant change: students have access to all tests that will run against their code beforehand.

The tests are, of course, written in Catch.

As we used Catch, we ran into various deficiencies and bugs. We fixed them and attempted to upstream them. However, at this time the Catch project was halfway dead: Phil did not really have time to maintain it and keep up with issues and PRs. Around that time, he appeared on a CppCast episode, talking about his plans for Catch 2. I expressed my issues with the current state of Catch in the accompanying reddit thread and Phil, and I got talking...

After Christmas, I ended up with commit rights and began clearing out the backlog of work on Catch. Since then, I saw Catch through 18 releases, including a modernising from C++98 to C++11, made over 400 commits and, I think, generally improved it in all areas.

Moral of the story: Most of the time, people respond well to questions and constructive suggestions, so if you want to involve yourself, just reach out and talk to people.