Hacker News new | past | comments | ask | show | jobs | submit login

I'm fairly sure that it's possible to be a maintainer and not have to bend over backwards for some imagined "community". For the most part you can just accept patches, make decisions regarding the scope of the project and help with development on a best-effort basis.

The default reply to a feature request should be "patches are welcome". If the software is useful, people won't hesitate to contribute fixes.




> I'm fairly sure that it's possible to be a maintainer and not have to bend over backwards for some imagined "community"

In recent years I’ve noticed more than a couple projects that have been aggressive about building a community, but uninterested in accepting patches or fixing bugs themselves. It’s frustrating when the GitHub project has prominent links to join their Discord and the author is constantly pushing their project on social media, but then you open the Issues and see 2-3 year old simple issues with multiple pull requests from people desperate to fix it, but the maintainers aren’t actually interested in anything other than collecting more GitHub stars and expanding their community.


Great take. You can't have it both ways - "let's build a community lalala!" but hostile and rejecting of the majority of issues and pull requests.


Yeah I agree with this. You can only do want you can do and what you want to do. If there's more than you can or want to do - either pass it over to someone who wants to do it or don't do it.

If people really want something beyond you means / energy they can submit a PR for it or fork your project.

If you're tired of replying to everyone simply have a bot close duplicate issues and let people discuss among themselves in a forum to provide peer assistance.

If its your baby and while you want to open source it you don't have any energy or desire to provide support/maintenance - just lock creating issues all together (not ideal, but if people have a community forum they'll be fine).

If you're the only person that can review/fix/maintain something then you're part of the problem, not the solution and you might need to hand over to a wider audience or flat out remove yourself as a maintainer.


"Yeah I agree with this. You can only do want you can do and what you want to do"

"If you're the only person that can review/fix/maintain something then you're part of the problem, not the solution and you might need to hand over to a wider audience or flat out remove yourself as a maintainer."

How do those 2 parts go together?

Because the first part is correct, I don't need to do anything. But if I open source something, meaning making a gift to the world, I totally can choose to maintain with as little effort as I want to. I also don't have to provide a forum - that is a project in itself and comes with legal liabilities.


If you’re the only person - and it’s just one of your projects - it doesn’t matter. It’s just a problem if you one person in a group of maintainers of shared code.

Usually a forum comes with your VCS tooling (GitHub / GitLab etc…) for free.


It is also a problem, if people use my code for their stuff - and run into problems, that I for whatever reasons won't fix in time. But not my problem. Unless I make it mine.


> If you're the only person that can review/fix/maintain something then you're part of the problem, not the solution and you might need to hand over to a wider audience or flat out remove yourself as a maintainer.

There's really no need for that. An active fork will eventually show up if people care enough. If it keeps improving, it becomes the new upstream and the original gets left behind. That's the way it should be.


> patches are welcome

That can get tiresome quite quickly. Sometimes you do submit patches but they still don't give you the time of day. Sometimes they don't actually want your code. Sometimes they only accept code from some inner circle you're not part of. You might end up wasting a lot of time only to hit these walls and end up with zero results to show for your efforts. Then one day you might discover that the maintainer committed some suspiciously similar feature to the repository all by himself.

People gotta stop acting like submitting code somehow elevates us above simple users. It really doesn't.


Yeah of course, if someone has sent a patch I would consider it a duty of the maintainer to review it, maybe rework a little if needed and commit with the necessary attribution. But I don't think it's the end of the world if a patch isn't accepted by the upstream. Assuming the pace of development isn't too fast it is not too much effort to maintain a friendly fork and occasionally rebase it.

There is a fundamental difference between the duties of a maintainer and a developer. Just because some people are both doesn't mean they are the same thing.


And that's what makes it not neccessarily less work at all to say "patches welcome", if you take that approach.

Reviewing patches is real work, and often turns into mentoring/helping/directing the code, if you want to keep the software from turning into a ball of mess.

(Or saying "no, patches not welcome for this one we won't be doing it", or "not unless you can find an elegant way to implement it, according to me")

I don't find that reviewing patches (with all it entails as above) is often even less work than doing it yourself.


> I don't find that reviewing patches (with all it entails as above) is often even less work than doing it yourself.

And that's why it's offensive when you request some feature but they just brush you off by saying "patches welcome". Let's say you show up with a patch. Now they'll engage with you, right? Nope. They can just as easily brush you off.

Maintainers know their projects and could have gotten it done in a fraction of the time it takes external contributors to do it. Truth is they probably don't really care about your feature or your contribution. Instead of just saying that they don't want it, they put up these barriers in order to subtly tell people to go away.

Wouldn't be so bad if it wasn't for the generally dismissive attitude. You ask for something, they imply it's beneath them and pretty much challenge you to show them the code. Does it mean they are prepared to accept your code should you rise up to their challenge? No.


