DEV Community

Cover image for How I Contributed One Line of Code to Ethereum
Jasper Gabriel
Jasper Gabriel

Posted on

How I Contributed One Line of Code to Ethereum

Introduction

As a software engineer who has never contributed to open-source before 2023, I've been looking for ways to contribute. Being passionate about Web3, I looked for interesting projects in this space. It was not hard to find one where I could contribute since Web3 is about openness and decentralization. Eventually, I found a project where I made my first open-source contribution which is Taiko, a type 1 ZK-EVM.

After my first open-source contribution, I looked for other projects where I could contribute. One of those projects was Ethereum, which is a blockchain network that enables Decentralized Finance, tokenization of assets, and an open internet. While reading through their contributing guidelines, I found an issue in their documentation and ended up fixing it, making my second open-source contribution.

In this article, I'll be sharing my journey on how I contributed exactly one line of code to one of Ethereum's open-source repositories, Ethereum.org.

Looking for ways to contribute to Ethereum

Ethereum has a lot of open-source repositories on their GitHub.

Some notable repositories I was looking at were:

  • Geth - Official Go implementation of the Ethereum protocol.
  • Solidity - Smart contract programming language.
  • Remix - Browser-based compiler and IDE for Ethereum smart contracts written with Solidity.
  • Ethereum.org - Official website and online resource for the Ethereum community.

When choosing which repository I could contribute to, I had to consider my current skill sets.

Being proficient in JavaScript and TypeScript, Geth and Solidity are out of the question, since Geth requires knowledge of Go, while Solidity requires knowing C++.

Remix on the other hand is mostly written in TypeScript, while Ethereum.org uses Markdown. These are the Ethereum projects that I focused on contributing to.

Finding a bug on Ethereum.org's website

After choosing Ethereum.org as a potential repository where I could contribute, I reviewed their website's contributing section.

While browsing through the different ways to contribute to Ethereum.org, I saw their translation program and checked if I could contribute by translating their documentation. As I was reading through the translation program resources page, I noticed a broken Discord link in the Office hours for translators section.

Ethereum translation program resources: Office hours for translators

The Discord link should redirect to Ethereum.org's Discord server. Instead, I got an Invite Invalid error message.

Ethereum.org Discord

Reviewing Ethereum.org's open-source contribution guidelines

Before proceeding to fix the invalid Discord invite link, I reviewed Ethereum.org's CONTRIBUTING.md file to make sure I was following their open-source contributing guidelines.

The guide pointed to the contributing sections in Ethereum.org's website and README.md.

Ethereum.org CONTRIBUTING.md

Creating an issue on Ethereum.org's GitHub repository

After reviewing the contributing guidelines, I looked at existing issues to see if someone else had already reported the broken Discord invite link on the translation program resources page.

Once I verified that no one else reported the issue, I created an issue on Ethereum.org's GitHub repository.

Invalid Discord invite GitHub issue

Creating an issue was easy since there are templates for different types of issues. In my case, I needed to create a Bug report issue.

Creating a bug report issue on Ethereum.org's GitHub repositoryCreating a bug report issue using a template

Forking Ethereum.org's repository and testing the fix

After creating the issue, I forked Ethereum.org's GitHub repository and followed their local environment setup guide. Once I've set up my local environment, I started working on the fix.

The fix was easy since I only needed to replace the Discord invite link with a working one.

Commit that fixes the invalid Ethereum.org Discord invite link

I tested the fix locally to verify that the translation page is still working and that my commit fixed the issue.

Creating a pull request on Ethereum.org's GitHub repository

After verifying that my commit fixed the issue, I created a pull request to Ethereum.org's repository with the fix for the invalid Discord invite link.

Pull request with the fix for the invalid Ethereum.org Discord invite link

Pull request reviewed and merged!

After creating the pull request, I waited for the code owners and maintainers to review the pull request.

A few days later, corwintines reviewed my pull request. In his code review, he gave valuable feedback and updated my code changes by replacing the Discord invite link with the official Ethereum.org Discord invite link.

Code owner reviews the pull request

Then, he approved and merged my pull request. He also thanked me for my contribution, which left a warm feeling even though I only contributed one line of code (less than that if you consider that he updated my code changes).

Approving and merging the pull request

After the pull request was merged, I also got a GitPOAP, as recognition for my contribution to Ethereum.org in 2023.

Ethereum.org GitPOAP

Conclusion

In this journey, I've learned that it is possible to make small contributions to large projects such as Ethereum. The beauty of open-source is that anyone can make changes, no matter how small. In fact, the majority of open-source contributions fix small issues like the one I encountered. These small changes are also easier for the open-source maintainers to review.

As the scouts' saying goes, "Always leave the campground cleaner than you found it". For us open-source contributors and software engineers, we should also leave the codebase better than we first saw it. That means if you see a mistake on an open-source documentation, you can suggest a fix to the maintainers.

If you're looking to make open-source contributions yourself, I hope my story has inspired you to do the same.

Thank you for reading and if you have any questions or feedback, feel free to comment or connect with me here.

Top comments (2)

Collapse
 
msrusskikh profile image
Max Russkikh

Hi Jasper, thank you for the guide! Wouldn't expect someone writing about this stuff, but I really needed it.

Found a similar bug in Ethereum.org and wanted to report an issue, but got overwhelmed in the process, since I didn't even have a Github, let alone understood what are pull requests etc :)

Btw, I might be mistaken, but to my knowledge Solidity is based on JS rather than C++, so you should be able to understand it well if. Maybe look into it again!

Collapse
 
kshyun28 profile image
Jasper Gabriel

Hey Max, I'm glad that you found my article helpful!

If you need help or have any specific questions on the process of contributing to Ethereum (or other projects), feel free to hit me up.

As for Solidity, yes you're correct that the syntax is similar to JS. Although the actual compiler itself is written in C++, Solidity, and some Yul. github.com/ethereum/solidity

Good luck on your open-source journey and cheers!