- @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 develop, make their changes, and then issue a pull request for another developer to review before the changes get merged back into develop. %p Here is an example, using github with username rms and repository bitmask_client. 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 https://github.com/rms/bitmask_client. %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 https://github.com/leapcode/bitmask_client. 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 feature/my_new_feature branch, with a separate git commit 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 develop 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 https://github.com/rms/bitmask_client, where you will see a handy button to issue a pull request. Make sure that the upstream branch is leapcode/bitmask_client:develop and you are requesting the merge of rms/bitmask_client:feature/my_new_feature. Then you are done. Some other developer will get a notice of your pull request, review the changes, and merge into upstream develop branch. If they have questions or comments, you will get an email from github.