1Bitcoin Core integration/staging tree 2===================================== 3 4https://bitcoincore.org 5 6For an immediately usable, binary version of the Bitcoin Core software, see 7https://bitcoincore.org/en/download/. 8 9Further information about Bitcoin Core is available in the [doc folder](/doc). 10 11What is Bitcoin? 12---------------- 13 14Bitcoin is an experimental digital currency that enables instant payments to 15anyone, anywhere in the world. Bitcoin uses peer-to-peer technology to operate 16with no central authority: managing transactions and issuing money are carried 17out collectively by the network. Bitcoin Core is the name of open source 18software which enables the use of this currency. 19 20For more information read the original Bitcoin whitepaper. 21 22License 23------- 24 25Bitcoin Core is released under the terms of the MIT license. See [COPYING](COPYING) for more 26information or see https://opensource.org/licenses/MIT. 27 28Development Process 29------------------- 30 31The `master` branch is regularly built (see `doc/build-*.md` for instructions) and tested, but it is not guaranteed to be 32completely stable. [Tags](https://github.com/bitcoin/bitcoin/tags) are created 33regularly from release branches to indicate new official, stable release versions of Bitcoin Core. 34 35The https://github.com/bitcoin-core/gui repository is used exclusively for the 36development of the GUI. Its master branch is identical in all monotree 37repositories. Release branches and tags do not exist, so please do not fork 38that repository unless it is for development reasons. 39 40The contribution workflow is described in [CONTRIBUTING.md](CONTRIBUTING.md) 41and useful hints for developers can be found in [doc/developer-notes.md](doc/developer-notes.md). 42 43Testing 44------- 45 46Testing and code review is the bottleneck for development; we get more pull 47requests than we can review and test on short notice. Please be patient and help out by testing 48other people's pull requests, and remember this is a security-critical project where any mistake might cost people 49lots of money. 50 51### Automated Testing 52 53Developers are strongly encouraged to write [unit tests](src/test/README.md) for new code, and to 54submit new unit tests for old code. Unit tests can be compiled and run 55(assuming they weren't disabled in configure) with: `make check`. Further details on running 56and extending unit tests can be found in [/src/test/README.md](/src/test/README.md). 57 58There are also [regression and integration tests](/test), written 59in Python. 60These tests can be run (if the [test dependencies](/test) are installed) with: `test/functional/test_runner.py` 61 62The CI (Continuous Integration) systems make sure that every pull request is built for Windows, Linux, and macOS, 63and that unit/sanity tests are run automatically. 64 65### Manual Quality Assurance (QA) Testing 66 67Changes should be tested by somebody other than the developer who wrote the 68code. This is especially important for large or high-risk changes. It is useful 69to add a test plan to the pull request description if testing the changes is 70not straightforward. 71 72Translations 73------------ 74 75Changes to translations as well as new translations can be submitted to 76[Bitcoin Core's Transifex page](https://www.transifex.com/bitcoin/bitcoin/). 77 78Translations are periodically pulled from Transifex and merged into the git repository. See the 79[translation process](doc/translation_process.md) for details on how this works. 80 81**Important**: We do not accept translation changes as GitHub pull requests because the next 82pull from Transifex would automatically overwrite them again. 83