Simple contribution guidelines to make open-source happy and organized
Resist being a lazy developer, we can get through this together.
- Branch
master
is always stable and release-ready. - Branch
develop
is for development and merged intomaster
when stable. - Feature branches should be created for adding new features and merged into
develop
when ready. - Bug fix branches should be created for fixing bugs and merged into
develop
when ready. - See also: A successful Git branching model.
Do not open a duplicate issue!
- Look through existing issues to see if your issue already exists.
- If your issue already exists, comment on its thread with any information you have. Even if this is simply to note that you are having the same problem, it is still helpful!
- Always be as descriptive as you can.
- Provide as much information as you can on how to reproduce your issue.
- Attach screenshots, videos, GIFs if possible.
- Include library version or branch experiencing the issue.
- Include OS version and devices experiencing the issue.
- Find an issue to work on, or create a new one. Avoid duplicates, please check existing issues!
- Fork the repo.
- Create a new branch with a sweet fucking name:
git checkout -b issue_<##>_<featureOrFix>
. - Do some motherfucking programming.
- Write unit tests when applicable.
- Keep your code nice and clean by adhering to the coding standards & guidelines below.
- Don't break unit tests or functionality.
- Update the documentation header comments if needed.
- Merge the latest from the
develop
branch and resolve any conflicts before submitting a pull request! - Submit a pull request to the
develop
branch.
You should submit one pull request per feature! The smaller the PR, the better your chances are of getting merged. Enormous PRs will likely take enormous amounts of time to review, or they will be rejected.
Style and adherence to conventions is just as important as the code you write. Most of our time is spent reading code, not writing it. Don't be sloppy.
The following sets of guidelines compliment each other well and cover nearly everything. In the event of contradictory rules, the order of the guides below denotes their precedence.
- Apple's Coding Guidelines for Cocoa
- Google's Objective-C Style Guide
- NYTimes Objective-C Style Guide
Clarity and readability should be prioritized, while redundancy should be avoided. Remember that verboseness does not necessarily yield clarity.
Adhere to the following sets of guidelines. In the event of contradictory rules, the order of the guides below denotes their precedence.
- GitHub's Swift Style Guide
- Ray Wenderlich's Swift Style Guide