Contrast this with the standard assumption - I'm using random code off the internet with a good faith effort by a maintainer not to break my stuff. If I find things broken, I may upstream a patch to said maintainer - or decide it's not for me and move on.
I never go through the latter effort when there is a big warning on the Readme.
I'm not sure why but some people like to assume that just because you posted something online that you must fix any problem people have while using it and add any feature that it doesn't have. I suspect that this is the main reason those "This is a hobby. Please don't get mad at me if there's a problem" README tags started showing up.
Of course, there's no obligation or even expectation that you should provide such a warning, but if you're already thinking about it, might as well just do it.
It's not realistic to read through all the source of every dependency you use, but it should be encouraged for developers to take a more active approach in evaluating dependencies they pull in - at least to check how active development is, what sort of open issues there may be, test coverage, code quality sniff tests, what the license is etc.
I'd be willing to bet most GPL violations are due to ignorance, rather than intentional.
Every project already has these. They're in the license files.
> This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This disclaimer is clear, self-explanatory, legally binding and a standard feature of all licenses. So why do people assume they can use random code from random developers they never met without even looking at the source code?
Because that's open source, and has worked well for a lot of things.
Random code from random people always had varios quality - from great to horrible.
And I might have a library that over the years changes from being shitty to high quality (and back!). I wouldn't want to go changing the licence to follow its lifecycle.
I think it would be valuable to have some widely understood conventions of text you can put in the README to set appropriate expectations.
Counterintuitively, absolute disclaimers of warranty aren't legally binding in many jurisdictions. So don't assume that you are legally absolved of any responsibility just in virtue of having this line in the license.
Warning:
[ShittyFrameworkName] is just a personal toy framework:
* It will break compatibility from commit to commit with no warning whatsoever.
* It has (almost) no tests
* It has (almost) no documentation.
* It's (mostly) not php-fig friendly
* Its code only cares about the needs of its author
Many of them are written in a way that is probably useful to another coder who is taking the time to look at that piece of code — whether because of an issue, or for 'fun'.