mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-12 04:42:36 -03:00
dff7ed5732
Adds a Dockerfile configuration that allows straightforward running of linters with compatible versions locally. This removes a ton of annoyance when trying to appease CI, because many of the linter versions are quite old and difficult to maintain locally. I realize that people may not be thrilled to more ancillary tooling to the repo, but I think this makes a lot of sense given the linter versions listed in this container configuration are dictated by this repo (within the CI configuration), so having these things live in two separate places is a recipe for version mismatches. Eventually we can likely just use this container on CI directly to avoid any chance of inconsistencies between local dev experience and CI.
61 lines
2 KiB
Markdown
61 lines
2 KiB
Markdown
This folder contains lint scripts.
|
|
|
|
Running locally
|
|
===============
|
|
|
|
To run linters locally with the same versions as the CI environment, use the included
|
|
Dockerfile:
|
|
|
|
```sh
|
|
cd ./ci/lint
|
|
docker build -t bitcoin-linter .
|
|
|
|
cd /root/of/bitcoin/repo
|
|
docker run --rm -v $(pwd):/bitcoin -it bitcoin-linter
|
|
```
|
|
|
|
After building the container once, you can simply run the last command any time you
|
|
want to lint.
|
|
|
|
|
|
check-doc.py
|
|
============
|
|
Check for missing documentation of command line options.
|
|
|
|
commit-script-check.sh
|
|
======================
|
|
Verification of [scripted diffs](/doc/developer-notes.md#scripted-diffs).
|
|
Scripted diffs are only assumed to run on the latest LTS release of Ubuntu. Running them on other operating systems
|
|
might require installing GNU tools, such as GNU sed.
|
|
|
|
git-subtree-check.sh
|
|
====================
|
|
Run this script from the root of the repository to verify that a subtree matches the contents of
|
|
the commit it claims to have been updated to.
|
|
|
|
```
|
|
Usage: test/lint/git-subtree-check.sh [-r] DIR [COMMIT]
|
|
test/lint/git-subtree-check.sh -?
|
|
```
|
|
|
|
- `DIR` is the prefix within the repository to check.
|
|
- `COMMIT` is the commit to check, if it is not provided, HEAD will be used.
|
|
- `-r` checks that subtree commit is present in repository.
|
|
|
|
To do a full check with `-r`, make sure that you have fetched the upstream repository branch in which the subtree is
|
|
maintained:
|
|
* for `src/secp256k1`: https://github.com/bitcoin-core/secp256k1.git (branch master)
|
|
* for `src/leveldb`: https://github.com/bitcoin-core/leveldb-subtree.git (branch bitcoin-fork)
|
|
* for `src/crypto/ctaes`: https://github.com/bitcoin-core/ctaes.git (branch master)
|
|
* for `src/crc32c`: https://github.com/bitcoin-core/crc32c-subtree.git (branch bitcoin-fork)
|
|
* for `src/minisketch`: https://github.com/sipa/minisketch.git (branch master)
|
|
|
|
To do so, add the upstream repository as remote:
|
|
|
|
```
|
|
git remote add --fetch secp256k1 https://github.com/bitcoin-core/secp256k1.git
|
|
```
|
|
|
|
all-lint.py
|
|
===========
|
|
Calls other scripts with the `lint-` prefix.
|