Hacker News new | ask | show | jobs
by lamontcg 1558 days ago
Once again I wish github would allow the ability to limit who could open issues and PRs in order to do development in the open with a trusted/vetted set of collaborators without being subject to every zero-effort bug report from users.
6 comments

It would be nice to make the "open source, but closed to contributions/collaborators" model like SQLite and others (lightstream, etc) follow more of a first class citizen on github.
Small sidenote: Litestream loosened their contribution policy, and they now accept bugfixes but not new features:

https://github.com/benbjohnson/litestream#contribution-polic...

You can already turn on repository interaction limits limiting issues/PRs to collaborators. It needs to be re-enabled every 6 months https://docs.github.com/en/communities/moderating-comments-a...
That isn't the same thing. It is temporary. You can also only limit to existing users (blocking only new GH users which is useless), or limit to contributors (people who have merged commits in the main branch), or limit to users with write access. I want to retain sole write access but allow issues to be cut by trusted users who have never submitted PRs or code. I also want it permanent and not temporary.
It's not the same thing, because of the flow:

- developer finds a cool project - developer consumes the cool project - developer finds opportunity for bug fix or enhancement - developer forks and starts working on the enhancements - developer spends hours/days writing code - developer submits a PR - developer gets a notification (upon filling the PR, or after, from a bot) - developer is now extremely frustrated - developer complains - maintainers and the developer start debating - the Pull Request storm goes viral - developer threatens to stop using cool project - maintainers handle the situation poorly (they are coders, not Public Relations people) - the community makes things worse

And so on...

If issues/PRs were limited to collaborators, wouldn't they not be able to submit a PR at all?
Here's how I propose a better PR flow in GitHub:

https://news.ycombinator.com/item?id=30705581

Perhaps the developer should have discussed their ideas before investing their time, if they're going to be upset about their unsolicited code being rejected.
The maintainer still has to deal with the negative interaction even if in some cosmic sense the contributor could have known better. A workflow design which ensures that such negative interactions take place is structurally flawed.
what's so negative about pressing the reject button of the PR? The maintainer doesn't have to even spend more than a second rejecting any contributions they get. They don't have to read any of the comments, nor reply to any concerns from the contributors.

The contributors aren't entitled to the time of the maintainers.

I don't understand. You have "developer forks". Everything after that is irrelevant. That's the whole point of open source.
On GitHub a fork is a lightweight thing. People fork the repo in order to contribute because they can't push to the original repo. It's not like you are philosophically against Emacs and decide to fork it to produce XEmacs.
Just as I don't understand the original comment, I also don't understand yours. You don't need to push to the original repo because open source allows you to make your fork available to others. The developer of the original has a right to decide to accept your changes or not, so I fail to see why it matters that your PR isn't accepted.
Just as I don't understand the original comment, I also don't understand yours

The way Github e.a. use forks dilutes the larger meaning of the word, that's what this thread is about. When people used to talk about forks, they always mean a community fracture over differences of opinion: gcc vs egcs, xfree86 vs xorg, ffmpeg vs libav, openwrt vs lede, glibc vs eglibc, kde4 vs trinity, gnome3 vs cinnamon vs mate.

The common-use term of "fork" on github has nothing to do with divergence of development, it's just a band-aid for lack of contributor access control. I can understand why people don't like github's use of forks, and that has nothing to do with what the license "allows" or not: if it's not a divergent development line, it's not a fork, it's a clone at best. In most cases, I'd say it's just a feature branch hosted in a different repository.

Calling something a fork implies long-term viability (or at least the intention) as an alternative to the original repo. That doesn't sound like a realistic description of most cloned repo's on Github to me.

> I fail to see why it matters that your PR isn't accepted.

Making their code useful to other people is a strong motivator for many altruistic open source developers.

The purpose of getting PRs accepted upstream is so that your changes are useful in concert with other people's changes, especially their later changes.

Your private change is of little use to others when it's only in your private fork, which hardly anyone knows about, and if they do know, your change is incompatible with later work and maintenance by other people anyway.

If you don't care whether anyone else uses your work, especially in future, that's fine. But if you want it to be more useful to others, getting it merged upstream makes a huge difference to that.

(Merging upstream or just submitting PRs that don't get merged also helps personal visibility and reputation, which is undoubtedly a motivator for many. That's a burden on upstream maintainers when someone is pushing low quality work and doesn't care to ensure it's useful to the project.)

Maintaining a fork and maintaining a single feature of a project are two different levels of commitment and you can want to do one without doing the other although all too often people want to contribute a feature and then not provide support for it and expect the project maintainer to now maintain the contributed code. But that's a different issue (and why many maintainers sometimes don't accept random PR's even if the code itself is fine).

> You don't need to push to the original repo because open source allows you to make your fork available to others.

This is simply not true - not all open source software is copyleft. You can have restrictive licensing regarding use and/or distribution and still be open source.

You don't need to use github, especially when you don't want the public making issues.
800# gorilla. don't think gitlab supports this either. that probably leaves self-hosting and all the brittleness and pain around that.
An aside, but is it a standard thing to write # to mean "pound" when you're talking about pounds as a unit of weight? Like as opposed to "800lb"? I knew what you meant, it's just I've never seen that notation before so I'm wondering if you just made it up or if I'm out of the loop somehow.
Using hash-mark to mean “pounds” goes back to 1850 at least.

https://en.m.wikipedia.org/wiki/Number_sign

A few decades ago, it was very common to see at the deli counter, in the handwritten prices on signs jabbed into lunch meats and such. And on the price signs above the vegetable bins at the supermarket. In the US, anyway.

Correct, there's no way to restrict GitLab merge requests to trusted users, while still allowing others to view merge requests. It's either visible/accessible to all, or only to project members.
GitLab can have this “feature” if the accounts are locked behind an entity like a school which doesn’t allow arbitrary users to make a new account
I'm also not enamored of the fact that you can log into Github/Gitlab/etc. with accounts from everywhere (Gmail/Facebook/Twitter/etc.).

I suspect that making someone go through the signup dance stopped a LOT of the worst level of morons.

Is there a code hosting service that allows public viewing but still forces people to sign up for an account before being able to do actions?

Where do you see the ability to open issues and pull requests by signing in with Google without creating a GitHub account?
Maybe sourcehut?
Bots that close or even delete issues where the issue template hasn't been filled in help a lot.
I'm shocked that it doesn't. What would you do if you were being harassed?
You can block specific users and you can temporarily limit all interactions if getting spammed.