Hi, I dont know if this is the right comunity to ask, please tell me otherwise. I apologize for my poor English, I’ll try my best!
I’m a professional software developer with about 10 years of experience. I have only worked on closed-source enterprise projects throughout my entire career. I am not familiar with the workflow involved in FOSS projects.
Is there a guide that summarizes or documents all the information or standards you need to know to contribute to any FOSS project? This includes the standards for commit messages, tags, and how to propose a new feature or report a bug.
I understand that this may be basic information for many of you, but for me, it feels a bit overwhelming. Also, I think that I’m afraid of working on a codebase that I’m not familiar with. There is also a fear of my own code being judged online. You know, you can never escape imposter syndrome.
I appreciate any info, hopefully I’ll be helping on improving some of my favourite apps in the future.
From my own experience:
- Start using open source stuff.
- Get annoyed by lack of a feature / a bug / something
- Fix it, without ever intending to upstream the changes
- Notice somebody has made an issue about a thing you already fixed
- Send the patches to upstream.
- Repeat ad infinitum.
That’s pretty much how I’ve ended up contributing to a plethora of different stuff.
Yep. I’ve submitted patches to a few projects. JD GUI seems dead, there were issues regarding the same thing I fixed. Another Gradle plugin I submitted a fix for got merged pretty much right away. As quick as I would expect for people volunteering their time that is.
Each project will have different standards to follow. It will depend on which you are interested in.
Something I find helpful in battling the mental issues I get from it is to just look at something green for a while or take a break. Also, confronting people in dms makes them more chill.
(I don’t know what kind of hypnosis GitHub and GitLab use, but everyone seems to be more intense on these platforms)
I’m a developer myself and from my understanding every project have their own set or rules, policies and guidelines. No two foss-projects are necessarily the same.
Best thing to do is to find a project you like then look at their PR documentation, or maybe hit up someone who’s a regular contributor to that project.
In addition to what others said,
There is also a fear of my own code being judged online.
Please don’t worry about it. This is how you get better in your career/skills. You need other’s judgement to think about your code and how you can improve it and your skills. :) Thats the huge bonus you get out of code reviews.
Actually, same here! I used to get overwhelmed by just the thoughts of contributing to GitHub projects too, because I think my code was kinda bad and I didn’t want to get judged at. Whenever I thought about repo maintainers/reviewers, I always imagined that they would be all like Linus Torvalds, and I was afraid of getting shamed for my poor code, lol!
I was lucky because I had skills in drawing arts, so I started by contributing icons to an Android icon pack project, which didn’t really require coding skills, and is actually something I know I can do. The maintainer of my first contribution turned out to be a very friendly and cool person instead of someone grumpy and direct I always had images of in my head! From there, I gradually learned about the tools and coding a project.
I think the truth is if you want to contribute, even when you think your code isn’t up to standard, you really still need to start somewhere. If you don’t feel any confident, start forking a small project with some incomplete milestones that you know is something you can do, I think? Some projects that have chatrooms that you can ask if you aren’t sure about anything should be a really good place to get started too.
Just remember that not all reviewers are out there to chew on your code, lol.
Start by reporting bugs is a good start even for those who don’t know programing, for developers many project have documentation usually on CONTRIBUTING.md or at the README.md itself, includes code of conduct, Pull Requests, Bug Reports etc…
Example for Lemmy https://github.com/LemmyNet/lemmy/blob/main/CONTRIBUTING.md
Is just a link to docsHere’s a better example: https://github.com/honestbleeps/Reddit-Enhancement-Suite/blob/master/CONTRIBUTING.md