Why I am tired of writing pull requests
gist.io
gist.io
- The project is no longer maintained (I fork or rewrite better in this case)
- I was actually doing it wrong
- My pull didn't have tests and that was the convention (gotta respect conventions)
- The author wished to keep my feature out for some random reason, but either gave me a hook or showed me how to override behavior in a clean way.
When the developer refuses to pull for not one of these reasons, it's usually because they don't have time. Which is fine, I totally understand that. I do that myself - I currently have 17 open PRs that I've sent and 20 from others in projects I maintain - so that's expected.I would also say that when a PR isn't merged because the developer wants to write it himself, it's probably a stylistic issue and your implementation doesn't fit in with his vision for the project. You can't just pull in every request that comes by, otherwise the code becomes a complete shit-show and then debugging, maintaining, and extending it is a nightmare. I can personally attest to this, having committed this faux pas myself.
[0]: https://github.com/Aaronius/Stupid-Table-Plugin/commit/fbf3d...
Because the monospaced format is intended for code, it assumes that lines will be short, so lines longer than ~85 chars get the overflow effect.
Or you can continue calling people who maintain free and open source projects in their spare time douchebags and neckbeards.
1) The maintainer tell you "that isn't the designed behavior" (no kidding it doesn't do that now, that's why I want to enhance it!)
2) It marked it as a duplicate of the last handful of people that wanted similar features
3) The ticket closed
I'm looking at you, jquery-ui
Sometimes people just don't want your code.
Call me old fashioned, but I still like ticket + attached patches way more than anything else. Recently, I stumbled upon a Google Code project with several defect issues. One guy commented on each of the issue with a link to his github fork which he has applied the fixes. I clicked the link, and found that the fork has been deleted. What a waste.
"Refs #XXX" in the description (PR or any commit) ?
Yeah, some projects have prickly/uncooperative maintainers... so what? That's true regardless of the collaboration mechanism used, and there's no obvious reason why pull requests make this problem worse than other mechanisms.
Indeed, I would guess that pull requests make things better than many other methods, because they (1) make it much easier to review changes, (2) make it much easier for the submitter to update his changes in response to comments, (3) handily keep the discussion and patches all together in one easily accessible place, and (4) maintain a record of the request, helping to avoid the "forgot about it" problem that you get with e.g. patch requests on mailing lists ("Subject: ping" :).
Frankly, given the attitude in his rant, it seems pretty likely the problems he apparently has with maintainers aren't entirely the maintainers' fault...
With no references to examples if what you're talking about, it comes off as a bit of a temper tantrum. But that's just what it feels like, but I have no idea because I have nothing to look at to form an opinion.
I think the point of the article is that the pull requests he's made came to nothing other than rejection. Nothing about the experience led him to believe he should make pull requests in the future. Even if he's a poor coder, I think that's a poor result and is worth talking about.
https://plus.google.com/113026104107031516488/posts/ZRdtjTL1...
The real scaling challenge is in managing precisely this problem. It's not easy to solve.
Do you still have a fork? I'd love some parallel test execution.
I think there should be an expectation that getting a pull accepted on a huge repo like Node or Rails should be a bit hard. When code is being used by thousands of people and companies, it's important that a lot of thought and care is put into even the smallest changes.
And finally, there is an easy way to end the negativity: respond to it by doing what they say. If they want you to do it in a different way, make a separate pull request and leave it up to the maintainers to choose the best one. Best never to argue on Github. If there's a disagreement, answer it with code.
I understand where the OP is coming from. This certainly does happen from time to time, and it's awful when it does. But I think this post is overblowing it. I certainly hope he does try sending pull requests again!
I've written dozens of pull requests and most of them either get merged, or I get a concise explaination about why they're not being merged.
probably 3/5 I have to go through a few iterations of hack and rebase before they go upstream. I'm fine with this.
With some more background maybe we can offer feedback about why your code isn't making it upstream?
Personally, I try to be 100% positive whenever I interact with anyone who has put their time and energy into improving a project that I maintain because I am 100% grateful for their effort. If I think that their code could be better in some way, I make that suggestion to them in a positive way. If they don't want to take my advice, then I'll merge their request and make the improvements myself. Heck, even if their code breaks something I'll still merge it in-- then fix it myself while retaining the intention of their code.
Being negative towards contributors is counter-productive.
Yeah, this isn't totally emotion-driven or biased at all.
Most library authors truly appreciate these kinds of pull requests.
Bitching about pull requests in such a generalized way is destructive behavior and having it up-voted here surely isn't good for many of the impressionable people that read news here.
I started using a small PHP framework plugin written by a guy who did everything right. I want to contribute eventually, so I asked him what his license choice will be and some questions that would hopefully keep our code in sync.
He was really polite and helpful, and wants to do an MIT-style license.
I forked his github project just to keep my pull requests and work stuff outside of that cleaner.
Not really sure what solution the OP is looking for. If your pull requests are universally rejected, perhaps you could change your approach.
Github is only the best software sharing platform anyone has devised thus far in our young discipline. You can't even message people privately, you can open a new Issue though.
It's your fault for not planning ahead.
But does he get that a) people are short on time, b) if your code looks/feels like it's too much work to review, the reviewers may procrastinate, and c) no one is actually obligated to accept your unsolicited contribution?
I feel like, pre-Github, this anger would be happen of the course of a few e-mails on a mailing list, and then instantly put in check by a more mature person. There would be no misconceptions in your feelings toward the project, and vice versa -- you could either take it or leave it.
Now, it just builds and festers, until it comes out in a blog post, where probably zero of the original parties even see the concern.
Can we bring back mailing list flames?
Then when they do, they just copy your pull and put no credits, and there, you understand. Classic :P
But then again, it's not the norm. I don't give a fuck about pull requests or anything similar anymore since a long, long time. I just put it there for anyone who wanna take stuff, but the fixes are generally for my own use. And I'm usually too lazy to fork and fix the world, anyway.
https://github.com/joyent/node/pull/3710
I sit and argue my pull like crazy but it is just getting derailed :/ oh well.
https://gist.github.com/3444052 your names on that one.
Perhaps in the future it would be worth discussing your changes with the developer ahead of time to see if that feature is something he wants in his core product. That could save you some time and effort in the future.
I get this every time at work, and sometimes I just don't have time to review something that looks unneeded, from my point of view, and something I can't review, since it's too big of a change.
As well if you PRs are bug fixes then there is no excuse, if they are feature additions / changes then you might want to invest into a fork, do some cool work and then get noticed. Maybe they'll merge!
I haven't had any trouble getting my PRs accepted takes about a week to three weeks.
You don't have to look very far to find douchebag programmers, but I've always had friendly encounters on GitHub.
I don't think it's necessary though.
After all, if it hasn't happened to you then there's no way it has happened to someone else, right?
Plus, your automatic assumption that he's a bad coder is part of the problem the author is complaining about. You know nothing about his code therefore an assumption, positive or negative, is not something you can make.