Hacker News new | ask | show | jobs
by fluffything 2245 days ago
I used some of their work, so I'm forever indebted to them.

However, I don't like how they treat users, potential contributors, etc.

Like, I started using sway full time, posted a question, started looking at the source code to fix it myself, and then just ended up fixing it for my fork and never pushing it upstream because the main thing I learned through my questions was that my free time is to valuable to deal with them.

Maybe 30 years ago the badge of being able to contribute to open source even though the maintainers are "super tough" meant something. But it's 2020: I want to do things in my free time that make me happy, I want to learn something while contributing to open source, and ideally learn from those who know more than me. So I'd rather just continue contributing to Rust, where everybody is super nice, those who know more teach and mentor those who know less, and in general the community is super open and reflective (e.g. the attitude is not "how come you didn't know this" but rather "which mistake did _we_ make that led you here without learning this along the way").

To me sourcehut is just a fence that keeps the kind of maintainers I don't like at the other side of the github fence.

This attitude is super harmful. Drew is just one person, and they can only do so much, and that does reflect on Sway, which is why I ended up switching back to i3.

3 comments

Someone on this thread called Drew "militant", which isn't as negative as it sounds but accurate.

I will say, having observed his interactions in a few places, he rubs me the wrong way sometimes, even though it seems his heart is in the right place. I get it, totally guilty of it myself with strongly held views.

Don't mean this as a criticism but rather as a friendly suggestion if Drew is reading, but there are a lot of situations where backing down or just a softer approach is in order, especially now that he's running a business. There are a lot of us that are interested in what he's doing, but hesitant about using his services because it isn't obvious when the it is my way or the highway approach is going to come out.

My observation is that most of the people who get projects done, in the sense that they can manage a project with many contributors over a long period of time with successful outcomes, are considered somewhere between militant and obnoxious by others. The project leaders who are all-around considered nice, like GvR and (so far) Andrew Kelly (not an exhaustive list!) are the exception, not the rule.

I do want to point that millitant/obnoxious/ahole is a very subjective judgement. Personally, I've read many of (what's considered) Linus' worst responses, and I did not find them a problem - he is not gentle, and he occasionally uses expletives, but he is factual, and drives the point through in places gentler people waste ten times as much effort, by themselves (and everyone else) to get the same result - and the result IS good.

