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.

  • ananas@sopuli.xyz
    link
    fedilink
    arrow-up
    19
    ·
    1 year ago

    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.

    • JackbyDev@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      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.

  • AggressivelyPassive@feddit.de
    link
    fedilink
    arrow-up
    7
    ·
    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.

  • Himawari@lemmy.4d2.org
    link
    fedilink
    arrow-up
    7
    ·
    edit-2
    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.

  • Generator@lemmy.pt
    link
    fedilink
    arrow-up
    4
    ·
    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

  • Kresten
    link
    fedilink
    arrow-up
    4
    ·
    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.

  • delirium@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    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.

  • 0485@lemmy.world
    link
    fedilink
    arrow-up
    2
    ·
    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.

  • Cinnamon@beehaw.org
    link
    fedilink
    arrow-up
    2
    ·
    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)

  • flatbield@beehaw.org
    link
    fedilink
    arrow-up
    1
    ·
    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.

  • Honeyed Coffee@sopuli.xyz
    link
    fedilink
    arrow-up
    1
    ·
    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!