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