Skip to content

Latest commit

 

History

History
28 lines (19 loc) · 4.58 KB

CONTRIBUTING.md

File metadata and controls

28 lines (19 loc) · 4.58 KB

How to Contribute

Once you have set up the project on your computer you are ready to contribute. There are several ways that you can contribute, and it doesn't matter how much experience you have with coding we have something for you.

Please read all the documentation about contributing before you do anything. Since we have code running on multiple computers and several people working on the project at the same time we need to make sure we don't over write each others work. Git is used for our version control system, long story short it keeps track of all changes made to the code. If anything goes wrong, it won't mess up everyone else's code and lets you reset your part. Even if you accidentally delete something we can revert it.

Our code is in something call a repository, fancy for folder that has all the code, git will keep track of all files in the repository. github.com is just a website that lets us put our code in the cloud for free. If you are not familiar with git, or you want to understand how we use git with our project go to this page about GitHub steps

Issues

Once you are familiar with git you are ready to help contribute. GitHub has a great way to help organize how we build our project. GitHub keeps track of all todo items with something called issues, issues can range anywhere from being bug-fixes to new features that need to be added to the code. Each issue keeps track of the person assigned to the issue, labels that define the type of issue, projects it is connect to and milestones. Each issue also has a conversation about it, so if you have a suggestion or working with someone that is the place to say it.

Projects

If you are familiar with Trello then projects will be easy for you, they are just GitHub's version of Trello, with issues being like the cards. Each project contains several columns that are all automated, so for the most part you don't have to move anything around GitHub will do that for you. Project automation is controlled with issues. When a new issue is created and assigned to a project GitHub will add that issue to the TODO column in the project. When you start working on an issue you can assign yourself to the issue and move the issue to the In Progress column, this will let us know who is working on what. Once you are done with an issue and close it, GitHub will move the issue to the Done column for you. Issues are used to document the progress of the project, you will see a progress bar, grey means issues, purple is in progress, and green is done.

Creating an Issue

To create and issue click on the Issues tab, click on the new issue button.

  1. Fill in the name then the description, make sure you specificity as much as possible what the issue is about. Include specifications that must be met in order to close the issue.
  2. Assign someone if you have someone in mind, you can also leave it blank so anyone can decide to work on it.
  3. Add labels to the issue, this is very important as it will help understand what the issue is about without having to open it.
  4. Add to the project, right now we only have one called igvc. This will automatically add the issue to the TODO column in that project
  5. Add milestones, this is like a mini project. Optional.

Choosing an Issue

If you are comfortable with git and are ready to start helping out you can pick an issue to get started on. Each issue is labeled to help you know what you can work on. Go to the project tab and open up our project, in the TODO column we have several issues that need to be completed. If you are a beginner and don't want anything to complicated choose an issue that is labeled 'good first issue'. Issues that are not labeled like that are intermediate, and those with labels advanced are advanced. Issues are also labeled whether of not they are bug-fixes or features/enhancements. You can pick whichever you are more comfortable in. Make sure your code is acceptable by our style guidelines

Once you have select the issue, make sure to checkout a branch or create a new one. DO NOT PUSH TO MASTER. It will not work. Once you have completed the issue depending on which branch you are on you can merge that branch with other. To do this click on the pull requests tab, select the branches you are merging. Make sure to review merging requirements before submitting. All pull requests must be reviewed by someone else before the merging is completed.

Good luck to you, if you have any questions don't hesitate to ask.