Coding Club Coding Week 25
IIT Guwahati
OPen
Source
Resources Released
Open Source Resources
What is Open Source ?
If we go by the book then, “Open Source is source code that is made freely available for possible
modification and redistribution. Products include permission to use and view the source code,
design documents, or content of the product. The open source model is a decentralised
software development model that encourages open collaboration.”
A layman example would be :
Consider you have a recipe for making a cake. Now you post it on the internet, and people can
bake the same cake but also add their own twists, like adding strawberries or nuts, or suggest
some changes to your recipe, or share their own recipe inspired by yours. Just replace ‘recipe’
with a ‘software’, a ‘program’, or a ‘plugin’, and you get the gist of Open Source.
You can watch the following video to get an idea about Open Source :
Getting Started with Open Source
Version Control System and Git
A Version Control System (VCS) is a tool that helps track and manage changes to files over
time, especially in software development. It allows multiple people to work on the same project
without overwriting each other’s work. Every time a change is made, the VCS records what
was changed, who made the change, and when it was made. This way, if something breaks or
needs to be undone, you can easily go back to a previous version. It also helps in collaborating
efficiently, reviewing code, and maintaining a history of the entire project.
You all might have heard of Git right ? Git is a VCS itself. It helps working on different branches
(we will get to that later) and collaborate while keeping a local history on your computer.
GitHub, on the other hand, is a website (a cloud platform) where you can store your Git
repositories online. While Git is the tool, GitHub is the platform where your Git-managed code
lives and can be accessed by others.
Think of Git as your personal notebook where you track your work, and GitHub as a shared online
folder where you and your teammates can contribute and see each other’s updates.
This is the complete tutorial on Git and GitHub
Complete Git and GitHub Tutorial
For those who prefer reading :
Git and GitHub crash course
Git Crash Course: A Simple Workflow for Small Teams and Startups
Open Source Resources
Terminologies in Open Source sphere
Repository (Repo): A storage space for your project’s code, usually hosted on platforms like
GitHub or GitLab
Commit: A snapshot of changes made to the code, along with a message describing what
was done
Branch: A separate line of development that lets you work on features or fixes without
affecting the main project
Fork: A personal copy of someone else's repository that you can freely modify
Pull Request (PR): A request to merge your changes (from your branch or fork) into the
original repository
Issue: A place to report bugs, request features, or discuss project-related topics
Merge: Combining changes from one branch into another, usually after review
Maintainer: A person who oversees the project, reviews contributions, and manages
releases
README: A file that introduces and explains the project—how to use it, install it, and
contribute
Clone: Downloading a repository from a remote server (like GitHub) to your local machine
Contributor: Anyone who contributes to the project, by writing code, documentation, or
helping in any way.
Why are these important ? These terminologies are important because when you contribute to
any open source repository, you need to be familiar with these methods and practices. They
help maintainers uphold industry-standard code and formalise the practice of open source,
where you often don’t communicate directly with a person, but instead follow structured
workflows. By understanding these terms, you can streamline your contributions and
collaborate more effectively.
There are some more techniques like Merging, Rebasing and Squashing
Git Merge vs Rebas
Should you squash PR on GitHub ?
Open Source Resources
Github Actions
This is for those who want to do something extra :) Github Action is a CI/CD platform which
helps in automating tests, builds, and deployment. Though the main purpose of GitHub action is
for CI/CD, it is not just limited to it. Here is the material to learn GitHub action
GitHub Actions Documentation - GitHub Doc
GitHub Actions - Youtube Videos
Motivation for Open Source
Open source gives you a real sense of what it means to be a software engineer. You connect
with people who share the same passion for a language or program through meaningful work. In
addition, there are various prestigious events like Google Summer of Code (GSoC),
Hacktoberfest, Outreachy, and many more. Contributing to any of these is a highly rewarding
experience and often becomes a standout highlight of your tech career
What Next ?
Starting in open source is indeed an exciting journey! Finding the right repository to contribute
to, learning the necessary stack or library, and successfully solving an issue can be incredibly
rewarding. Each commit feels like a small victory and drives you to contribute more. A great
place to begin is by looking for "good first issues" on GitHub, as these are typically well-suited
for beginners. A beginner friendly guide
Guide to Open Sourc
First Contribution to Open Source
Although Open Source does not have a dedicated task, but during the tasks as well as
interviews of other modules, we expect you to be well verse with basic features of Git and
GitHub. Along with that, this guide will be helpful to you guys post recruitment as well :)
Join the WhatsApp Group
Have any doubts ?
Contact us
Coding Club
Toshit Jain +91 -6354642173 IIT Guwahati