forked from getlantern/lantern
-
Notifications
You must be signed in to change notification settings - Fork 0
[developers] Coding Guidelines
myleshorton edited this page Dec 4, 2014
·
12 revisions
#Coding Guidelines
This document outlines general coding guidelines for programmers working on the Lantern code base:
##Branches
- We follow the branching strategy described in more detail here
- In general all work should take place on feature branches. In many cases those branch names will correspond with the number of the actual ticket. Depending on the feature, those branches will be merged into either the devel branch or the current release branch, with the current release branch being reserved for changes going into the next version. As such, they should generally only contain more stable changes while more destabilizing changes should be merged to devel for inclusion in the subsequent release.
##Coding Code on specific features and/or bugs should include the following:
- A corresponding ticket
- Unit tests
- Reasonable code coverage
- End to end testing of the change
- A pull request
- End to end testing of the feature, including integrating new binaries into Lantern if necessary
##Code Reviews
- Each pull request should be code reviewed
- The code reviewer should both review the code and QA the change.
- The code reviewer should always be the one who actually does the merge.
- If a PR is for a project outside of Lantern that requires new binaries in Lantern, those binaries should be integrated and committed as a part of the code review process.
- If any change depends on another module branches for the other module and/or binaries should be reviewed and merged at the same time as client-side branches.
- When a merge is complete the feature branch should be deleted to avoid proliferation of branches.
##Tests
- All tests should pass always.
- If you make changes that break the tests, you should fix the tests. Don't expect someone else will fix them.
##Happy Coding!!
© 2014 Team Lantern. Some rights reserved. Don't understand a term? Try the Glossary.