Understanding an open-source project

Naveen Sundar
NITRR Open Source
Published in
4 min readApr 5, 2020

General approach to open source organisations…

This story is part 2 of Open Source 101 Series

Previous story: Introduction to open-source

Orgs come in a few flavours: (here is a list of orgs)

  1. Targeted at a specific goal/cause/missionOpenMRS( The main goal is to create a electronic medical records keeping system), Zulip(provides a chat platform).
  2. Umberalla organisations — Concentrates on a wider varitey of softwares with multiple smaller organisations under it. Great example will be AOSSIE(Australian umbrella organisation for open-source projects).
  3. Open Source Division of private companies — For example take React.js (yeah that deadly corona virus) is indeed make by Facebook a private company.

I will take a person Dinesh to make you understand an open source project. Dinesh views the list of orgs and likes the mission of AnitaB.org (an open-source org). He takes these following steps to choose a project, learn about it and make himself ready to contribute.

Git — Version Control System

Allows group of people to collaborate by sharing each other’s code. You can monitor the changes between different versions of your software.

Github — The platform to create software

Github is the platform of choice for many open-source projects. Github is a website that provides git as a service. (SaaS — Software as a Service). A place to store/share the source code.

Git is the software whereas, Github is a service provider that provides Git as a service. Many people get it wrong :(

Step 1: Dinesh open the github page for AnitaB.org. Where he is greeted with list of available projects under that organisation.

Step 2: Our Dinesh is interested in developing backend servers. So he choose to go with mentorship-backend project.

mentorship-backend repo

Step 3: The first thing to do now will be to introduce your self to the community. Find out which chat platform the org is using and join the chat. AnitaB is using zulip in our case.

A good introduction will have your name, occupation, skillset and project you are interested in.

Dinesh (in slack): Hi guys! I am Dinesh, pursuing my undergrad in CSE at NIT Raipur. I have experience in MERN stack. I am willing to contribute to mentorship-backend project.

The fellow members of the org will be more than happy to guide you if have any doubts or you want to share anything in general. But you have to keep in mind these unspoken rules:

  1. Never ask a GOOGLE-able question.
  2. It is considered thoughtful to look in the docs before asking a doubt about the project.
  3. Respect others — Never trash others ideas or force yours. Exchange ideas as suggestions.
  4. Avoid “slang words”.
  5. If you face any errors, always provide enough information for the other person to help you. Like copy-paste the full trace back, instructions to reproduce the bug, screenshots, context of the problem etc.,

Step 4: Fork the repo and setup the local development environment. Always the instructions to run the project will be provided in the repo’s README.md file.

Step 5: Almost all* orgs will have some sort of way to explain you the features of that project and how its is being implemented. In this particular project it is provided as Github Wiki. Make sure to read it!

github wiki of mentorship-backend project

Step 6: Get a feel for the project by:

  1. Running the project locally.
  2. Playing around with the all features.
  3. Run the test suite locally.
  4. Ask for doubts/help in the chat.
  5. Explore the file structure.
  6. Hop into files and read important bits of the code. Comments are there to help you :)

Step 7: The best way to start contributing is to review the PR’s made by others. A review can be:

  1. Suggesting an better alternative way to implement the logic.
  2. Suggesting better name for variables, raising doubts on their logic etc.,
  3. Running PR locally to check for bugs.
  4. Confirming that the PR solves the linked Issue is completely.
  5. Always end the review with comments summarising your analysis. So that it shows — you have made the effort and it will help the other reviewers.

Step 8: Now Dinesh has good understanding of the project. He is ready to tackle some issues or create some of his own.

The next story will be “Working with git in open source”. Please follow our publication for more open source content :)

--

--

Naveen Sundar
NITRR Open Source

Full Stack Developer. Open Source Contributor. Space Enthusiast. Viva la SpaceX.