Live data from Hacker News

My boundaries as an open source developer

joeldenning.com

211–220 of 251 posts

Re: My boundaries as an open source developer

#211
post #50

Earlier quoted context omitted.

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.

> 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.)

Re: My boundaries as an open source developer

#212

Most of the comments here remind me of the famous Neil Gaiman quote, "George R.R. Martin is not your bitch." [1] But I don't think that's the right framing. People buy the first book because they hope there will be a second, even though they haven't paid for that second book and hence are not entitled to it. People use your open-source project because you said, hey, here's this exciting new thing, try it out, so they…

> People use your open-source project because you said, hey, here's this exciting new thing, try it out, so they assume you'd also want to listen when it doesn't quite work as it should. > Put a big "this project is not maintained" warning on top, and nobody will bother you. I think this is exactly the problem. The author never promises they would maintain the software, nor expect their definition of “this works” to…

This makes a ton of sense. In some communities.

It's a bit similar to what is the expected relationship between Alice and Bob after Alice saves Bob from drowning.

In some communities, Bob needs to be thankful for Alice for the rest of his life, with no more expectations of her.

In others, Alice is now responsible for Bob for the rest of her life.

Re: My boundaries as an open source developer

#213

Dealing with users/contributors in open source indeed has its issues due to the low barrier and global nature, meaning you can receive both high and low quality comments/patches/etc, and sometimes the language barrier makes a good quality interaction look bad. In order not to drain your energy dealing with them, you have learn how to deal with them efficiently. What works for me is: - Always respond to the initial qu…

> When it comes to low quality pull requests, tell the author how to improve them. Ideally, I should be able to merge PRs without any changes necessary on my part. This will both lower the amount of work I have to do, as well as educate the author so they will be more productive in the future.

I agree that this probably the ideal thing to do in the long run but, especially as a less social person, often it feels much easier to just do the minor fixes required myself. Training people to be good contributors is a good thing to do, but it is also something that can be very draining.

Re: My boundaries as an open source developer

#214

Earlier quoted context omitted.

GitHub should have an option to disable PRs for a repo, however: - Owners are of no obligation to approve, close, merge, or interact with a PR in any way. If you don’t want to merge a PR, just don’t. - you can include a readme which can include whatever discouragement you want. - if you have a CONTRIBUTORS.md file, GitHub will show that to first time contributors when they submit a PR. - I’m sure you could trivially…

All of that imply that contributors will read things before hitting the Fork button.

If someone's not going to bother themselves with checking the readme or contributors guide before submitting a PR, then they shouldn't be bothered by their PR being ignored or rejected.

Re: My boundaries as an open source developer

#215
post #141

> Part of the stress is in interacting with so many people a single time, never having a solid relationship with any of them. I found that working in the Linux distro space doesn't have this problem, especially in the pre-COVID times when there were annual in-person conferences and lots of socialising.

I found working in the Linux space did have that problem in pre-COVID times. Especially the lack of solid relationships, due to never meeting people and getting to know anyone personally.

I spent too much time working on things for free (not just open source, but also voluntary work, and a couple of tech R&D ventures that ate my savings) and as a result I couldn't afford to attend any of the in-person conferences in far off countries, where the real action seemed to migrate to. That was a strategic error on my part!

LKML also become stressful for me after a decade of reading, just due to the energy to skim the mails each morning due to sheer volume. So I fell off, which was a shame because I had a very solid understanding of the entire kernel at one time.

Re: My boundaries as an open source developer

#216
I have only one problem with this:

> In Slack or Github, it’s usually not necessary to mention me.

That's kinda how it has always worked in these forms of communication though - if I want X to see something, I mention. It's not that I personally would be keen on to be mentioned all the time, but I've been on open source project IRC for 20 years and it is like it is. People need to configure their client to not spam them, or not use [medium] if they can't do that. It's unreasonable to have the general populace have rules of whom to mention and whom not to mention. We all should be sparingly using it, it's async after all.

Re: My boundaries as an open source developer

#217
post #144

Earlier quoted context omitted.

I related pretty strongly to this. I've never tried to monetize, and the community I'm mostly working in (ROS) is populated almost exclusively with exactly the sort of kind, considerate people who will happily roll up their sleeves to take a crack at it themselves, given a little guidance. Nonetheless, there are dozens of effectively abandonware ROS projects out there attached to my name— drivers for some sensor I sh…

