irdest: history of a fork


⇠ back | tags: /dev/diary, qaul | duration: 03:46 minutes

TLDR: we're forking qaul.net to irdest! This includes myself, and four other developers who have been on-and-off working on qaul in their free time over the last year. We have a new domain, have largely rebranded the existing code-base and website, and are submitting Google Summer of Code projects to find people who would like to contribute code while getting paid.

The background

If you're a regular follower of my work, you may know that I've been the lead developer of a project called qaul.net, a decentralised mesh routing application and app development toolkit. The project itself is not mine and was started around 2011; I joined it in 2016 as part of my Google Summer of Code. But I quickly took over a lot of the core planning and development aspects, and even worked on it as my full-time research job from 2019 to 2020.

In the summer of 2020, the Open Tech Fund, which was funding development on the project, was defunded, and development stopped for a few months. During this time, I was also recovering from some health issues, and needed to take a break from the project.

Where things went wrong

Software projects are social entities of the people who work on them, not merely technical problems to be solved. And while I have enjoyed my time working on qaul.net, I also feel like I can no longer overlook the problems in how the project is organised. I don't want to talk about the specifics, and I won't mention anyone by name. A lot of my issues with the project revolve around how one of the original maintainer sees the project itself, and his role compared to others who work with him.

Ultimately, social relationships, whether personal or professional, need to be rooted in mutual respect and understanding. Neither of those two are the case with regards to the original maintainer in question.

Over the last year and a half, I have repeatedly brought up issues with him, about his conduct, the way that he approached my work, and our interactions, and have tried to engage with him in conversation about our working relationship, and how we might improve it. In all of this time, I don't think that I have had a single productive conversation with him, as equals.

It became apparent to me, that working with this person would continue to negatively affect my mental health, and so I (with the help of some amazing friends!) made preparations to fork the project.

Why now?

Initially we were planning to keep this as a very soft fork. The "upstream" project wasn't really doing anything. Nobody except me was putting in code at that time, and it was a happy neutral ground where we were prepared to take the project in a different direction, but didn't need to force the issue.

Yesterday, the originial maintainer announced that qaul.net had received new funding. He e-mailed me to inform me that he had undone a bunch of work I had put in to improve our website and also removed my access from most of our infrastructure.

It became apparent that a low-key fork was no longer possible. So instead, we went ahead with some of the final rebranding we had been putting off, and are going ahead with the fork.

Why write this?

I want to work on this project, whether I get paid for it or not. I'm in the fortunate position of being able to put in time on the project while doing other jobs, or in between clients.

My main concern is not having to interact with the original maintainer in question on a regular basis, and not working in a structure which is authoritarily structured around him.

Ultimately, I'm mostly relieved. The last attempt to communicate I made was back in Novemeber, and since then I had heard next to nothing until this announcement. It is clear to me that my opinions and feelings in this matter are not of importance, and so, I feel justified to move on.

Thank you for reading. If you want to learn more about irdest: https://irde.st, and if you want to support my work directly, I have a GitHub sponsors.


Edits

  • 2021-04-04 - we changed the project name from qaul to irdest. A previous version of this page can be found in the web archive.