This guide is very useful for developers!
This is very useful guide for new users! Feel free to create an issue or make a Pull Request. Please see our Contributing file first and our Code of Conduct, before making new commits or opening a Pull Request, we appreciate it! In order for us not to ignore your effort, please check well not to make a duplicate of a Pull Request (contribution)/issue!
Eveyone can contrubute! If you want to contribute to a project and make it better, your help is very welcome. Contributing is also a great way to learn more about social coding on GitHub, new technologies and their ecosystems and how to make constructive, helpful bug reports, feature requests and the noblest of all contributions: a good, clean Pull Request. To learn how to use Git or GitHub here is a resource allocated for that.
Look for a project's contribution instructions. If you find any, then let's follow these steps.
- Create a personal fork of the project on GitHub.
- Clone the fork on your local machine. Your remote repo on GitHub is called
origin
. - Add the original repository as a remote called
upstream
. - If you created your fork a while ago be sure to pull upstream changes into your local repository.
- Create a new branch to work on! Branch from
develop
if it exists, else frommaster
. - Implement/ fix your feature, comment your code.
- Follow the code style of the project, including indentation.
- If the project has tests run them!
- Write or adapt tests as needed.
- Add or change the documentation as needed.
- Squash your commits into a single commit with the community git tips. Create a new branch if necessary.
- Push your branch to your fork on GitHub, the remote
origin
. - From your fork open a Pull Request in the correct branch. Target the project's
develop
branch if there is one, else go formaster
! - If the maintainer requests further changes just push them to your branch. The Pull Request will be updated automatically.
- Once the Pull Request is approved and merged you can pull the changes from
upstream
to your local repo and delete your extra branch(es).
And last but not least: Always write your commit messages in the present tense. Your commit message should describe what the commit, when applied, does to the code – not what you did to the code.
But wait before you start contibuting, you've got to know us better. This would really aid you to :
- Fit more into the community.
- Understand our modes of operation.
- Know the community moderators and members as well.
- Know the goals and aim of the community.
- Including your presence as a member/ contributor, if you wish and many more!
Eager to make your first Pull Request or make out connections with lot of people or fishing out your choice[stack]-anyone, we've got you covered. Make a Pull Request but before that, check out our short tutorial on how to easily make a contribution 👇
Note:
- To be a member; Raise an invitation issue here!
What is a fork?
This is cloning a repository to have a personal version of that same/ main repository.
So, this is advisable to first fork the repository you want to contribute to and then move to check for it in your personal GitHub repositories, there you would find the forked
repository. You can also click the edit(pencil) button, and this automatically forks the repo to your version. Make sure you are in the right repository before forking or editing it, can you see the name of the repository used as a sample!
Do you notice any change ~~ the naming of the repository, the first name there is your forked version while the other is that of the real repository. So, I already got my personal version of the repository because I forked or edited it. Then, you can start making your changes and add anything you feel neccesary/ right.
Just like using git, you have to put down a commit message, without putting down any message GitHub defaultly give you a commit message exactly as what I used as my commit message. There is a second space for more description, you can fill this up if you see it as dimmed fit or necessary and be precise. So, I would be committing this on the master(default) of my forked GitHub repository. There would be no much sense in commiting this in a new branch because I run this, there are no other contributors and you are sure on what you want but if it is a GitHub community it is advisable to create a new branch. Then commit changes!
After the commit, then click the Pull Request tab and make new Pull Request
This is all about the comparism between your own forked version and the real repository to check if there was a change and if the change is mergeable. You can see the word comparing across forks
and a transitional line with an arrow in the middle. You must set this well to avoid issue, now we are sending from mine to the main/real repository using the direction of the arrow, then you can make your Pull request. If it is not mergeable, you can still make the Pull Request and resolve it resolve conflicts
, GitHub would point out the issue which makes it easier for you to resolve.
Just same process as a commit message. Some community have a pull Request template which makes it easier to fill in important and appropriate details concerning a Pull Request,
which is shown on the image. I didn't add any description because there wasn't really a change,the change here was only a space, but yours could be way far than this. So fill
it up with neccessary details and concerning the Pull Request title, do not forget to make it precise. You can see a check button there, clicking it simply means that the Pull Request can be edited by the mainteners of the repository. I really advise you to always check this, although it's automatically checked by github by default, so the choice is left to you. Then click the create Pull Request
button.
After your Pull Request has been reviewed by the Team of the community and everything there is appropriate. Then, your Pull Request would be merged and this makes your Pull Request a contribution!
Search links that point directly to suitable issues to contribute to on GitHub.
- is:issue is:open label:beginner
- is:issue is:open label:easy
- is:issue is:open label:first-timers-only
- is:issue is:open label:good-first-bug
- is:issue is:open label:"good first issue"
- is:issue is:open label:starter
- is:issue is:open label:up-for-grabs
Websites
- CodeTriage - CodeTriage helps by picking a handful of open issues and delivering them directly to your inbox. After you sign up for CodeTriage, you pick the repos you want to help with, and we periodically send you issues.
- goodfirstissue.dev - Curates easy pickings from popular open-source projects, and helps you make your first contribution to open-source.
- goodfirstissue.com - A site made for new contributors to find great Open Source projects, discover issues and repositories with good first issue and help wanted labels.
- Up For Grabs - This is a list of projects which have curated tasks specifically for new contributors. These are a great way to get started with a project, or to help share the load of working on open source projects.
- First contributions - A hands-on tutorial that walks you through contributions workflow on GitHub. It help beginners to contribute to open source projects.
- Contributor Ninja - A platform to find issues in several languages to fix on GitHub.
- Gauger - With this site, you can find beginner friendly open source projects to work on.
- Open Sauced - Open Sauced provides guidance for new contributors finding their next contribution. Our approach towards onboarding offers a way to track contributions through a GitHub powered dashboard.
- 24 Pull Requests - 24 Pull Requests' goal is to encourage contribution to open source projects during December. The site suggests open projects, highlights tickets that are good for new contributors, provides guides for contributing and promotes good contributions submitted each day.
- Issue Hub - Contribute to open source by searching issue labels to find the right project for you!
- Pull Request Roulette - On this site, there's a list of pull requests submitted for review, belonging to open source projects hosted on GitHub.
Repositories
- Awesome First PR Opportunities
- Open Source Tips
- Open Source Guides
- 18F Open Source Style Guide
- Open Source Communities on Discord
- Open Source Friday
- Open Source Ideas
- The Open-Source Computer Science Degree
- Open Source Handbook
- Getting Started With Contributing to Open Sources
- Open Sauced
- First Contributions
- Explore Github
- Python Projects Script
- Hello Open Source
- Pinax Project
- Open Source Ideas
- How to contribute to open source
- Contribute to Open Source
Books
- Open (Source) for Business: A Practical Guide to Open Source Software Licensing - Third Edition
- Open Source Static Code Analysis Tool A Complete Guide
- Open Source Licensing: Software Freedom and Intellectual Property Law
- Producing Open Source Software: How To Run A Successful Free Software Project
- Forge Your Future with Open Source: Build Your Skills. Build Your Network. Build the Future of Technology
- Open Source Governance A Complete Guide
- Open Source Notebook: Open Sourcerer
- Open Sources: Voices from the Open Source Revolution
- Working in Public: The Making and Maintenance of Open Source Software
- Entreprenerd: Building a Multi-Million-Dollar Business with Open Source Software
- Intellectual Property and Open Source: A Practical Guide to Protecting Code
- Understanding Open Source and Free Software Licensing
- The Performance of Open Source Applications
- The Open Source Alternative
- Rebel Code: Linux and the Open Source Revolution
- Open Source Property: Volume 1
- Open Source Property: Volume 2
- The Success of Open Source
- The Architecture Of Open Source Applications
- The Architecture of Open Source Applications, Volume II: Structure, Scale, and a Few More Fearless Hacks
- Open Source for the Enterprise: Managing Risks, Reaping Rewards
- Embracing Insanity: Open Source Software Development
- Perspectives on Free and Open Source Software (The MIT Press)
Paid Open-Source Internship
YouTube Channels/Videos
Videos
- Complete Guide to Open Source - How to Contribute
- Tips for contributing to Open Source with Github
- Level Up as an Open Source Contributor
- Getting Into Open Source for Fun & Profit
- How open source has made me and the stuff I make better
- Building The Open Source Community We Want
- Managing an Open Source Project
- Managing an Open Source Project - UtahJS
- Open Sourcing Your Stuff
- Contributing to Open Source on GitHub for beginners
- Pieter Hintjens - Building Open Source Communities
- Contributing to Open-Source Projects as a New Python Developer: How to Do It
- A new way to contribute to open source
- Starting an Open Source Project
- How to find Github Repos to contribute to
- A Practical Guide to Open Source Contribution
- Make Your First Open Source Contribution || Beginners Guide to Open Source
- Jessica McKellar: Contribute with me! Getting started with open source development
- I want you to contribute to open source
- How to contribute to OPEN SOURCE projects on Github
- The Open Source Contributor Funnel: Turning Users Into Maintainers
- Contributing to Open Source for the first time
- Contributing to Open Source
- Why Open Source Contribution is Essential to your Business
- A Million Ways To Contribute To Open Source; It’s Not Just About Code
- A Newcomer's Guide to Open Source Contribution
- Getting started with Open Source & GitHub
- How to contribute to Open Source?
- How I Started Contributing to Open Source and Why You Should Too
- How to Open Source Like a Pro
- How To Get Started With Open Source
- How to Contribute to Open Source Projects
- How to start with Open Source software contributions
- Complete Guide to Open Source Contributions
- Get started with Open Source
Open-Source Docs/Blogs
- GitHub docs for open source
- GitHub open souce guide
- 5 tips for getting involved in open-source projects on GitHub
- Getting started with contributing to open source
- Get Involved In Open Source Today
- How To Contribute To Open Source: Getting Started With Git
- The beginner's guide to contributing to a GitHub project
- The Beginner's Guide to Contributing to Open Source
- How To Maintain Open-Source Software Projects
- How to Contribute to Open Source
- How to get started with Open Source
- Your First PR
- The Technical Writers Guide to Contributing to Open Source Projects
- Step-by-step guide to contributing on GitHub
- Contributing To Open-Source Projects
- Open Source contributions: A catalyst for growth
- A guide to making open source contributions
- Beginner's Guide to Open Source Contribution
- Make your first open-source contribution
- How To Get Started In Open Source
- Evaluating Open Source Projects
- A Beginner’s Very Bumpy Journey Through The World of Open Source
- How to Contribute to Open Source Projects – A Beginner's Guide
- Contribute Beyond Code: Open Source for Everyone
- How to Be a Good Open Source Project Owner – The Ultimate Guide
- The Ultimate Guide to Open Source
- Why You Should Start Contributing to Open Source Software Right Now
- How to Choose and Care for a Secure Open Source Project
- The Pros and Cons of Open Source Software Development
- The Definitive Guide to Contributing to Open Source
- Starting an Open Source Project
- How getting into Open Source has been awesome for me
- Open Source Stamina
- Building the Open Source Community We Want
- How I learn an Open Source Codebase
- How to Make your First Contribution to Open Source
- Introducing: How to Contribute to Open Source
- What open source project should I contribute to?
- How to Contribute to an Open Source Project on GitHub
- First Timers Only
- Why open source?
- Twelve tips for growing communities around your open source project
- Best practices in Open Source: internal collaboration
- Best practices in Open Source: external engagement
- Everything an open source maintainer might need to know about open source licensing
- Why you shouldn’t write your own open source license
- Self-taught Software Developers: Why Open Source is important to us
- So you wanna open source a project, eh?
- Making a game with Open-Source tools
- Why I love contributing to open source software
- Best Practices for Maintainers
- What Does “Open Source” Even Mean?
- TIPS FOR NEW OPEN SOURCE MAINTAINERS
- Scaling Open Source Communities
- Kindly Closing Pull Requests
- Why I close PRs (OSS project maintainer notes)
- My condolences, you’re now the maintainer of a popular open source project
- What success really looks like in open source
- Advice To Open Source Project Contributors
- Making clean PR for Open Source Contributors (PEP 8 Style)
- Getting Started With Open-Source: How To Contribute
- Ways you can contribute to Open-source
- How to become an Open Source Contributor
- Getting Paid for Open Source Work
- How to Contribute to Open Source Project
- Open Source Projects
- Open Source Project Ideas
- How To Contribute To Open-Source Projects As A Beginner
- Top 8 Open Source Projects for Beginners To Try in 2021
- Top 12 Most Popular Open Source Repositories on GitHub[2021]
- First timers’ Practical Guide to Open Source Contribution
- Ten (10) Reasons You Should Contribute to Free and Open Source Projects
Podcasts
- The ReadME Podcast - On The ReadME Podcast, we take a look behind the scenes of the most impactful open source projects and the developers who make them happen.
- Open Source Underdogs - A podcast for entrepreneurs about open-source software. In each episode, we chat with a founder or leader to explore how they are building thriving businesses around open-source software. Our goal is to demystify how entrepreneurs can stay true to their open-source objectives while also building sustainable, profitable businesses that fuel innovation and ensure longevity.
- The Open Source Way - This podcast is about the difference, value or drop that open source can be. Each episode we talk with experts about open source related topics and why they do it the open source way.
- FINOS Open Source in Finance Podcast - The FINOS Open Source in Finance Podcast celebrates open source projects and interesting topics at the cross section of financial services and open source.
- The Craft Of Open Source - This bi-weekly show is focused on the ins and outs of the Open Source Software Community. Join Ben as he speaks with the brightest minds that have brought us some of the most adopted technologies on earth. Each episode is an interview with creators, maintainers, entrepreneurs, and key contributors to the open-source community.
- Percona's HOSS Talks FOSS: The Open Source Database Podcast - Percona's head of open source strategy (The HOSS) Matt Yonkovit talks with developers, dba's, and engineers from around the open source community about the latest news and events in the FOSS space.
- FLOSS Weekly - FLOSS all about Free Libre Open Source Software with talks with the most interesting and important people in the Open Source and Free Software community.
- The Changelog: Software Development, Open Source - Conversations with the hackers, leaders, and innovators of the software world. This is a polyglot podcast. All programming languages, platforms, and communities are welcome. Open source moves fast. Keep up.
- LINUX Unplugged - An open show powered by community LINUX Unplugged takes the best attributes of open collaboration and turns it into a weekly show about Linux.
- Linux Weekly Daily Wednesday - A weekly dose of all thing Linux and open source with a slice of Pi for good measure.
- Open Source – Software Engineering Daily - Open source technology episodes of Software Engineering Daily. At the gym or on your commute, you can listen to long-form interviews about software engineering. After every episode, you should feel like you are 1% better at understanding how the software works.
- Reality 2.0 - Join Linux and Open Source advocates, Doc Searls and Katherine Druckman, as they navigate the new digital world, covering topics related to Linux and Open Source, as well as digital privacy, security, and other current issues.
- Open Source Voices - Affter years of producing Linux, BSD, and Other Open Source Podcasts, I came to the realization that we almost always focus on technology. It makes sense, we all love tech, that's why we are who we are. But the community we are apart of is full of varied and fascinating people that make that tech. This is my attempt to highlight the people who are helping us dream up and build the future around us.
- The Craft Of Open Source - This bi-weekly show is focused on the ins and outs of the Open Source Software Community. Join Ben as he speaks with the brightest minds that have brought us some of the most adopted technologies on earth. Each episode is an interview with creators, maintainers, entrepreneurs, and key contributors to the open-source community.
- Open source for business - Your company uses open-source software but needs to better understand how to effectively manage it. In this podcast, Eunice Chendjou and Henry Badgery host interviews with some of the world's top experts that sit at the intersection of business and open source.
- Impactful Open Source - We seek out stories of open source successes, moving from beyond source code and into the world at large. We focus on code that didn't just turn into a large enterprise business, but which passed through universities, cities, governments, and the world to make a real difference in people's lives. Our guests are open sorcerers, academics, open-source program officers, and everyone in between.
- Free as in Freedom - A bi-weekly discussion of legal, policy, and other issues in the open-source and software freedom community (including occasional interviews) from Brooklyn, New York, USA.
- Open Source Creative - A weekly podcast where I ramble about creativity, process, and open-source software. The show features in-depth discussions about the nature of open-source software and how it relates to doing creative work. And interviews!
- FLOSS for Science - Interviews with scientists who are using or developing free and libre open-source software.
- Humans of Open Source - A podcast where we explore the human side of working on open-source software. We talk to contributors about how, what, and why they contribute in order to uncover the human element behind the open-source communities that power our digital infrastructure.
- The Binary Times Audiocast - ogg - Linux and open-source tips, tricks, and discussion. Free software, hardware, and modern culture.
- Breaking Into Open Source - Have you ever wondered what would it be to contribute to open-source software? Or is curious about how to get started? Well, wonder no more! In this podcast we let Bob and Josh take us through the tour of the wonderful world of open source, as seen through developers.
- Open Source System Podcast - The Open Source System Podcast brings you the latest open source projects and news. We try to focus only on open source software and cover projects that are created in any programming language. If you have a goal to become more involved with open source software then this podcast is for you!
- Sustain - Sustain brings together practitioners, sustainers, funders, researchers and maintainers of the open source ecosystem. We have conversations about the health and sustainability of the open source community. We learn about the ins and outs of what ‘open source’ entails in the real world.
- Scotland Open Source - Scotland Open Source talks to maintainers, advocates and companies from Scotland’s vibrant open source community.
- Creators and Consumers of Open Source - Team Aviyel is sitting together Maintainers on the Journey they took to reach here.