diff options
Diffstat (limited to 'docs/get-involved/coding.haml')
-rw-r--r-- | docs/get-involved/coding.haml | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/docs/get-involved/coding.haml b/docs/get-involved/coding.haml new file mode 100644 index 0000000..86686b1 --- /dev/null +++ b/docs/get-involved/coding.haml @@ -0,0 +1,77 @@ +- @title = "Contributing Code" +- @summary = "How to issue a pull request." + +%h1.first Contributing Code + +%h3 Submitting a pull request + +%p All development happens via pull requests. To add a new feature or fix a bug, the developer must create a new branch off <code>develop</code>, make their changes, and then issue a pull request for another developer to review before the changes get merged back into <code>develop</code>. + +%p Here is an example, using github with username <code>rms</code> and repository <code>bitmask_client</code>. You don't need to use github, but it is a friendly way to get started. + +%p + %b Step 1 — Fork on github + +%p Login to github.com as 'rms', browse to #{link 'https://github.com/leapcode/bitmask_client'}, and click the fork button. + +%p Now you should have a fork of the code available at <code>https://github.com/rms/bitmask_client</code>. + +%p + %b Step 2 — Set up local clone + +%p Clone the upstream repository: + +%pre + %code + git clone https://leap.se/git/bitmask_client + cd bitmask_client + +%blockquote + .p NOTE: Alternately, you can use the github mirror at <code>https://github.com/leapcode/bitmask_client</code>. It does not matter which one you choose. + +%p + %b Step 4 — Add a "remote" for your fork + +%p Next, you need to add the fork you created on github as an alternate remote in your local repository: + +%pre + %code + git remote add rms https://github.com/rms/bitmask_client.git + +%p + %b Step 5 — Create a new feature branch + +%pre + %code + git fetch origin + git checkout develop + git checkout -b feature/my_new_feature + +%p + %b Step 6 — Hack away + +%P Make all your changes in your <code>feature/my_new_feature</code> branch, with a separate <code>git commit</code> for each discrete modification you make. + +%p + %b Step 7 — Prepare for pull request + +%p Once you are happy with your branch, prepare it for a pull request by rebasing on the latest upstream <code>develop</code> branch. This will also give you an opportunity to clean up your commit history by squashing and changing commit messages. + +%pre + %code + git fetch origin # ensure the latest + git checkout feature/my_new_feature # if not already checked out + git rebase -i develop # rebase and clean up commits + +%p + %b Step 8 — Submit pull request + +%p Next, you will push your local feature branch to your fork on github, and then issue a pull request. + +%pre + %code + git push rms feature/my_new_feature + +%p Then browse to <code>https://github.com/rms/bitmask_client</code>, where you will see a handy button to issue a pull request. Make sure that the upstream branch is <code>leapcode/bitmask_client:develop</code> and you are requesting the merge of <code>rms/bitmask_client:feature/my_new_feature</code>. + +Then you are done. Some other developer will get a notice of your pull request, review the changes, and merge into upstream <code>develop</code> branch. If they have questions or comments, you will get an email from github. |