I'm looking around for Open Source projects where I could contribute to. There are tons of them with varying degrees of maturity, wild variance of tech stacks (and hype). It is a tough decision since my time/energy is limited and the opportunity cost weighs heavy in my mind.<p>I am personally working in the DevOps/CICD space so it would probably make more sense to invest time/effort in a project in that space. I was looking to kubernetes -I want to get experience in Golang as well- but I was somewhat deterred by the complexity of it. Both functionally and -perhaps more importantly- the developing-experience complexity. Anyhow, I'm now at the 'paralysis by analysis' stage and I'm wondering how other people have dealt with this chaos of options.<p>Do you contribute to OS? How did you go about selecting where you'd contribute to? How did you get past the no-joy initial stages where all you got was a steep learning curve with little or no help?
Pick some of the projects you are using. For most projects you have to understand the philosophy and what is the central idea, and it is very difficult if you are not using it.<p>Start with a small part. You are never sure if the maintainers are going to merge it, or if the maintainers are crazy or morons. So pick a small task that is useful but you don't be too sad if it not merged. I recommend to not invest more than two days initially, but perhaps two days is too much.<p>Also each project has unofficial rules about rebasing, code style, commit message style, test coverage, documentation. Try to follow the style of the project, but be prepared to make a few fixes.<p>The best time to start contributing to open source was 20 years ago. The second best time is now.<p>PS: (Just in case) Don't expect to make money for this. It is posible if you reach the Linus status, or you get hired to contribute to a project, but in most cases don't expect to get money.<p>PS2: Typos in docs, comments, and error message are a good starting point. It's easy, and after looking at the code you will understand it more and perhaps notice something you can improve.<p>PS2: Since you know CICD ... do you know how to run gcc with -ubsan in travis-ci? I tried to configure it, but I failed and gave up. Warning: it may be harder than you think.<p>PS4: Configuring the CI of some projects may he helpful. Perhaps try some project you are interested and they have a clear set of test but don't have the CI enabled.
I made a project just for this, here's a list of Go and Kubernetes OS projects with instructions and issues for new contributors: <a href="https://www.sourcesort.com/?refinementList%5Blanguages%5D%5B0%5D=Go&refinementList%5Btopics%5D%5B0%5D=kubernetes&refinementList%5Btopics%5D%5B1%5D=golang&refinementList%5Btopics%5D%5B2%5D=go&page=1&configure%5BhitsPerPage%5D=36&toggle%5BhasContributionInstructions%5D=true&toggle%5BhasDocumention%5D=true" rel="nofollow">https://www.sourcesort.com/?refinementList%5Blanguages%5D%5B...</a><p>That search turns up 32 results, but you could narrow that down more according to your needs using the other filters.<p>Things to check for: how long does it take for new contributors to get responses to their pull request? how many first time pull requests are accepted? (there's a filter for this too if you scroll down)<p>Before tackling an issue or getting involved, it's a good idea to give a heads up or introduce yourself. You might be able to do this on the GitHub repo or possibly on a mailing list, etc. if they run the project via a separate communication platform.<p>Good luck!