Changeset View
Changeset View
Standalone View
Standalone View
CONTRIBUTING.md
Show First 20 Lines • Show All 125 Lines • ▼ Show 20 Lines | |||||
Contributing to the node software | Contributing to the node software | ||||
--------------------------------- | --------------------------------- | ||||
During submission of patches, arcanist will automatically run `arc lint` to | During submission of patches, arcanist will automatically run `arc lint` to | ||||
enforce Bitcoin ABC code formatting standards, and often suggests changes. | enforce Bitcoin ABC code formatting standards, and often suggests changes. | ||||
If code formatting tools do not install automatically on your system, you | If code formatting tools do not install automatically on your system, you | ||||
will have to install the following: | will have to install the following: | ||||
On Ubuntu (>= 18.04+updates): | On Ubuntu 20.04: | ||||
``` | ``` | ||||
sudo apt-get install clang-format-8 clang-tidy-8 clang-tools-8 cppcheck python3-autopep8 flake8 php-codesniffer yamllint | sudo apt-get install clang-format clang-tidy clang-tools cppcheck python3-autopep8 flake8 php-codesniffer yamllint | ||||
``` | ``` | ||||
On Debian (>= 10), the clang-8 family of tools is available from the `buster-backports` repository: | If not available in the distribution, `clang-format-10` and `clang-tidy` can be | ||||
installed from <https://releases.llvm.org/download.html> or <https://apt.llvm.org>. | |||||
On Debian (>= 10), the clang-10 family of tools is available from the https://apt.llvm.org/ repository: | |||||
``` | ``` | ||||
echo "deb http://deb.debian.org/debian buster-backports main" | sudo tee -a /etc/apt/sources.list | wget https://apt.llvm.org/llvm.sh | ||||
sudo apt-get update | chmod +x llvm.sh | ||||
sudo apt-get install cppcheck python3-autopep8 flake8 php-codesniffer mypy | sudo ./llvm.sh 10 | ||||
sudo apt-get -t buster-backports install clang-format-8 clang-tidy-8 clang-tools-8 | |||||
``` | ``` | ||||
If not available in the distribution, `clang-format-8` and `clang-tidy` can be | |||||
installed from <https://releases.llvm.org/download.html> or <https://apt.llvm.org>. | |||||
For example, for macOS: | For example, for macOS: | ||||
``` | ``` | ||||
curl http://releases.llvm.org/8.0.0/clang+llvm-8.0.0-x86_64-apple-darwin.tar.xz | tar -xJv | curl -L https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.0/clang+llvm-10.0.0-x86_64-apple-darwin.tar.xz | tar -xJv | ||||
ln -s $PWD/clang+llvm-8.0.0-x86_64-apple-darwin/bin/clang-format /usr/local/bin/clang-format | ln -s $PWD/clang+llvm-10.0.0-x86_64-apple-darwin/bin/clang-format /usr/local/bin/clang-format | ||||
ln -s $PWD/clang+llvm-8.0.0-x86_64-apple-darwin/bin/clang-tidy /usr/local/bin/clang-tidy | ln -s $PWD/clang+llvm-10.0.0-x86_64-apple-darwin/bin/clang-tidy /usr/local/bin/clang-tidy | ||||
``` | ``` | ||||
If you are modifying a python script, you will need to install `mypy`. The minimum required version is 0.780, because | If you are modifying a python script, you will need to install `mypy`. The minimum required version is 0.780, because | ||||
the previous ones are known to have issues with some python type annotations. | the previous ones are known to have issues with some python type annotations. | ||||
On Debian based systems, this can be installed via: | On Debian based systems, this can be installed via: | ||||
``` | ``` | ||||
sudo apt-get install python3-pip | sudo apt-get install python3-pip | ||||
pip3 install mypy==0.780 | pip3 install mypy==0.780 | ||||
▲ Show 20 Lines • Show All 113 Lines • Show Last 20 Lines |