bitcoin/test/lint
fanquake 669af32632
Merge bitcoin/bitcoin#27419: move-only: Extract common/args from util/system
be55f545d5 move-only: Extract common/args and common/config.cpp from util/system (TheCharlatan)

Pull request description:

  This pull request is part of the `libbitcoinkernel` project https://github.com/bitcoin/bitcoin/issues/24303 https://github.com/bitcoin/bitcoin/projects/18 and more specifically its "Step 2: Decouple most non-consensus code from libbitcoinkernel". It is part of a series of patches splitting up the `util/system` files. Its preceding pull request is https://github.com/bitcoin/bitcoin/pull/27254.

  The pull request contains an extraction of ArgsManager related functions from util/system into their own common/ file.

  The background of this commit is an ongoing effort to decouple the libbitcoinkernel library from the ArgsManager. The ArgsManager belongs into the common library, since the kernel library should not depend on it. See [doc/design/libraries.md](https://github.com/bitcoin/bitcoin/blob/master/doc/design/libraries.md) for more information on this rationale.

ACKs for top commit:
  MarcoFalke:
    re-ACK be55f545d5  🚲
  ryanofsky:
    Code review ACK be55f545d5. Just small cleanups since the last review.
  hebasto:
    ACK be55f545d5, I have reviewed the code and it looks OK, I agree it can be merged.

Tree-SHA512: 90eb03334af0155b823030b4f2ecf286d35058d700ee2ddbbaa445be19e31eb0fe982656f35bd14ecee3ad2c3d0db3746855cb8f3777eff7253713e42873e111
2023-04-21 11:19:08 +01:00
..
all-lint.py Use same Python executable for subprocesses as for all-lint.py 2023-01-03 23:23:07 +02:00
check-doc.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
commit-script-check.sh scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
git-subtree-check.sh scripted-diff: Bump copyright headers 2021-12-30 19:36:57 +02:00
lint-assertions.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-circular-dependencies.py move-only: Extract common/args and common/config.cpp from util/system 2023-04-19 10:48:30 +02:00
lint-files.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
lint-format-strings.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-git-commit-check.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-include-guards.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-includes.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-locale-dependence.py fuzz: Remove legacy int parse fuzz tests 2023-03-27 16:37:31 +02:00
lint-logs.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-python-dead-code.py lint: Convert Python dead code linter to Python 2022-04-06 00:55:22 +02:00
lint-python-mutable-default-parameters.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-python-utf8-encoding.py Disable Python lint in src/secp256k1 2023-04-14 10:36:36 -04:00
lint-python.py Respect and update FILES_ARGS in test/lint/lint-python.py 2023-04-14 10:52:33 -04:00
lint-shell-locale.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-shell.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-spelling.py contrib: remove builder keys 2022-12-19 17:21:35 +00:00
lint-submodule.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-tests.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
lint-whitespace.py scripted-diff: Use new python 3.7 keywords 2023-01-18 13:00:34 +01:00
README.md test: add an easy way to run linters locally 2023-01-18 09:48:08 -05:00
run-lint-format-strings.py Extend bilingual_str support for tinyformat 2023-02-28 12:04:47 -05:00
spelling.ignore-words.txt test, lint: add crypted to ignore-words 2022-12-18 11:46:32 -03:00

This folder contains lint scripts.

Running locally

To run linters locally with the same versions as the CI environment, use the included Dockerfile:

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. 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:

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.