Provided "as is", without warranty of any kind June 14, 2021 on Drew DeVault's blog

The MIT license contains the following text, in all uppercase no less:

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.

The BSD licenses, GPL family of licenses, Apache 2.0, Mozilla Public License, and likely any other license you’d care to name, have similar clauses of their own. It’s worth taking a moment to consider the implications of this statement and what it says about the social aspects of free and open source software.

Many people who rely on free and open source software feel entitled to some degree of workitude or support from the developers, or think that the developers have a responsibility to provide good maintenance, or any maintenance at all, for their work. This is simply not true. All free and open source software disclaims all responsibility for your use of them for any purpose, often in all capital letters.

Some maintainers will allow you to negotiate additional terms with them, for example through the sale of a support contract, for which you may receive such a guarantee. If you have not made such an agreement with your maintainers, they have no responsibility to provide you with any support or assurance of quality. That means that they do not have to solve your bug reports or answer your questions. They do not have to review and apply your patch. They do not have to write documentation. They do not have to port it to your favorite platform. You are not entitled to the blood, sweat, and tears of the maintainers of the free & open source software you use.

It is nice when a maintainer offers you their time, but by no means are they required to. FOSS is what you make of it. You have the right to make the changes you need from the software yourself, and you are the only person that you can reliably expect to do it. You aren’t entitled to the maintainer’s time, but you are, per the open source definition and free software definition, entitled to change the software, distribute your changes to others, and to sell the software with or without those changes.

Though this idea is important for users of free software to understand, it’s equally important that maintainers understand this as well. We have a problem with burn-out in the free software community, wherein a maintainer, feeling pressured into accepting greater responsibility over their work from a community that increasingly depends on them, will work themselves half to death for little or no compensation. You should not do this! That wasn’t part of the deal!

As a maintainer, you need to be prepared to say “no”. Working on your project should never feel like a curse. You started it for a reason — remember that reason. Was it to lose your sanity? Or was it to have fun? Was it to solve a specific problem you had? Or was it to solve problems for someone you’ve never met? Remember these goals, and stay true to them. If you’re getting stressed out, stop. You can always walk away. You don’t owe anything to anyone.

If you enjoy the work, and you enjoy helping others, that’s great! Of course, you are allowed to help your users out if you so choose. However, I recommend that you manage their expectations, and make sure you’re spending time cultivating a healthy relationship between you, your colleagues, and your users. FOSS projects are made out of people, and maintaining that social graph is as important as maintaining the code. Make sure everyone understands the rules and talk about your frustrations with each other. Having an active dialogue can prevent problems before they happen in the first place.

Have a comment on one of my posts? Start a discussion in my public inbox by sending an email to ~sircmpwn/public-inbox@lists.sr.ht [mailing list etiquette]

Articles from blogs I read Generated by openring

Loopr: A Loop/Reduction Macro for Clojure

I write a lot of reductions: loops that combine every element from a collection in some way. For example, summing a vector of integers: (reduce (fn [sum x] (+ sum x)) 0 [1 2 3]) ; => 6 If you’re not familiar with Clojure’s reduce, it takes a reducing func…

via Aphyr: Posts June 23, 2022

What's cooking on SourceHut? June 2022

Hello everyone! Let’s get straight into the news today. Our user count today is 29,612 users, of which 576 have joined since the last update. Remember to be patient with these new users as they learn the ropes. Welcome! GraphQL Adnan continues to ship GraphQL…

via Blogs on Sourcehut June 15, 2022

Status update, June 2022

Hi! Yesterday I’ve finally finished up and merged push notification support for the soju IRC bouncer and the goguma Android client! Highlights & PM notifications should now be delivered much more quickly, and power consumption should go down. Additionally…

via emersion June 15, 2022