Why I'm Retiring From Opensource

July 7, 2024

Some time ago I received an invitation to appear on a podcast. The team at Ruby Rogues had heard about my work on super_diff and shoulda-matchers (two of my most starred and most maintained repos), and wanted to know, would I like to come on the show and talk about it?

After much deliberation, I decided to take the interview. On the scheduled day and time, I joined the call… and from the first moment, it was an absolute dud. I could tell that the host hadn’t done a lot of research on me, but in fairness, I hadn’t prepared very much, either. I had just gotten out of a meeting at work, and I had a lot to get done that day. I certainly was not in the headspace to spend an hour waxing poetic about my work or career. The host exhausted his list of questions rather quickly, I said thank you, and that was it.

The thing is, I could have predicted this outcome. When I got the invitation, I was flattered, but also confused. I’m not much of a Rubyist anymore. I’ve worked for a company that uses JavaScript exclusively for a few years now, so day to day, I don’t use my own gems anymore. And as much as I don’t like to admit it, I’m not much of a maintainer, either. I resigned from shoulda-matchers a year ago, and aside from merging some contributors’ PRs four months ago, I’ve hardly touched super_diff in a year.

There was a time where I would have felt guilty about this situation. There are people out there using my creations to do their work, I would have said to myself, and I’m completely neglecting them.

But over the past several months, and increasingly over the past few weeks, I’ve let go of this thinking. I’ve been going through a ton of life changes, and I have a lot less free time than I used to. I’ve had to re-evaluate what sorts of activities and endeavors spark joy and which ones don’t. Maintaining my opensource projects once served a purpose in my life, but now it’s just a burden, and I have more fulfilling things I’d like to do instead.

What this means is that I will no longer be accepting any further contributions on my public GitHub repos for the foreseeable future. However, I am also going one step further.

I’ve come across too many repos whose last commit was several years ago and where one of the top issues has the title “Is this project abandoned?” I don’t want to keep people wondering. To address this, I could leave a simple announcement on each repo communicating my intentions and walk away. But I fear that people would still try to submit feature requests and file bug reports. I don’t like that solution: not only would I allow others to have false hope about whether I will return, but I would also set an emotional trap for myself that I will inevitably walk into when I glance through my repos. Both seem unnecessary.

So, for more popular projects like super_diff, in order to fully close the book, I am not only discontinuing their maintenance, but I am also archiving their repos. If you would like to make changes, you are free to do so in a fork. I am also open to handing over the keys to another maintainer (but serious inquiries only, please).

I understand that this may be an extreme change for some, but I feel that this plan works best for me at this point in time. If you want to contact me, you can email me here. Thanks for reading!