this post was submitted on 13 Jun 2023
6 points (100.0% liked)

Free and Open Source Software

17926 readers
8 users here now

If it's free and open source and it's also software, it can be discussed here. Subcommunity of Technology.


This community's icon was made by Aaron Schneider, under the CC-BY-NC-SA 4.0 license.

founded 2 years ago
MODERATORS
 

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.

top 9 comments
sorted by: hot top controversial new old
[–] [email protected] 5 points 1 year ago (1 children)

From my own experience:

  1. Start using open source stuff.
  2. Get annoyed by lack of a feature / a bug / something
  3. Fix it, without ever intending to upstream the changes
  4. Notice somebody has made an issue about a thing you already fixed
  5. Send the patches to upstream.
  6. Repeat ad infinitum.

That's pretty much how I've ended up contributing to a plethora of different stuff.

[–] [email protected] 1 points 1 year ago

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.

[–] [email protected] 2 points 1 year ago

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.

[–] [email protected] 1 points 1 year ago

Each project will have different standards to follow. It will depend on which you are interested in.

[–] [email protected] 1 points 1 year ago

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)

[–] [email protected] 1 points 1 year ago* (last edited 1 year ago)

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.

[–] [email protected] 1 points 1 year ago

The FSF has some materials but this is from their perspective. There will be wide differences.

My advice, choose a project your interested in. A low hanging thing to do is when you find a bug put in a good bug report. If you want to go further, debug it yourself and send the patch or submit a pull request. Keep in mind most larger projects will have a developer mailing list or forum. One can talk through stuff on that forum to make sure what your doing is of interest. As far as VCS, I think most people use git but that too probably varies. Keep in mind to... the lead developer(s) will decide if they choose to include your patch in the main line.

[–] [email protected] 1 points 1 year ago

I don't think there's the one process, however, GitHub seems to be the most popular platform. There the process is usually the regular git branch/pull request workflow.

The best way to start would probably be, to simply look up where the project you're interested in is hosted/has its forum and then ask there. Some projects (like Linux) have a rather formalized process, while others (like many smaller, hobbyist tools) are rather lax.

[–] [email protected] 0 points 1 year ago

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 docs

Here's a better example: https://github.com/honestbleeps/Reddit-Enhancement-Suite/blob/master/CONTRIBUTING.md