The Second Maintainer, by Ethan Hawksley
3: Public Pressure
Fast-forward five months to April 2022, and XZ Utils was the busiest it had been in years. Lasse and Jia were working through the backlog of bugs and feature requests. Jia prepared another patch for Lasse that allowed users to easily control the steps taken in compression. This idea had been long requested and served as another incremental improvement.
When Lasse went to check the mailing list, an email had arrived from a new, opinionated developer, Jigar Kumar. He criticised Jia’s latest patch, yet also complimented Jia’s high-quality code. The message signed off with a quiet lament over the pace of development. Lasse had to silently agree: despite the increased pace of development, the backlog was still sizeable. He didn’t have the time to commit fully to XZ Utils.
Jia fought back against Jigar. He quickly replied and explained how development was moving at a steady pace, given that nobody was paid to work on the project. After all, it was just a hobby project, even if the hobby project was used by millions, he believed there was no need for more urgency. He took Jigar’s feedback into consideration, acted upon one, and discarded the rest.
Jigar strongly objected to Jia’s optimism and wrote a cutting reply.
“Patches spend years on this mailing list. 5.2.0 release was 7 years ago. There is no reason to think anything is coming soon.”
Although Lasse intended to release a new version this year, he found it hard to disagree with the sentiment. He too was unhappy with the pace of XZ Utils.
Another month passed where Lasse and Jia uneventfully worked on XZ Utils. Bugs were fixed and documentation was improved - business as usual.
When Lasse next checked the mailing list, Dennis Ens - a programmer with expertise in the Java programming language - was there to greet him. He inquired about the status of XZ Utils’ port to Java.
“Is XZ for Java still maintained? When I view the git log, I can see it has not updated in over a year.”
Lasse sighed. Amongst all the work he and Jia had been putting into XZ Utils, he had neglected the Java port. Dennis was right, he should pay it more attention than he had been. He began to write a reply.
“After the latest XZ for Java release, I’ve tried to focus on XZ Utils (and ignored XZ for Java). Obviously that hasn’t worked so well either, even if some progress has happened with XZ Utils.”
He paused. How was he supposed to properly support XZ for Java? XZ Utils was neglected enough. As is, he couldn’t afford to divert attention from it. He thought of how long it took for him to reply to Jia’s emails. He continued the email.
“Jia Tan has helped me off-list with XZ Utils, and he might have a bigger role in the future. It’s clear that my resources are too limited (thus the many emails waiting for replies), so something has to change in the long term.”
Jia was the project’s hope - Lasse’s time was too infrequent for the current arrangement to continue much longer.
As spring turned to summer, Jigar remained a thorn in the side of the project. His public complaints were incessant.
“There is no reason to think anything is coming soon. Over 1 month and no closer to being merged. Not a surprise.”
Progress on XZ Utils had been going well between Lasse and Jia. Jia’s feature to add new options was almost ready to add to the main software. They developed in private, so it was no surprise Jigar complained about the seeming lack of progress.
“Progress will not happen until there is a new maintainer. Submitting patches here has no purpose these days.”
Lasse continued to ignore the messages piling up. Jigar was wrong, and while he may have been a good programmer, he was insistently impatient.
“The current maintainer lost interest or doesn’t care to maintain anymore.”
This was the straw that broke the camel’s back. Lasse cared so much about XZ Utils: it was his child, having been with him for over a decade. If the project was anybody’s, it was his.
He started to draft a response, but paused. There was a grain of truth to Jigar’s complaints. Lasse hadn’t lost interest, no, but he had lost the time to commit enough to the project. On the other hand, Jia had plenty of time. He was always punctual and had been making even bigger patches. He began to write.
The thought of finding new maintainers has existed for a long time too. Perhaps the moment after the 5.4.0 release would be a convenient moment to make changes in the list of project maintainer(s).
Version 5.4.0 was the next planned version for XZ Utils. Lasse hoped it would be ready by the year’s end. Jigar’s reply did not embody the same hope.
“With your current rate, I very much doubt we will see a 5.4.0 release this year. Why wait until 5.4.0 to change maintainer? Why delay what your repo needs?”
This was enough for Lasse. Jigar clearly wasn’t listening to what he was saying. In an attempt to appease him, Lasse sent one final email to Jigar.
“Jia Tan has been helping a lot off-list and is practically a co-maintainer already. :-) In any case, some change in maintainership is already in progress, at least for XZ Utils.”
Jigar was all out of snarky replies. Ironically, Jigar instead of Lasse seemed to lose interest in the project. He never sent another email to the mailing list.