I, for one, much prefer to be told "this is sh*t, you need to redo this" (assuming, of course, that's a good summary) than going around and around in endless deliberations about specific details.

> To me sourcehut is just a fence that keeps the kind of maintainers I don't like at the other side of the github fence.

I was with you for a while, but this goes way too far. You had a bad experience with Drew on Sway, and because Drew is responsible for Sourcehut you project this on any project using Sourcehut as its platform?

> You had a bad experience with Drew on Sway, and because Drew is responsible for Sourcehut you project this on any project using Sourcehut as its platform?

I've interacted with ~15 projects on Sourcehut, and all of them are by the same team of people maintaining Sway.

I'm not projecting to all sourcehut projects, just recollecting the experience of all sourcehut projects I've ever interacted with.

> However, I don't like how they treat users, potential contributors, etc.

What are you talking about? The mailing lists are super friendly.

I only interacted with them on Github issues in the sway repo.

The interaction was of the form: "I'm having this problem, I've looked at this, what would be the best way for me to improve this". Reply from Drew "No [issue closed]".

Then using sway, I ran into a lot of problems, and many of them were already reported, but closed issues, which closed with a similar exchange.

At some point, every time I had a sway problem, I would search for my issue on Github with the closed filter first. Finding those issues, with no rationale, workarounds, path forward, discussion of any kind....

Yeah, I just stopped using sway a while after and went back to i3. It at least worked, so I never had to interact with their community.

I'm sorry you had a bad experience with Sway. If you can be more specific, with links to issues, it would be helpful for me to learn to deal with those cases better.

It's worth keeping in mind that maintainers see a lot more issues than you do. It's likely that I've heard and declined your feature a dozen times already, or that it's part of a broader class of problems which has been heard a hundred times. Sometimes, it tests my patience. And sometimes we do just have to say "no" - not every feature or change is desirable, and if we said "yes" to everything, then sway would quickly become a Cronenbergian mess.

Being more specific would give away my identity, but this is one issue I ran into while moving from i3 to sway:

https://github.com/swaywm/sway/issues/1005#issuecomment-3315...

where the comment that closes the issue just says "we'll never implement this, issue closed".

I sympathize with you in that, if you had little time and other things to attend to, then just closing an issue is an instant reward of having something less to do.

But I think it would have been better to, first, don't do anything about that issue if you didn't had the time to do it properly (even if you were the one that filled the issue!), which would have been to write down the rationale why you think that feature is not worth its tradeoffs, and also, to have let other users speak up their mind, and see what others think, before making a decision.

For me, that difference in "project culture" is the difference between an open source project that's worth contributing to, and one that is not.

I've grown a couple of very large open source projects, and some of them I look at once a year, and they keep growing with dozens of PRs per week or day! The main reason I am able to just move on to other things is because I've grown and mentor the new maintainers and leaders of these projects , and I know they both carefully listen to the projects users, and are able to grow new contributors, just like I did.

This was 3 years ago. I usually treat these issues a bit better these days.

However... I disagree with your suggestions about how to go about this better. You're still coming from a place where all paths lead to the implementation and inclusion of the feature. We will say "no" sometimes, and there's no amount of discussion which is going to change that. We're volunteers with a limited amount of time, why should we lead everyone on by entertaining a fruitless discussion in on a feature for which we have no interest in supporting?

There's a lot of discussion you don't see, too. Discussion on the IRC channel, private discussions between maintainers, snippets here and there on patch reviews and other issues... just because you didn't get your say, doesn't mean that the issue wasn't sufficiently discussed. At some point I just don't want to discuss it any more. I could redirect you to /dev/null and let you say your fill, but I don't think that's fair to you, either. You can't always get what you want, and if I don't always give you what you want, that doesn't make me a bad maintainer IMO.

> You're still coming from a place where all paths lead to the implementation and inclusion of the feature.

Not really. Ideally, I'd have read a comment saying: "We discussed this on IRC, and for this and that reason, we decided that this is probably never going to be worth doing. If you have any new information or argument that was not considered above, please do raise it with us, but we are closing this issue for now."

> There's a lot of discussion you don't see, too. Discussion on the IRC channel, private discussions between maintainers, snippets here and there on patch reviews and other issues... just because you didn't get your say, doesn't mean that the issue wasn't sufficiently discussed.

If your discussions don't happen in the open, how open is your open source project really?

You can discuss things on IRC, or whatsapp, or wherever you want, but if a synchronous and/or private communication channel is used to decide on technical issues that impact the project, then you are essentially excluding everyone that doesn't live in your same time-zone, wasn't there on IRC at that time, can't search those IRC logs, wasn't invited in the room, etc. from impacting your project.

That's just not open enough for me, so I don't contribute to projects that work like that.

Rust or th linux kernel discuss everything in the open, so that everyone can see it and participate, whenever they have time to, and make their case. Whether that's a mailing list, a forum, or a github issue doesn't matter.

But closing an issue with "no" isn't very helpful for all those users that weren't in the room where that was decided, and they will all wonder "why".

> that doesn't make me a bad maintainer IMO.

There are dozens of different ways of maintaining open source projects. Just because sway's way doesn't fit me doesn't mean it's bad. It just means that it doesn't fit me. If you'd like to change something so that it fits people like me, the above hopefully explains what the issues for me were. But I don't expect you to do that, and you don't have to do that, and its perfectly fine for you to disagree and don't want to do that.

you cannot be that emotionally involved, what you take as aggressive is simply someone not giving you enough attention.

and I'm sorry but a project being 'open source' doesn't mean that everyone can or should contribute, not all contributions are good or helpful and if you have a certain standard in mind for your software you have to filter contributions.

The problem of course is that if you have

- an open source project which you advertise as collaborative open source

- a personal vision for what you want in your project

- and hence, a secret list of requests you will turn down

Then frequently people might spend 10, 20, 30, 60 minutes trying to do something with your project then writing up an issue. You then immediately shoot it down, because it doesn't match your vision, and that person gets burned.

If you have MIT license and no guidance on contribution, that's user error. But if your project has a PR workflow or has that "Imposter syndrome" line about contributions, well, maybe it's partly your fault.

I'm not saying all open source projects should have guidance. But perhaps all projects with a CONTRIBUTING.md and ISSUE_TEMPLATE.md really should have a clear list of features they will outright reject.

One thing that I’ve learned from the Kubernetes community is to have a list of “Non-Goals” right next to every list of “Goals” in documentation, and of course to have a list of “Goals” at all.
> and I'm sorry but a project being 'open source' doesn't mean that everyone can or should contribute, not all contributions are good or helpful and if you have a certain standard in mind for your software you have to filter contributions.

So if someone sends you a contribution that isn't good enough, you reject them with a "no", and that's it?

Sure, you can do that. A different project might expend some time teaching that contributor and being nice to them, until their PR can be merged. And then the contributor submits another one that's better, and then another one, and then before you realize it you have another full time maintainer that you can trust.

So when you say that if a contribution isn't good enough you reject it I say "Thank you", because that person will move on to a different open source project, which might be one of mine, and I'll be getting another contributor instead.

You might not think that the work required to attract a new full-time contributor is worth it. To me it is.