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!
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.
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 apprioprate details concerning a Pull Request,
which is shown on the image. I didn't add any description because I didn't really make a change, my change here was omly a space but yours would be way far than this. So fill
it up with neccessary details concerning the Pull Request and do not forget be precise. You can see a check button there, this means that the Pull Request be edited by the contributors of the community you making a Pull Request to. I really advise you to always check this, although it's automatically checked by github defaulty, 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