Open Source
Open Source
Software Contribution
• Introduction
Presentation title 2
INTRODUCTION
Contributing to open source can be a rewarding way to
learn, teach, and build experience in just about any skill
you can imagine and create valuable and accessible open
source software, individual contributors can get plenty of
personal benefit from contributing to them.
Presentation title 3
Why Open Source?
Why Open Source?
• Improve Software you rely on (Ex: Kubernetes, Prometheus, Grafana, Istio, fluentd etc)
• Improve existing new skills (Coding, UI Design, Graphic design, Writing, Organizing and testing)
• Meet people who are interested in similar things
• Find mentors and teach others
• Build public artifacts that help you grow a reputation (and a career)
• Learn people skills
• It’s empowering to be able to make changes, even small ones
• Some well-known open source projects include Django, Postgres, MongoDB, Vue, Go, Ruby, TypeScript, Git, Kubernetes, Grafana
Presentation title 5
How to contribute?
Presentation title 6
• Create your "Github" account
• Read "readme.md" and "Contributor Code of Conduct" (Example: Check this )
• Start with "typo fix" and slowly involve in documentation, testing, and coding
• 28% of casual contributions to open source are documentation, such as a typo fix, reformatting, or writing a translation.
• If you’re looking for existing issues you can fix, every open source project has a /contribute page that highlights beginner-friendly issues you
can start out with. Contribute to facebook/react
• Every project is different. Vocabulary, norms, and communication styles are completely different and varies from project to project.
• Popular ways to check Open source projects
• Open source handbook
• GitHub Explore
• Open Source Friday • Open source programs
• First Timers Only • Opensource.guide
• CodeTriage • Pull request roulette
• 24 Pull Requests • Your first PR
• Up For Grabs
• Awesome for opensourcebegin
• Contributor-ninja
ners
• First Contributions
• SourceSort
• Bugzilla
• Code triage
Presentation title 7
Anatomy of open source project
• A typical open source project has the following types of roles
• Author: The person/s or organization that created the project
• Owner: The person/s who has administrative ownership over the organization or repository (not always the same as the original author)
• Maintainers: Contributors who are responsible for driving the vision and managing the organizational aspects of the project (They may also be
authors or owners of the project.)
• Contributors: Everyone who has contributed something back to the project
• Community Members: People who use the project. They might be active in conversations or express their opinion on the project’s direction
• The below files are usually listed in a open source project
• LICENSE: By definition, every open source project must have an open source license. If the project does not have a license, it is not open
source.
• README: The README is the instruction manual that welcomes new community members to the project. It explains why the project is useful
and how to get started.
• CONTRIBUTING: Whereas READMEs help people use the project, contributing docs help people contribute to the project. It explains what types
of contributions are needed and how the process works. While not every project has a CONTRIBUTING file, its presence signals that this is a
welcoming project to contribute to.
• CODE_OF_CONDUCT: The code of conduct sets ground rules for participants’ behavior associated and helps to facilitate a friendly, welcoming
environment. While not every project has a CODE_OF_CONDUCT file, its presence signals that this is a welcoming project to contribute to.
• Other documentation: There might be additional documentation, such as tutorials, walkthroughs, or governance policies, especially on bigger
projects.
Presentation title 8
Anatomy of open source project (Cont..)
• A typical open source project has the following tools to organize the project
• Issue tracker: Where people discuss issues related to the project.
• Pull requests: Where people discuss and review changes that are in progress.
• Discussion forums or mailing lists: Some projects may use these channels for conversational topics (for example, “How do I…“ or “What
do you think about…“ instead of bug reports or feature requests). Others use the issue tracker for all conversations.
• Synchronous chat channel: Some projects use chat channels (such as Slack or IRC) for casual conversation, collaboration, and quick
exchanges.
Presentation title 9
Checklist before contributing
• Definition of Open Source Software
• Does it have a license? Usually, there is a file called LICENSE in the root of the repository.
• Does the project actively accepts the contributions?
• Look at the commit activity on the main branch. On GitHub, you can see this information on a repository’s homepage.
• When was the last commit?
• How many contributors does the project have?
• How often do people commit? (On GitHub, you can find this by clicking "Commits" in the top bar.)
• Look at the project issues: Check the below project issues
• How many open issues are there?
• Do maintainers respond quickly to issues when they are opened?
• Is there active discussion on the issues?
• Are the issues recent?
• Are issues getting closed? (On GitHub, click the "closed" tab on the Issues page to see closed issues.)
• Check the project pull requests
• How many open pull requests are there?
• Do maintainers respond quickly to pull requests when they are opened?
• Is there any active discussion on Pull requests?
• Are the pull requests recent?
• How recently were any pull requests merged? (On GitHub, click the "closed" tab on the Pull Requests page to see closed PRs.)
Presentation title 10
Popular Twitter Accounts in Open Source world
• Open Source Way (@opensourceway)
• Opensourceinitiative (@OpenSourceOrg)
• Matt Klein (@mattklein123)
• Tim Kockin (@thockin)
• Kelsey Hightower (@kelseyhightower)
• Nigel Poulton (@nigelpoulton)
• CNCF (@CloudNativeFdn)
• Saiyam Pathak (@SaiyamPathak)
• Awesome Go (@GolangRepos)
• The New Stack (@thenewstack)
• K8scontributors (@K8sContributors)
• Containerd (@containerd)
Presentation title 11
SUMMARY
Presentation title 12
References
• https://stackoverflow.blog/2020/08/03/getting-started-with-contributing-to-open-source/
• https://opensource.guide/how-to-contribute/
• https://www.freecodecamp.org/news/how-to-contribute-to-open-source-projects-beginners-guide/
• https://kubernetes.io/
• https://github.com/grafana/
Presentation title 13
THANK YOU
Presentation title 14