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

Free and Open Source Software

713 readers
1 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 13 comments
sorted by: hot top controversial new old
[–] [email protected] 14 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] 8 points 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, direct, developer 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 with a small project with some incomplete milestone that you know is something you can do, I think? Just remember that not all reviewers are out there to chew on your code, lol.

[–] [email protected] 6 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] 5 points 1 year ago (1 children)

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

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

Thanks! I'll check all those links

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

I try to get involved with the smaller tasks first. Right now, I'm trying to help organize issues on lemmy and lemmy-ui. I mark duplicate issues, reply to ask for more info and so on.

Sometimes I also try to help translate a project.

On the software side of things, I usually just fork the project (given it's on github), and start poking around the codebase, try compiling it, maybe try to change a few things. When I'm comfortable, I'll look into the issues, sometimes they are marked as good-first-issue, and I focus on them first.

But any maintainer out there is happy to receive a pull request, so no need to worry about making an impression or being "allowed" to participate first.

[–] [email protected] 3 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] 3 points 1 year ago

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.

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

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

[–] [email protected] 2 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)

[–] ytipik 1 points 1 year ago

I had the same thoughts when I started contributing a year ago. I was scared of my code being judged, but it is where I learnt the most. I started adding some small improvements and then opened my first pull request. However, the maintainer was very nice! Now, after a lot of contributions, I released my first project. As a maintainer, I am always when happy when new contributors come as it is a source to learn new things and have some help. So don't worry! You will enjoy a lot when you will see your changes in a new release!

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

I am also just trying to dip into Open source projects. I googled around and stumbled upon this. Maybe this might help you get started.

All the best!