> There is nothing more delightful than the drive-by PR that lands, fully formed and perfectly aligned, fixing a bug or adding a small, thoughtful feature.

I'm actually generally not a fan of "drive-by" PR's.

Unless the drive-by PR is fixing a simple bug in a simple way, then the contributor really should've opened an issue first. Doing otherwise is rude imo.

This is actually open source etiquette that I'd like to see encouraged more in the future. Something like "If you've never contributed to this project before, then open an issue first". I understand that this can be explicitly placed in a CONTRIBUTING.md file, but I think that this should just become common etiquette that we all follow and understand.

> Unless the drive-by PR is fixing a simple bug in a simple way, then the contributor really should've opened an issue first. Doing otherwise is rude imo.

I kindly disagree. If the project is open source, it means that I can fork it. If I find an open source project and want to add a feature to it, I will fork, implement my feature, and then open a PR to the original project. A couple things there:

1. I have no need to open a PR to upstream, it's totally right to keep my changes in my fork (as long as I honour the licence).

2. If the maintainers don't feel like merging my PR, they don't have to. It's their right. They may request changes, and I may choose not to implement them.

It's not the only way to do it: it's perfectly fine to open an issue and ask for guidance. But I don't see the problem in opening a PR saying "look what I did with your project: you can merge it if you want".

I strongly disagree. I don't find it rude at all. In fact I find the idea that you have to get permission to offer code much more rude.

You are free to say "sorry I don't want to do it like this; you've wasted your time". That's totally fine.

I understand, but my experience with open source projects on Github basically says the opposite. It doesn't really matter how detailed my issue is or if I point to the actual bug in the code, if there isn't a PR it simply gets ignored.

This grinds my gears regularly but I try to let it go because I have no power to solve this issue.