I agree and disagree with you.

* If people really don't want the feature and don't have time to review/work with you on a patch, they SHOULD just say so, instead of saying "patches welcome". Part of this is cultural, it's hard to say no.

* The other end of this bargain is we have to accept a "no", have to realize that the reason the package is good is because the maintainers keep it from becomming spagetti by saying no sometimes too, and by making priorities.

* EVEN THOUGH it can take maintainers time to work with a patch, there is STILL reason to ask for a patch. Sometimes it WILL take LESS time. But ALL the time it's part of how you develop new collaborators -- the person you work with on a patch may later be a co-maintainer or later take over as maintainer. You are increasing the bus factor by mentoring additional developers in the project.


If the patch works for you, then the time is not wasted. In JS I ecosystem applying personal patches is easy with patch-package.


If they said they are welcome, it means they are.

Of course if your patch breaks the entirety of the testsuite (it has happened to me) and you get angry when you get asked to fix it… well not a big problem to lose such a contributor.


> If they said they are welcome, it means they are.

No. Talk is cheap, actions speak louder. It's incredibly easy to brush off users with that patch talk. Actually working with the people who do provide those patches? That takes some serious effort from the maintainer: evaluating and testing their contributions, providing constructive feedback, making sure they are credited, generally helping them help you so that they can accomplish their goals without compromising your goals.

When you straight up challenge someone to show you the code and they respond by doing just that, it reflects very poorly on maintainers if they can't even muster a reply.


> Actually working with the people who do provide those patches?

Patches welcome means "Send me a patch and I can run git am", not "let me teach you".


Really? Just a git command, a button press on GitHub? So why don't they just do it? Why don't they apply the patches when people send the code in then?

Turns out it's actually pretty difficult to get people to run that command. Once I reported a bug and sent the fix. Something like a month later the guy just rewrote the patch without even engaging with me. Yeah, that made me feel like shit. Another patch I sent was a simple feature. This time I made sure to ask if there was anything wrong with the code. Some refinements were suggested and I was even told I could expect it to get merged. It's still languishing there unmerged in the mailing list over a year later despite multiple follow ups.

Sorry but maintainers don't have the moral superiority to demand free labor if that's how they treat people when actual code is written and sent in. I'd rather have a Linus Torvalds type shit all over my code and me personally than be treated like that. I never expected them to teach me but I absolutely did expect them to merge the code I wrote if they didn't have any objections to it.

I've had many great experiences in open source that offset all that, one such maintainer even commented in this thread. The brain never forgets the negative experiences though. It's a survival mechanism that stops us from stepping on the same nail twice.


> Really? Just a git command, a button press on GitHub? So why don't they just do it? Why don't they apply the patches when people send the code in then?

Because the patch was bad.

> Something like a month later the guy just rewrote the patch without even engaging with me.

Do you think he'd have done that if the patch was good? Was his version completely identical to yours?

> Yeah, that made me feel like shit

At least it didn't introduce a new bug to every user… I'm sure collective feelings of the userbase were less harmed in this case.

> Sorry but maintainers don't have the moral superiority to demand free labor

But you have the moral superiority to demand free labour from maintainers, to review, improve, test your patch?

Look at this pull request for example: https://github.com/ltworf/localslackirc/pull/387

How could a thing like that be merged?

When asked to split it, he just proceeded to open tens of pull requests that were all based on the previous one, in a chain. And every commit contains thousands of lines of unrelated changes with what the description is.

Then he got upset.


> Because the patch was bad.

> Do you think he'd have done that if the patch was good?

Who knows? You posted an example where you explained your rationale for not merging. You told the guy exactly what was wrong, he just refused to listen. I didn't get the same courtesy.

Maybe he didn't want my name to show up in the commit log. Maybe he just hated my guts. Could be anything. I don't know why the other patch wasn't merged either. Maybe they discussed it on IRC or something and decided against it. Maybe they forgot about me. Who knows.

> But you have the moral superiority to demand free labour from maintainers, to review, improve, test your patch?

You're the maintainer. If there's a problem or deficiency, people generally just create issues in the tracker and leave it at that. You asked for the code. You actually got the code. Now we ask you to do your part which is reviewing the code on its merits and letting us know what you think of it. If it's accceptable, then merge it. If not, then let us know why so we can make it acceptable to you.

That's exactly what you did in your example PR so I'm not even sure why we're disagreeing here.

> How could a thing like that be merged?

I wouldn't have merged that either. Nothing wrong with your conduct. He did not address the issues blocking the merger. When maintainers give me feedback like that, I take it seriously and address the issues raised. I try very hard not to submit shoddy work to begin with.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: