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:
Then clone your fork on your machine:
git clone email@example.com:user/bitcore && cd bitcore/
Add the official repo as a remote, to track our changes:
git remote add bitpay firstname.lastname@example.org: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
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
Thanks for your time and code!