All of us, as part of the technical sphere, have sometime or the other heard about the term 'open-source'. Even if we haven't, we have been using since the first time we learned an algorithm or downloaded a software for free from the internet. But for most of you, this term may still be shrouded in mystery. So DSC IIT Goa and InfoSec IIT Goa are here for the rescue.
In this introductory event, we will celebrate the existence of this ever-expanding and most welcoming open-source community. A brief overview of the topics we'll cover is as below:
1. Introduction to open-source and why is it so valuable?
2. Basics of Git, GitHub and how to make a Pull Request.
3. Everything you need to know before making your first contribution.
4. Challenges faced and how to resolve them.
5. How open-source brings a security mindset.
6. Guide to safe usage and contribution to the community.
7. Famous annual open-source events and how to participate in them.
This event will fully equip you make the most dashing entry into this amazing community.
2. “The power of open source is the power of
the people. And people rule.”
Philippe Kahn
3. Topics we’ll cover...
● What is meant by ‘open-source’ and why is it so important?
● How can you use and contribute to the community?
● Basics of GitHub and how to make a Pull Request?
● What challenges will come your way and how to resolve them?
● Connection between open-source and security.
● What are some of the exciting Open-source events around the world and how can you be a part?
4.
5. What is Open
Source?
Open source refers to something people can modify
and share because its design is publicly accessible.
Open source software is a computer software
whose source code is made publicly available for
modifications and enhancements.
The Source code is made available to others who
would like to view that code, copy it, learn from
it, alter it, or share it.
Popular open source
organizations-Mozilla,KDE,Openstack,Gnome,
Apache,Python and Django.
6. Proprietary + Confidential
Why is Open Source important?
● Allows its users to freely modify the source code
● It promotes a free exchange of ideas within a community.
● Faster development of softwares.
● The feeling of joy, when you send a patch or a PR to an
open source project.
● Helps you make a great resume that stands out from the
crowd. It can help you in building a great online presence.
7. Introduction to Open Source
Why should you contribute?
● Helps to improve projects based on real-world experience and
proven, working solutions
● Helps you connect with like-minded developers and gain deeper
knowledge about software
8. Introduction to Open Source
Why should you contribute?
● Helps your reputation and can leverage your career
● It is fun!! Also gives personal satisfaction
● Giving back to the community is important!
9. Introduction to Open Source
Some stats...
● According to a 2015 survey by Black Duck software,
○ 78% of respondents said their companies run part/all of its operations on OSS
○ 66% said their company creates software for customers built on open source
○ 64% of companies participate in open source projects
○ Open source has become the default approach for software with more than
66% of respondents saying they consider OSS before other options
○ These numbers have increased after 2015!!
10. How to contribute
● Find an organisation that works for you
● Subscribe to the mailing list and stay updated
● Look through the issues to see if there is something to work on. Ask
the maintainers to assign you an issue you want to work on.
● You can even Open Source your own project !
The first steps
11. Prerequisites to contribute
Enthusiasm + Effort + Joy
● Familiarity with version control system : Git
● Dedication to learn the tech stack
● Look out for the labels : “First Timers”, “Good Firsts”,
“Documentation”
12. Choosing an organisation to contribute to
What makes you tick
Learn itFind a skill exciting? Choose an organization
Commit to itFind an organization exciting? Learn the skills
13. It’s not only coding!
What type of contributions
can students make?
Code ReviewDocumentation
Updating the
README files
14. Basics of Git and GitHub
What is Git?
● Version-control system, used to track changes in source code during
software development
● Version control systems keep track of every modification to the
source code
● If something goes wrong, you still have the earlier versions!
15. Basics of Git and GitHub
What is GitHub?
● Online platform. Uses Git for version control and collaboration.
● Brings people from different parts of the world together to collaborate,
work on major projects
● Without GitHub, Git would have been limited to individual use for solo
projects
16. Basics of Git and GitHub
Some commonly used Terms...
● Repository
○ GitHub repository: Nothing but the entire file system containing the
source code of a project, hosted on GitHub.
○ Must contain a README file
○ Repositories can be owned individually or shared by the people of
an organisation
○ Access restrictions to the repo can be changed
17. Basics of Git and GitHub
Some commonly used Terms...
● Clone
○ Clones are literally clones (copies) of a repository
that sit on the developer’s computer instead of a
server elsewhere, say, a platform like GitHub.
18. Basics of Git and GitHub
Some commonly used Terms...
● Branch
○ A branch is a parallel version of a repository
○ It is contained within the repository, but does not affect the primary or
master branch allowing you to work freely without disrupting the "live"
version
19. Basics of Git and GitHub
Some commonly used Terms...
● Fork
○ A ‘fork’ is a personal copy of another user's
repository that lives on your GitHub account
○ Forks allow you to freely make changes to a
project without affecting the original, enabling
limitless opportunities for experimentation and
learning from other people’s work
20. Basics of Git and GitHub
Some commonly used Terms...
● Push
○ Pushing refers to sending your
committed changes to a remote
repository such as GitHub.com.
○ If you change something locally, you'd
want to then push those changes so that
others may access them.
21. Basics of Git and GitHub
Some commonly used Terms...
● Merge
○ Merging takes the changes from one
branch (in the same repository or
from a fork), and applies them into
another
23. Problems faced by students ?
How to resolve them ?
Understanding Huge Code Base !
➔ Understand how project is divided into parts
➔ Focus on specific part required for Issue you are
working on !
27. Merge Conflicts
➔ Event that occurs when Git is unable to
automatically resolve differences in code between
two commits.
Problems faced by students ?
How to resolve them ?
29. Merge Conflicts
➔ Keep your Code synced
➔ Communicate with team
➔ Resolve Manually
➔ Use tools like GitKraken
Problems faced by students ?
How to resolve them ?
30. Failing in the automated tests
➔ The automated tests help prevent new code from
breaking the earlier software when you make a PR to
merge your code !
Problems faced by students ?
How to resolve them ?
31. Failing in the automated tests
Problems faced by students ?
32. Failing in the automated tests
➔ Read the Contribution Guidelines
➔ Learn more about specific automated tests
➔ Seek help from Community !
Problems faced by students ?
How to resolve them ?
33. ➔ Join Slack/ Discord/Gitter Server
➔ Subscribe to the Mailing List
➔ Attend MeetUp’s
How to get help from Community ?
34. ➔ Read the relevant pre-existing discussions
➔ Ask proper doubts after putting effort :)
How to get help from Community ?
37. Proprietary + Confidential
Google Summer of Code
How to prepare & register for
such programs ?
●
Source: Lorem ipsum dolor sit amet, consectetur adipiscing elit. Duis non erat sem
Go through
Archive and plan
accordingly
Acquire Skills like
Git & any Tech
Stack
Choose Org,
Understand &
Use it,
38. Proprietary + Confidential
How to prepare & register for
such programs ?
●
Make
Contributions
Interact with the
Community
Members, Mentors
Submit a
perfect
Proposal
Wait for Result :)
39. Important Online Conferences
➔ Open Source Summit - October - 3 days
➔ Red Hat Summit - April/June - 2 days
➔ FOSDEM - February - 2 days
40. ➔ A month-long celebration of open source software run by
DigitalOcean in October
➔ Contribute to any open source projects and open at least 4 PR’s.
➔ It’s about supporting, celebrating open source, and giving it back
➔ Win an awesome T-shirt and awesome swags.
Hacktoberfest !
41. Hacktoberfest
What is the word going around?
➔ People are misusing the opportunity to just win a T-shirt
➔ There is spamming happening in the name of contribution !
➔ So, It requires maintainers to visit the pull request page, evaluate its
spamminess, close it, tag it as spam !
43. Hacktoberfest
A request to all...
➔ Open source is such a great thing where you can use things created by
people and improvise on them and do wonders.
➔ It is for free and the maintainers of these repo’s do all this selflessly without
any monetary motive.
➔ The contributors must be careful & thoughtful enough that the
contributions made by them only lead to a constructive upgrade !