Contributing

Filing an Issue

This is the way to report non-security related issues and also to request features.

  1. Go to bitcoinpython’s GitHub Issues.
  2. Look through open and closed issues to see if there has already been a similar bug report or feature request. GitHub’s search feature may aid you as well.
  3. If your issue doesn’t appear to be a duplicate, file an issue.
  4. Please be as descriptive as possible!

Pull Request

  1. Fork the repository on GitHub.
  2. Create a new branch for your work.
  3. Make your changes (see below).
  4. Send a GitHub Pull Request to the master branch of ofek/bitcoinpython.

Step 3 is different depending on if you are contributing to the code base or documentation.

Code

  1. Install pytest and coverage if you don’t have them already.
  2. Run run_tests.py which is located in the project directory. If any tests fail, and you are unable to diagnose the reason, please refer to Filing an Issue.
  3. Complete your patch and write tests to verify your fix or feature is working. Please try to reduce the size and scope of your patch to make the review process go smoothly.
  4. Run the tests again and make any necessary changes to ensure all tests pass.
  5. Add any changes to the Unreleased section of HISTORY.rst.

Documentation

  1. Enter the docs directory.
  2. Make your changes to any files in source/.
  3. Run make clean && make html. This will generate html files in a new build/html/ directory.
  4. Open the generated pages and make any necessary changes to the .rst files until the documentation looks properly formatted.

TODO

  • Add optional caching with LMDB
  • Implement replace-by-fee
  • Implement future payments
  • Implement HD wallets
  • Support getting unspents with confirmation limit
  • Add CLI using Click
  • direct network connection (ughh sockets)
  • segwit
  • Add GUI using Kivy