I wonder if such projects should be collaboratively maintained rather than attached to your name? Then anyone who is part of the ROS community and ends up needing them can take on fixing any issues they encounter. As long as the org holding them has a liberal enough membership policy, this should work well.

"It's hard to maintain a project as a single-maintainer. Nobody puts in more than a cursory effort to contribute."

"Yeah, but what if other people contributed?"

It's a huge chicken-or-egg problem.

At this point, unless you have a big name behind you (being a major corporation like Google or Facebook, or OSS celebrity like Torvalds), the chances of any particular project growing beyond single-maintainer are really slim.

I've seen several people, on my own projects and others, talk about not trusting single-maintainer projects to last as a reason to not get involved. It's infuriating, because it's a self-fulfilling prophecy.

And there are no guarantees the major OSS names will perpetuate their projects any better than an independent, no-name, single-maintainer. If anything, I've seen companies like Google drop projects much faster than I've ever done in any of mine.

People see the name and assume there is already support behind the project. Yet often the projects start as a single-maintainer thing that the company then puts a marketing machine behind.

I had a project years ago that was my first promising open source project. It was growing, it had a small handful of minor-but-meaningful contributors. People saw my name on 95% of the commits (I was working on it full-time) and called it single-maintainer. A year after I released, a major corp announced they were releasing a competitor. They hadn't released it yet, just announced. Overnight, I saw interest in my project dry up. It took another year for that other corp to actually releases, during which time they had fewer actual contributors than I had. When they did release, it took another year before they reached feature parity with me, but by that point it didn't matter. They had started telling people they were the first such project ever. Randos online started accusing me of copying the other project. I couldn't keep up with development and marketing on my own, especially after the digital agency I was working on it at went belly up.

I knew most of the people on the team at the major corp. We were in a very niche industry and we all knew each other. I think it was that "ours is the first" bit that really got my goat. They not only knew me and knew about my project, they even admitted they had been using my project for testing compatibility of another project they develop.

Thus I now hate Mozilla with a passion.

Re: My boundaries as an open source developer

#218
post #146

I had a very similar experience with running open source projects. I was getting frustrated with people not contributing in any significant way. Functionally useless bug reports. Coding bootcamp students submitting PRs that did nothing but change some grammar in the README (and never actually changing it correctly). Feature requests for things I had explained in several other issues that I would never do. Requests fo…

> I eventually realized my motivations for developing open source software were rooted in vanity. Very insightful, but is it in fact a slightly different emotion to that? In the Mythical Man Month, Fred Brooks says: > Why is programming fun? What delights may its practitioner expect as his reward? First [..] > Second is the pleasure of making things that are useful to other people. Deep within, we want others to use…

> I don't know if this is quite vanity. That sounds a bit too negative. Is this the kind of complex emotion that Germans would have a word for but not English?

I'd say the need for validation describes that closely enough.

Re: My boundaries as an open source developer

#219

So much this. I'm glad he put this out there. I'll start linking to it too. There seems to be a common misconception about open source. When I release software as open source, it does not mean I work for you for free, need to provide you with anything, even need to be nice to you. I may. Or I may not. When I release software under an open source license, then we have a very specific deal. You are entitled to do certa…

I will preface this by saying I have immense respect for anyone who open-sources their work. I think the web as we know it today would not exist without such kind and hard-working individuals. In my opinion, I think most of these issues outlined in the article are caused by lack of communication combined with unclear expectations, to be honest. The only thing I ask of open-source library authors/maintainers is this:…

> That way, everyone knows what to expect, and if they do decide to use it in production, they do it at their own risk.

This is the default position for most open source licences, hobby projects or not.

I agree it is useful for hobby projects to be labelled as such, however.

Re: My boundaries as an open source developer

#220

Most of the comments here remind me of the famous Neil Gaiman quote, "George R.R. Martin is not your bitch." [1] But I don't think that's the right framing. People buy the first book because they hope there will be a second, even though they haven't paid for that second book and hence are not entitled to it. People use your open-source project because you said, hey, here's this exciting new thing, try it out, so they…

> People use your open-source project because you said, hey, here's this exciting new thing, try it out, so they assume you'd also want to listen when it doesn't quite work as it should. > Put a big "this project is not maintained" warning on top, and nobody will bother you. I think this is exactly the problem. The author never promises they would maintain the software, nor expect their definition of “this works” to…

Do you only ever expect things that were explicitly promised? If you go to a job interview, are you self-entitled because you expect a phone call afterwards even if that wasn't spelled out?
Post reply on HN