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.
I'm confident that GitHub has a good prediction on what will happen if they roll out features that lower the burden of maintaining a FLOSS repo. And am rather certain that several of these features also lower the engagement. And therefore will not be implemented. In other words: the needs and goals of GitHub/MSFT and those of Open Source maintainers don't align perfectly. Yet the power balance is way off, so open Source maintainers will experience pain to a level that they almost walk away in great numbers.
That's a useful distinction and a good term.
So in total projects can be classified as:
- Source available or not
- Open source or not (a subset of source available)
- Open contributions or not (also a subset of source available)
- BDFL or community driven
That's a lot of variation and may explain why so many conversations about open source sound like people are talking past each other-- they're talking about different kinds of projects!PS: Regarding:
> 1: Yet hell will freeze over before Github lets maintainers turn off the PR tab which would lessen this problem a bit.
I wish there was a standardized way of declaring this, I always feel so awkward writing the "no PRs" disclaimer on my toy projects.
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...
https://github.com/orgs/community/discussions/13130
https://github.com/orgs/community/discussions/65343
The feedback is overwhelmingly negative, and has severely disrupted many people's workflow, but GitHub doesn't even acknowledge the problem.
Engagement means people have you in their workflow, on their radar. I would love it if Github is something that I don't have to think of, that is invisible and out of my mind. I'd love it if it's something I never have to visit, open, see or interact with; as as little as possible. I'd love it if it were preconfigured to take work from me rather than impose yet another inbox, timeline, bookmarks, "likes" and so on.
And if you consider "advertisements" very liberal, that's exactly what Github is: a place for companies to attract eyeballs and engagement on their software.
GH is Microsoft's ploy to kill open source once and for all by facilitating burnout.
(obviously false, but entertaining to think about)
Most of the discussion is people suffering through GitHub-style social networks. I don't see a lot of people talking through each other, as much as I see people assuming this is the way, and others pointing out it's just one option.
At some point we have to acknowledge that GitHub is a toxic social network. The toxicity is way more hidden than Facebook and others like it, but it's there too. Every universalist social network is toxic.
Side benefit to overwhelming mindshare many people expect/require the other forge to have the Github feature: being different counts as negative. This reinforces.
Tailscale put it well: https://tailscale.com/blog/free-plan
> increased word-of-mouth from free plans sells the more valuable corporate plans
that brand power is worth billions.
The latest redesign is egregious to say the least.
GH annoys the shit of me by making me click more shit to get my job done, it “increases engagement”, and then… what exactly? My annoyance is supposed to lead to me… thinking about GitHub more? And thus I’ll pressure my org to use it?
This makes no sense. I hate engagement-based metrics as much as the next person but I’m not sure MS is as brain dead as to intentionally make the UX worse, to make engagement higher, and assuming that will somehow increase sales. There’s no link here.
I'm not saying MSFT is intentionally frustrating you to increase sales.
But that, where engagement drives sales, your frustrations are disregarded.
They are different links.
MSFT could easily build a toggle to disable PRs (default, enable PRs). They have these toggles for all other features already.
They don' build this, because, as many other commentors point out, the few people that would benefit from such a toggle, don't outweigh the amount of engagement, data, and usage it generates.
I merely take that a step further: there are quite certainly many features disregarded or not even conceived that would save a (small) group immense effort. Simply because MSFT has done the excel-thingies and knows that features that make people visit GitHub less often, are not positive to their sales.
That makes no sense. Say I'm an open source project maintainer who doesn't want PR's in my repo. I have to continually log in to GitHub to check the PR tab and close all active PR's (or as others have pointed out, use a bot to do this, but that's beside the point: The discussion is about why this isn't a built-in feature.)
What value does Microsoft get out of the "data" generated by me having to continually log in and close PR's? "Yup, people who don't want PR's on github log in a lot to close them". Why is that valuable? We keep talking about engagement as a thing but nobody's explaining why it matters at all for MS. "Engaging" me by forcing me to open up the website to do mundane stuff doesn't move any of MS's needles. "Usage" goes up only because I have to keep doing this mundane shit.
Here's a VASTLY more likely reason why MS doesn't want to make it easy to disable PR's: Lock-in. Microsoft wants to encourage users to use GitHub for everything involved in software engineering, end-to-end. Because if you do so, leaving GitHub becomes a lot harder, because GitHub has your PR history, your issue history, and is hosting your wiki, etc etc. This is not the same thing as "engagement", it already has a term, and that term is "lock-in". (Apropos: I consider PR discussions to be indispensably valuable in finding out why some particular line of code looks like it does: Finding the PR that introduced it and looking at the discussion is a great way to find out the motivation of the original author.)
MS does not like users that purely use GitHub as a mirror and don't use any of the GH-specific features, because those users can trivially migrate their code to another hosting provider if MS ever decides to do something silly like charge them.
Engagement makes no sense whatsoever as a motivation to not let users disable PR's. Lock-in makes perfect sense.