These guidelines are here to help people collaborate, learn and contribute to a great Open Source Software project!
If you submit a bug please add a screenshot or description of the effect. Github knows to upload pictures from clipboard :). If you know the steps of reproducing the bug please share them.
An issue must be specified so everyone who reads it and knows how People looks like, knows what must be done and why.
We want the issues to be specified this way in order to make any developer, new or with experience, understand the problem and implement it as good as he can.
A good starting template is this one. You can copy/paste it from here.
An example of the workflow is this one
In order to <the benefit of the issue being solved>
As a <stakeholder e.g. developer, user, company, comunity member, etc.>
I want to <the feature/enhancement that needs to be implemented in the issue>
a list of high end benefits that will be delivered when the issue is completed.
examples:
- World Peace and harmony
- An ending to World Hunger
If you already know parts of the code or documents that could help a developer get to the deliverables share them here. You can add documents, blogposts, links to code.
If you know the basic steps of implementing it, share with others!
You already have an issue that follows the format mentioned above and you want to start coding.
To help others understand how you approached the problem please update the issue with a small description of the solution. If you encounter problems, please share them in the comments.
We follow some conventions for writing code. They are:
Spend some time reading them before jumping into coding, they will help you write better code.
In order to have the code linked with the issue it solves the following flow is preffered.
- Fork this project and add the upstream remote. Detailed instructions are found here
- Create a branch named {{issue_number}}-small-description-of-issue
$ git checkout -b 42-end-to-world-hunger
- Start working on the issue.
- Use commits that make only one change. Include the issue number in the commit.
$ git commit -m "Give food to random strangers #42"
- Push to a remote branch named as the local one. Please use the explicit push command.
$ git push origin 42-end-to-world-hunger
- You think you are done. Run the tests suite
./manage.py test
-
If nothing fails, create a pull request on the issue you are trying to solve.
-
Ask for a code review using @reviewer_name tags in comments
-
If the pull request can't be merged please rebase the master branch into your branch. You should this before you open the pull request and running the tests, just in case. How to:
-
If working on a fork
$ git fetch upstream
$ git merge upstream/master
$ git checkout 42-end-to-world-hunger
$ git rebase master
- If working on the rosedu repo
$ git fetch origin
$ git merge origin/master
-
More info on rebase in case you have conflicts etc.
-
Congratulations! You have made a contribution to this project!