Kickstarting with Open-Source: Innovation through collaboration

Saloni Parekh
GDSC VIT Vellore
Published in
7 min readJul 12, 2020

A beginner’s guide on how one can start contributing to Open Source Platforms including the projects of DSC VIT!

Introduction

Ever wondered why Open-Source is booming and gaining so much popularity in the technical industry day by day? If you think the open-source software (OSS) is used by only code lovers, small developers, or lone tech geeks, that’s a huge myth. All the top-notch companies, be it Facebook, Google, IBM, Intel, or any other tech giants you come across, is a part of the OSS community today either by sponsoring or contributing to various projects. Why so? What’s the reason behind it grabbing eyeballs?

OSS has gained widespread importance by proving to be an extremely efficient programmable software in the industry. It is clear that it is bound to be the future of the IT industry. The advantages are limitless. Be it attracting better talent, speed of development, solid information security, or cost-effectiveness, the software has it all covered.

Through this blog, I would like to focus on how newbies in programming can begin their journey in open source and improve their coding profile at the same time!

Stepping up into a different domain altogether can be overwhelming. Things might seem new or at first when you start. But just a bit of courage and patience can get you rolling! You never know when your one little contribution may turn out to be of huge help for others. After all, it’s just a matter of taking the first step. You won’t even realize when you will eventually figure out the rest. Plus, never hesitate to take help from our mentors or seniors. Trust me, it makes a huge difference.

Knowing GitHub or a similar software developing platform

Try familiarizing yourself with Git and GitHub or other platforms like Git lab or Bit-bucket before you begin comprehending what OSS is all about. There are a few commands that would help you get started with handling projects and code online.

Feel free to check out the basic cheat sheet on GitHub and some tutorial links which will help you get your hands dirty with the command-line before advancing to the open-source culture.

GitHub Cheat Sheet

Git and GitHub Crash Course for beginners

Command-Line Fundamentals

For Starters

A good practice would be maintaining different repositories on your GitHub and pushing every personal project of yours online. This would help you build a good profile, which is extremely important for a coder as well as recruiters.

Next step

After this, choose a public project or an organization that intrigues you or you would want to be a part of and head off to its source code repository online. Try to comprehend the code and its different files. See if you are able to make any sense out of it. If you find the structure and the logic easy to understand, then it can be the right project for you!

How do you actually start getting involved?

You can either create your own open-source projects or begin contributing by joining specific communities after sending mail-requests to them. After thoroughly going through the code, in case you find any open issues, you can work on them. Look for tags like “good first issue” or “help wanted”. If you wish to change the code yourself, you can always send a pull request and contribute.

  1. The first step in such a case is Forking a repository. It allows you to freely experiment with changes without affecting the original project. Most commonly, forks are used to either propose changes to someone else’s project or to use someone else’s project as a starting point for your own idea.
  2. Next clone the repository to your own system.
git clone <url_of_the_repo>

3. Create a new branch and make the desired changes.

To view the different branches of your current repository

git branch

You can create a branch and automatically switch to that branch using the following command

git checkout -b new_branch_name

4. Once you push the changes to your repo, the Compare & pull request button will appear in GitHub.

To push your local changes to the repository

git push origin branch_name

5. Lastly, open a pull request. This will send your request to the maintainers. They’ll view it and merge your request to the original repo if it is relevant, otherwise they may even ask you to make changes.

About Upstream Repository and keeping up to date with the original project:-

This is the Original repository from where you forked your repository. Now, when this upstream repository is changed or updated, you will need to reflect these changes to your own forked repository. On cloning the repository, it has a default remote called Origin that points to your fork on GitHub, not the original repository it was forked from.

Here we need to add another remote called upstream. This is done using the following command:

git remote add upstream <url of upstream repository>

The URL to the upstream has now been added. So, in order to keep your forked repository up to date with the upstream one, we have two options:

  1. The git pull command directly pulls all the changes from the upstream master branch and merges —
git pull upstream master

OR

2. We allow fetch and rebase —

git fetch upstream mastergit rebase upstream/master

Git Merge Vs Git Rebase— What’s the difference?

Well, both the commands are used for updating the new data to your present files. But there’s a very major difference between the two which is important to understand when you are contributing.

  • MERGE:- This not only downloads new data but it also directly integrates it into your current working copy files. A new merge commit gets created, i.e after comparing both the codes, they get merged if there are no conflicts occurring. In case the merge fails, that means a merge conflict has occurred. To avoid such conflicts, it is highly recommended to start a git pull only when you do not have any uncommitted local changes before you pull.
  • REBASE:- It does not integrate the code directly, as in the previous case. It fetches all the details at once and instead of merging each individual commit, it forges each commit according to the timestamp. Hence this has proved to more harmless than the pull command. It is safe to use as it cannot manipulate and affect your code in any way. Conflicts can arise in this case also but can be resolved easily.

Concluding, in simple words, using git pull is safe if you are not contributing to a repository and when you wish to just see the latest changes. But when you are contributing, you do not want merge conflicts to occur time and again. Hence go for git fetch method.

Issues

If there are no existing issues but you manage to find a bug or an error, you can submit an issue by suggesting ways to improve these errors. If the user or the organization agrees to it, follow the above procedure. You can also add tags to the issues you open to give the viewers a better idea!

One more way you can contribute is by commenting on open Pull Request to ease the review process!

Generally, people believe that only programmers or coders can be a part of such communities. Even people from non-technical domains can help in maintaining the documentation which is poorly written most of the time.

Contribute to the Projects of DSC VIT!

Facing difficulty in looking out for good communities or projects? We have got you covered!

Developer Student Clubs VIT, powered by Google Developers, is a community of students at VIT Vellore, that aims to learn and teach at the same time. Developers, Designers, and Managers come together under one roof to inspire and benefit thousands of people around.

Official website of DSC VIT (https://dscvit.com/)

We, at DSC VIT, are extremely active when it comes to building technical solutions that can help society. Our tech team works day and night on hundreds of various projects trying to make something out of the box and prove useful to the community. The work belongs to all sorts of domains — Web development, Android App development, Machine Learning, and Artificial Intelligence, to name a few.

You can always start your journey of OSS with us. We would be more than happy to connect! Check out our GitHub profile and jump on to any project repository that interests you or is from your domain!

GitHub profile (https://github.com/GDGVIT)

We believe that connecting and working together as a community of like-minded people can help in polishing up skills and growing together as a developer! Give in your inputs, help us improve and in turn boost your programming skill-set by being a part of us!

What are you waiting for? Kick-start your ride on open-sourcing right away! We look forward to collaborating with you!

Happy coding!

--

--