Contributing to Open Source projects
brad.livejournal.com
brad.livejournal.com
Git is hardly the end all be all.
Most people are probably happy to get patch submissions, but there's some work involved in accepting them.
Generally, project owners want to see a test accompany any change to demonstrate that a bug was fixed or that new behavior does what's claimed. There may also be coding standards to follow, and (ideally) some documentation for new code.
If you omit these things when you submit a patch or issue a a pull request you may still think you're doing the project owner a favor, on the premise that something is better than nothing, but reviewing your submissions and checking that it is correct, and possibly cleaning up your code and adding tests, may end up being more work than it's worth.
Git and github have removed some obstacles to contributing, but there are still assorted details one has to look after.
If the project owner really wants the patch, they will fix these details themselves. In my experience this is how project owners reject patches that they don't want; make the submitter do more work than he is willing to so that the patch silently dies.
Personally, I will usually ask a submitter for a test case and some docs... but if I don't hear from them (or hear, "works for me, no time"), I will just write them myself. Same for style issues; easier to just fix them myself, then I know that the style is exactly what I want.
Github, at the very least, eliminates any technical reason not to contribute. Social issues are largely the same; although back-and-forth is a lot easier when you both have access to a public repository. (Who likes attaching the 8th iteration of a patch to email? Not me.)
Feel free to write me off as a cranky old fart - I've been doing OSS long enough to remember Subversion as a wonderful thing on the horizon and the pure joy of its relative speed. This is all based on my mostly-poor experiences with GH preventing a community domain forming by causing nobody to talk outside of their commit messages, which is a huge loss.
All I know is that I get a few patches a week from people I've never heard of, thanks to Github. I can even anticipate them in advance, since I can see who has forks of my project, and what they've committed.
For those of us that are able to learn about simple concepts, Github has been a godsend. It has never been easier to share code.
And no, I am not being sarcastic, nor was my original post.
Not sure if that was a typo, but in case it wasn't: git is version control software, and github is a web app that allows you to host and manage git repositories (and open-source repo hosting is free).
http://www.reddit.com/r/programming/comments/7svak/look_at_5...
It hasn't solved the problem for everyone, though.
And you should really be doing that in a publicly archived, visible place.
The commit message.
Git is a nice tool, but you can't take things to extremes. It is not a substitute for actual discussion. What happens when the patch is 'pretty good', but not quite right and both people are willing to work on it? It just gets discussed in commit messages? No, it goes to a mailing list, especially when it's a larger project with many interested parties. This is pretty elementary open source stuff:-/
Where you're completely correct is that git and github make it easier to contribute 'at the margins'. In the sense that what once may have simply lain idle on one's own hard drive is easier to simply throw at some project in the hopes that they can do something useful with it.
I remember back in the sourceforge day, most projects died before they ever got a mailing list, CVS account, web page, wiki, bug tracker, ..., all setup. Now, reasonable defaults are provided for you, and you can focus on writing the code. Once your project has a bunch of contributers that are all working on time-consuming projects... then you can invest some time in moving away from the defaults. But if you project is like most and has 3 users, you won't have to waste your time.
> I remember back in the sourceforge day, most projects died before they ever got a mailing list, CVS account, web page, wiki, bug tracker, ..., all setup.
What happened a lot is that people thought they were going to do some great open source project, registered the project, then never did anything with it. This can happen anywhere, really, although it's probably less prominent on github, because a repository with nothing in it is pretty ridiculous.
Also, it's amazingly easy to set up a Google Group, even though they have some known issues.
Anyway, where I'm going with this is merely that putting it on github does not make open source magically 'work', and people need to pay attention to the human (communication, etc...) side of things too. Github is an improvement in many ways.
On the other hand even if you find where to contribute to with open source you can't be as sure your patch will be taken.
(Although as mentioned on LWN: http://lwn.net/Articles/379109/ it seems Google have managed to fork libjingle, so even Google can't get this right.)
http://gilesbowkett.blogspot.com/2010/03/programmers-what-to...
It didn't even take a week after I watched it for me to start implementing his suggestions.