Changeset View
Changeset View
Standalone View
Standalone View
doc/developer-notes.md
Show All 27 Lines | - [Development guidelines](#development-guidelines) | ||||
- [Strings and formatting](#strings-and-formatting) | - [Strings and formatting](#strings-and-formatting) | ||||
- [Variable names](#variable-names) | - [Variable names](#variable-names) | ||||
- [Threads and synchronization](#threads-and-synchronization) | - [Threads and synchronization](#threads-and-synchronization) | ||||
- [Scripts](#scripts) | - [Scripts](#scripts) | ||||
- [Shebang](#shebang) | - [Shebang](#shebang) | ||||
- [Source code organization](#source-code-organization) | - [Source code organization](#source-code-organization) | ||||
- [GUI](#gui) | - [GUI](#gui) | ||||
- [Unit tests](#unit-tests) | - [Unit tests](#unit-tests) | ||||
- [Subtrees](#subtrees) | - [Third party libraries](#third-party-libraries) | ||||
- [Git and GitHub tips](#git-and-github-tips) | - [Git and GitHub tips](#git-and-github-tips) | ||||
- [RPC interface guidelines](#rpc-interface-guidelines) | - [RPC interface guidelines](#rpc-interface-guidelines) | ||||
<!-- markdown-toc end --> | <!-- markdown-toc end --> | ||||
Coding Style | Coding Style | ||||
--------------- | --------------- | ||||
▲ Show 20 Lines • Show All 650 Lines • ▼ Show 20 Lines | - *Rationale*: Blocking the GUI thread can increase latency, and lead to | ||||
hangs and deadlocks. | hangs and deadlocks. | ||||
Unit Tests | Unit Tests | ||||
----------- | ----------- | ||||
- Test suite naming convention: The Boost test suite in file | - Test suite naming convention: The Boost test suite in file | ||||
`src/test/foo_tests.cpp` should be named `foo_tests`. Test suite names must | `src/test/foo_tests.cpp` should be named `foo_tests`. Test suite names must | ||||
be unique. | be unique. | ||||
Subtrees | Third party libraries | ||||
---------- | --------------------- | ||||
Several parts of the repository are subtrees of software maintained elsewhere. | |||||
Some of these are maintained by active developers of Bitcoin Core, in which case changes should probably go | |||||
directly upstream without being PRed directly against the project. They will be merged back in the next | |||||
subtree merge. | |||||
Others are external projects without a tight relationship with our project. Changes to these should also | Several parts of the repository are software maintained elsewhere. | ||||
be sent upstream but bugfixes may also be prudent to PR against Bitcoin Core so that they can be integrated | |||||
quickly. Cosmetic changes should be purely taken upstream. | |||||
There is a tool in `test/lint/git-subtree-check.sh` to check a subtree directory for consistency with | Changes to these should preferably be sent upstream but bugfixes may also be | ||||
its upstream repository. | submitted to Bitcoin ABC so that they can be integrated quickly. | ||||
Cosmetic changes should be purely taken upstream. | |||||
Current subtrees include: | Current third party libraries include: | ||||
- src/leveldb | - src/leveldb | ||||
- Upstream at https://github.com/google/leveldb ; Maintained by Google, but | - Upstream at https://github.com/google/leveldb ; Maintained by Google. | ||||
open important PRs to Core to avoid delay. | - **Note**: Follow the instructions in [Upgrading LevelDB](#upgrading-leveldb) | ||||
- **Note**: Follow the instructions in [Upgrading LevelDB](#upgrading-leveldb) when | when merging upstream changes to Bitcoin ABC. | ||||
merging upstream changes to the leveldb subtree. | |||||
- src/libsecp256k1 | - src/libsecp256k1 | ||||
- Upstream at https://github.com/bitcoin-core/secp256k1/ ; actively maintaned by Core contributors. | - Upstream at https://github.com/bitcoin-core/secp256k1/ ; actively maintained | ||||
by Bitcoin Core contributors. | |||||
Bitcoin ABC is using a modified version of libsecp256k1, some changes might | |||||
be directly submitted to Bitcoin ABC. | |||||
See the [secp256k1 README](/src/secp256k1/README.md) for details. | |||||
- src/crypto/ctaes | - src/crypto/ctaes | ||||
- Upstream at https://github.com/bitcoin-core/ctaes ; actively maintained by Core contributors. | - Upstream at https://github.com/bitcoin-core/ctaes ; maintained by Bitcoin | ||||
Core contributors. | |||||
- src/univalue | - src/univalue | ||||
- Upstream at https://github.com/jgarzik/univalue ; report important PRs to Core to avoid delay. | - Upstream at https://github.com/jgarzik/univalue ; maintained by Jeff Garzik. | ||||
Upgrading LevelDB | Upgrading LevelDB | ||||
--------------------- | --------------------- | ||||
Extra care must be taken when upgrading LevelDB. This section explains issues | Extra care must be taken when upgrading LevelDB. This section explains issues | ||||
you must be aware of. | you must be aware of. | ||||
### File Descriptor Counts | ### File Descriptor Counts | ||||
▲ Show 20 Lines • Show All 193 Lines • Show Last 20 Lines |