Sunday, 26 June 2022

I made my first contribution to Open Source. It was slightly more stressful than I thought it would be… but I’m going to do it again.

Open Source written on a typewriter


So after hesitating about getting involved in the world of open-source contribution for a while, I finally decided to actually do it. I wanted to join a community where I could help solve problems and become a better developer at the same time but didn't know where to start or what projects I could contribute to.


Contributing to an open-source project is usually ranked semi-highly especially on a new devs to-do list but do we even know what it is or why we want to do it?

"Open-Source Software is a type of software whose code is publicly available to use and modify. Open-Source Contribution involves contributing to the development or improvement of open-source software...

Open Source is something each one of us is inevitably using every day, possibly without being aware of it. Interestingly the code that resulted in the first manned mission to the moon is also open-sourced."

By definition of Work@tech

Why did I want to contribute to open source?


Personally for the reasons I previously mentioned and also to find a way to build my confidence when dealing with projects other than my own, not to mention to learn and connect with some other great members of the tech community whom I might not meet otherwise.
Knowing I wanted to contribute but not knowing where to begin was slightly overwhelming and an issue that I’d have to overcome if I was to do it. In truth, contributing doesn’t necessarily mean writing lines of code to solve a crisis. In fact, it can be something as small as fixing a typo, updating a ReadMe file or editing that line of code mentioned before.

Three ways I got involved?

During the course of one very busy yet productive weekend I joined a new but rapidly growing community on meetup 'Together We Opensource.’ It's the perfect community for beginners and those needing some direction. Each week founder Nikita, runs through his top tips covering how to find the right open source project for you, then together with the cohort contribute to them, he also speaks on the dangers of juggling too many open source projects at once.



That weekend I also joined a Twitter space, the subject happened to be ‘getting into open sourcing for the first time.’ It was almost like a sign now, I had to contribute somewhere!

During the twitter space, I was afforded the opportunity to join the amazing discord community of Eddiehub.org. EddieHub, has many fantastic projects for contributors of all experience to get involved with including the 'hacktoberfest practice' to sink your teeth into. In the task, you run through forking a repo, adding your name and linking your GitHub profile to the list of contributors in alphabetical order, then raise a pull request.
If successful, your pull request will be merged and your name will appear in the list.



How to contribute to open source within 10 minutes - start now!


It was a pretty easy task, I gained my Pull-Shark badge on GitHub and made a small passing tweet about it that got a lot of likes… but I hadn't really done anything, I hadn’t made significant meaningful change with my input.

'OpenSauced.Pizza’ was then recommended to me by way of Twitter, in their own words:
'Open Sauced provides guidance onboarding for new contributors. Their approach towards open-source onboarding offers a way to track contributions through GitHub GraphQL API powered dashboard.'
Here I was able to scroll through a number of issues posted and pick out ‘first-timers only’ issues until I found one that I felt comfortable with. And just like that, I had found the perfect first-timer issue! I created the pull request, found the page and issue that had been referenced and worked on my forked copy to fix the problem. However, my lack of confidence kept me from pushing my fixed version ‘what if I had done it wrong? What if I had read the issue wrong?’ so many what-ifs! Seeking help from the person that posted the issue for advice, I ended up waiting too long and missing out on my first opportunity. The moderator reiterated this to me, insisting I have confidence in myself. The very next issue I saw was going to be mine, I was laying my claim on it and nobody would stop me.Two days later that second chance came around, I was ready!
  • Repo forked,
  • Changes made,
  • Pushed to my GitHub,
  • GitPod test ran and passed,
  • Pull request submitted
  • Happy dance complete!

It was done, or so I thought. I woke up to a message that the issue had been closed and that my pull request had been declined. That was disappointing….

Lessons to be learned

An unsatisfactory few hours later, another email arrived in my inbox. After reviewing my pull request with another moderator, it was decided that my original request did meet the required changes and would be accepted if I could update my request and link to the new issue... Great, how do I do that? At that moment I turned bad at googling, assuming that I had a very short window to update my request before someone else jumped on it, I hurriedly updated my link and managed to inadvertently submit the wrong thing. Here it was, the face-palm moment that I had dreaded!

See what I learned at that moment was that the moderators are actually alright, they’re not as scary as I thought! They wanted to guide me in the right direction but also wanted for me to learn, they wanted me to succeed just as much as I wanted to. In between my other commitments and learning how to fix the re-opened issue the moderators patiently waited for me telling me to ‘take my time,’ dropping hints where needed until I finally updated my request. They even congratulated me when it was merged and left me with some advice for future contributions.

My takeaways from the experience:

  • Great places that support people looking to contribute to open source include EddieHub, Topether we Opensource, Open Sauce Pizza and so many more. It’s all about looking and finding them.

  • Look for a good first issue that you know you can handle. If it’s going way above your head this may not be the issue for you, another will come along.

  • Read the ReadMe file, it’s named so for a reason, there’s probably information/rules in there that will help you.

  • Ask questions! If you are asking questions you are also expressing your interest in working on that issues. Likewise, if you are stuck, nobody is likely to help you if they can’t tell that you need help. There’s that saying
"The man who asks a question is a fool for a minute, the man who does not ask is a fool for life." — Confucius
  • Don't make more work for the moderators than necessary because you were too stubborn to ask for help.

  • Make any required changes on a separate branch rather than the main branch.

  • Calm down and take your time, because pushing panic-induced pull requests is not what we are trying to achieve here! Contributing to open-source isn’t as scary as you think.

So here’s to 'third times a charm!’


And to anyone reading this for inspiration, happy open sourcing!

No comments:

Post a Comment

Let Me Tell You About Them Coding Black Females!

  I know you have NOT been wondering where I’ve been these past few months or why I haven’t been posting.  I have spent the past 6 months co...