LEAP logo

LEAP Encryption Access Project

Contributing Code

How to issue a pull request.


Please see the CONTRIBUTING file in the bitmask_client repository.

Example PR

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.

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.

Step 1 — Fork on github

Login to github.com as 'rms', browse to https://github.com/leapcode/bitmask_client, and click the fork button.

Now you should have a fork of the code available at https://github.com/rms/bitmask_client.

Step 2 — Set up local clone

Clone the upstream repository:

git clone https://leap.se/git/bitmask_client
cd bitmask_client
NOTE: Alternately, you can use the github mirror at https://github.com/leapcode/bitmask_client. It does not matter which one you choose.

Step 4 — Add a "remote" for your fork

Next, you need to add the fork you created on github as an alternate remote in your local repository:

git remote add rms https://github.com/rms/bitmask_client.git

Step 5 — Create a new feature branch

git fetch origin
git checkout develop
git checkout -b feature/my_new_feature

Step 6 — Hack away

Make all your changes in your feature/my_new_feature branch, with a separate git commit for each discrete modification you make.

Step 7 — Prepare for pull request

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.

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

Step 8 — Submit pull request

Next, you will push your local feature branch to your fork on github, and then issue a pull request.

git push rms feature/my_new_feature

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.