How to Contribute to Bitcore

Are you a developer looking to learn more about bitcoin? Bitcore is a great opportunity to learn and give back to the community. At BitPay we encourage any developer to read the source code and help us improve it by fixing bugs, implementing new exciting features, and testing existing code.

Pull requests are the standard mechanism by which you contribute code to open-source projects. To do so, start by forking our repo on GitHub. Go to github.com/bitpay/bitcore and click the 'Fork' button. You'll get your own fork of the repository which will look something like this:

https://github.com/user/bitcore  

Then clone your fork on your machine:

git clone git@github.com:user/bitcore && cd bitcore/  

Add the official repo as a remote, to track our changes:

git remote add bitpay git@github.com:bitpay/bitcore.git  

Create a new branch for the changes you are going to contribute, with a relevant name. Some examples:

git checkout -b test/some-module  
git checkout -b feature/some-new-stuff  
git checkout -b fix/some-bug  
git checkout -b remove/some-file  

Work on your changes:

vim somefile.txt  
git add somefile.txt  
git commit -a -m"adding somefile.txt"  

You don't need to actually run this, of course :)

When you think your code is ready, update your branch by
getting the changes from the main repo first, as there may have been
changes while you were working:

git pull --rebase bitpay master  

(You may need to solve any conflicts from the rebase at this point.)

A final and important step is to run the tests and check they all pass.
This is done by running mocha in the project's directory. You'll also
need to check that tests pass in the browser, by running:
grunt shell and opening the bitcore/test/index.html file in your browser.

After that, you can push the changes to your fork, by doing:

git push origin your_branch_name  
git push origin feature/some-new-stuff  
git push origin fix/some-bug  

Finally go to github.com/bitpay/bitcore in your web browser and issue a new pull request. GitHub normally recognizes you have pending changes in a new branch and will suggest creating the pull request. If it doesn't, you can always go to github.com/bitpay/bitcore/compare and choose the correct forks and branches.

Main contributors will review your code and possibly ask for
changes before your code is pulled in to the main repository.
We'll check that all tests pass, review the coding style, and
check for general code correctness. If everything is OK, we'll
merge your pull request, and your code will be part of bitcore.

If you have any questions feel free to post them to
github.com/bitpay/bitcore/issues.

Thanks for your time and code!

Get the latest updates to your inbox