zlacker

[return to "The Rust project has a burnout problem"]
1. markph+H4[view] [source] 2024-01-17 13:10:46
>>Philpa+(OP)
This is a good description of what life is like working on almost any significant open source project. The only thing not included was the comments from overly entitled users that saps whatever morale and energy you have left. Probably best he did not include that though as that is what all discussion would be about.

I am not sure what to do about the burnout problem. The way he described it is very on point though. Since everyone working on the project is overloaded there is a great feeling of things only get done if you do them.

Most of my open source work was in the pre-GitHub days when we used mailing lists, not pull requests, to build community. I do think there was something better about that for the project itself as it encouraged a lot more discussion and community building. PR's and Issues become silos and are not great for general discussion. I think they also encourage drive-by contributions which honestly are intoxicating initially but once you see people are not coming back become defeating.

◧◩
2. sph+G8[view] [source] 2024-01-17 13:32:09
>>markph+H4
> This is a good description of what life is like working on almost any significant open source project.

Open contributions project.

An open source project does not necessarily have to accept random contributions, issues or hatemail from the general public. [1] They just need to make the source available with a permissive licence, period.

I believe that Linux with its idiosyncrasies in its communication model (mailing list vs the ease of Github, strong dictator running the show) works as a great filter from entitled users, and that's an underrated feature in open source. See also sqlite.

---

1: Yet hell will freeze over before Github lets maintainers turn off the PR tab which would lessen this problem a bit.

◧◩◪
3. jackcv+ml[view] [source] 2024-01-17 14:31:12
>>sph+G8
Github marketplace has a close pull request action[1].

You also need to close issues after a set amount of inactivity[2].

If there is a bug without a CVE, or a feature someone wants fixed that users don't want to submit a fix for themselves AFTER it has been discussed with the maintainer in an issue with a replication or strawman proposal and the owner has created a draft pr and asked you to work on it, it probably needs to come with a Patreon donation[3]. This can help alleviate maintainer burnout by allowing the maintainer to hire someone to make the contribution.

A software shop wouldn't operate without some kind of iterative plan. Large open source projects with single maintainers shouldn't either. Scheduling 1 or 2 hours a week for issue triage, hosted in an online meeting, and limiting WIP in terms of open PRs to be discussed during this triage meeting should allow for both community interaction and strong governance for the project and prevent burnout for the maintainer.

All of this can be placed into the Readme or Contributor guide and a CLA that contributors have to sign.

Otherwise, people can fork and maintain the project themselves.

If you want to prevent flame wars, or demotivating comments, something like a comment sentiment analysis app[4] might even be a good idea to add to your project. There are plenty of models available that you can delegate to for this in the wild, and it's worth automating moderation to prevent burnout.

Finally, really toxic users can and should be banned[5]. It's not worth it to deal with anonymous negative contributors all the time.

1. https://github.com/marketplace/actions/close-pull-request

2. https://github.com/marketplace/actions/issue-triage

3. https://github.blog/changelog/2023-10-03-sponsor-projects-th...

4. https://github.com/marketplace/comment-sentiment-analyzer

5. https://docs.github.com/en/communities/maintaining-your-safe...

◧◩◪◨
4. delfin+GS[view] [source] 2024-01-17 16:53:03
>>jackcv+ml
The point is Close Pull Request shouldnt be an action. It's should only be a bool in some database column for project settings that turns off the entire functionality.
[go to top]