Skip to content

Instantly share code, notes, and snippets.

@sayak-sarkar
Created January 18, 2017 14:22
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sayak-sarkar/3346a0b8d8dbdc95027e5dd35fb03a71 to your computer and use it in GitHub Desktop.
Save sayak-sarkar/3346a0b8d8dbdc95027e5dd35fb03a71 to your computer and use it in GitHub Desktop.
Suggestions on how to start contributing to Open Source Projects.
Why should I contribute?
Students gain:
- skills
- real world experience
- understanding of programming disciplines and best practices
- contacts
- exposure
organizations gain:
- new contributions & contributors
- increase in community strength
- publicity
---------------------------------------------------------------------------------------------------------------------------------
Community meaning:
- A group of people having a religion, race, profession or other particular characteristic in common
- A feeling of fellowshi with others, as a result of sharing common attitudes, interests, and goals.
The Community
Projects often have a community around them, made up of other users in different (formal or informal) roles:
Owner - is the user or organization that created the project has the project on their account.
Maintainers and Collaborators - are the users primarily doing the work on a project and driving the direction. Oftentimes the owner and the maintainer are the same. They have write access to the repository.
Contributors - is everyone who has had a pull request merged into a project.
Community Members - are the users who often use and care deeply about the project and are active in discussions for features and pull requests.
---------------------------------------------------------------------------------------------------------------------------------
Getting Started:-
Wander about, play around, experiment, get involved in conversations, find your groove and locate your perfect match.
1. Choose a stream / language of your choice absed upon what interests you the most.
2. Search for a project that you are interested based upon the stream / language of your choice. There are a ton of ways to find things to work upon:-
- https://openhatch.org/ - OpenHatch is a non-profit dedicated to matching prospective free software contributors with communities, tools, and education.
- http://up-for-grabs.net/ - Explore open source projects and jump in!
3. Starts with bug fixes if you are a programmer.
- Find easy/mentored/first bugs [This one is the hard part, i'll come to it later]
- Bugs don't always mean programming. Bugs might also be community to-do, artworks, etc.
- Learn a version control system, understand the difference between Git & GitHub.
4. Fix these and submit a PR. Here are some Pull Request Pro Tips:-
- Fork
- Create a branch
- Be clear
- It’s best to test
- Include screenshots
- Contribute in the style of the project
5. Find an issue and report it. Here are some Issues Pro Tips:-
- Check existing issues
- Be clear
- Link to demos
- Include system details
- Paste error output
6. Voila! You just got started! :-)
---------------------------------------------------------------------------------------------------------------------------------
REDHAT Communities
- Fedora: is a fast, stable, and powerful operating system for everyday use, built by a worldwide community. It's completely free to use, study, and share.
- RDO: is a community of people using and deploying OpenStack® on Red Hat® Enterprise Linux®, Fedora, and distributions derived from these (such as CentOS, Scientific Linux, and others).
- JBoss Developer: Community-driven projects featuring the latest innovations for cutting-edge apps. Our flagship project, JBoss® AS, is the leading open source, standards-compliant, Java™ EE-based application server implemented in 100% Pure Java.
- Red Hat Developers: Built for developers, by developers—Red Hat® Developers provides access to tools, guides, downloads, and contributions to make your job and daily work easier. [https://www.redhat.com/en/developers]
---------------------------------------------------------------------------------------------------------------------------------
Some Open Source Communities:-
- Mozilla: Getting started with Mozilla is damn simple. Mozilla has multiple gateway for their fellow new contributors.
1. What can I do for mozilla? [http://whatcanidoformozilla.org/]
This site suggests you project based on the programming skill you select. Once you decide you project it takes you to the respective mozilla project.
2. Bugs Ahoy! [http://www.joshmatthews.net/bugsahoy/]
Bugs Ahoy is a site particularly for the new contributors. The website categorizes the 'Easy bugs' and 'Mentored Bugs' based on the various project like JS Engine, Devtools, Firefox OS etc.
Bugs Ahoy categorizes the easy bugs based on the programming languages too primarily Python, Java, Shell, JS, C/C++,
- Fedora:
1. Fedora Easy Fix page list down all the easy fixes you can get started with. Each project lists down whom you need to contact and the maintainer of the project.
2. Fedora Infrastructure respositories contain some easy fixes. Look for the EasyFix label in the repository issues section. Fedora Infrastructure
- KDE: If you want to start contributing to KDE, look out for the Junior Jobs tag. Like each organization KDE too contains a section on how to get started with the KDE projects.
1. KDE Community Wiki: https://community.kde.org/Get_Involved
- OpenStack: OpenStack is also a great project to start with. The OpenStack project is divided into various components: Swift, Glance, Nova, Horizon, Keystone etc. Each of these components have their own page.
1. Contribution Wiki: https://wiki.openstack.org/wiki/How_To_Contribute
2. Low Hanging Fruits: OpenStack calls their beginner bugs as "Low Hanging Fruit". [https://bugs.launchpad.net/openstack/+bugs?field.tag=low-hanging-fruit]
- Wikipedia: Contibute to MediaWiki
1. https://www.mediawiki.org/wiki/Gerrit/Getting_started
2. https://www.mediawiki.org/wiki/How_to_become_a_MediaWiki_hacker
- Python
1. Developer's Guide: http://docs.python.org/devguide/
2. Bug Tracker: http://bugs.python.org/
- GNOME: https://wiki.gnome.org/NewcomersTutorial
- Apache: http://community.apache.org/newcomers/index.html
---------------------------------------------------------------------------------------------------------------------------------
Communication Channels most commonly used in OSS Communities:-
- Mailing Lists
- Mailman
- Google Groups
- Etiquettes[http://www.shakthimaan.com/downloads/glv/presentations/mailing-list-etiquette.pdf]
- IRCs
- Freenode, etc.
---------------------------------------------------------------------------------------------------------------------------------
GSoC
- Stipend based program to work on an open source organization's project for 3 months.
- feb 27th onwards
- march 20th onwards student applications start
Need an inspiration? Check out: http://firstpr.me - Find anyone's first pull request
GitHub Guide on Contributing to Open Source
https://guides.github.com/activities/contributing-to-open-source/
https://www.quora.com/How-do-I-participate-or-contribute-in-open-source-projects
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment