bitcoin/test/lint
fanquake 43704827b4
Merge bitcoin/bitcoin#28211: Bump python minimum supported version to 3.9
fa25e8b0a1 doc: Recommend lint image build on every call (MarcoFalke)
faf70c1f33 Bump python minimum version to 3.9 (MarcoFalke)
fa8996b930 ci: Bump i686_multiprocess.sh to latest Ubuntu LTS (MarcoFalke)

Pull request description:

  All supported operating systems ship with python 3.9 (or later), so bumping the minimum should not cause any issues. A bump will allow new code to use new python 3.9 features.

  For reference:
  * https://packages.debian.org/bullseye/python3
  * https://packages.ubuntu.com/focal/python3.9
  * FreeBSD 12/13 also ships with 3.9
  * CentOS-like 8/9 also ships with 3.9 (and 3.11)
  * OpenSuse Leap also ships with 3.9 (and 3.11) https://software.opensuse.org/package/python311-base

  This is for Bitcoin Core 27.0 in 2024 (next year), not the soon upcoming 26.0 next month.

ACKs for top commit:
  Sjors:
    ACK fa25e8b0a1
  jamesob:
    ACK fa25e8b0a1 ([`jamesob/ackr/28211.1.MarcoFalke.bump_python_minimum_supp`](https://github.com/jamesob/bitcoin/tree/ackr/28211.1.MarcoFalke.bump_python_minimum_supp))

Tree-SHA512: 86c9f6ac4b5ba94a62ee6a6062dd48a8295d8611a39cdb5829f4f0dbc77aaa1a51edccc7a99275bf699143ad3a6fe826de426d413e5a465e3b0e82b86d10c32e
2023-10-24 17:24:30 +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 doc: Remove confusing assert linter 2023-09-14 18:59:52 +02:00
lint-circular-dependencies.py Remove unused includes from wallet.cpp 2023-08-18 08:20:43 +02:00
lint-files.py scripted-diff: Bump copyright headers 2022-12-24 23:49:50 +00:00
lint-format-strings.py tidy: Integrate bicoin-tidy clang-tidy plugin 2023-08-03 17:52:24 +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 tidy: Integrate bicoin-tidy clang-tidy plugin 2023-08-03 17:52:24 +01:00
lint-includes.py tidy: Integrate bicoin-tidy clang-tidy plugin 2023-08-03 17:52:24 +01:00
lint-locale-dependence.py fuzz: Remove legacy int parse fuzz tests 2023-03-27 16:37:31 +02: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 lint: Ignore check_fileopens failure on **kwargs 2023-07-20 09:15:43 +02:00
lint-python.py lint: fix custom mypy cache dir setting 2023-09-28 13:20:25 +02:00
lint-shell-locale.py refactor: cleanups post unsubtree'ing univalue 2022-06-15 12:56:44 +01:00
lint-shell.py lint: Include test_utxo_snapshots in lint_shell 2023-10-13 14:06:06 +02: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 doc: Recommend lint image build on every call 2023-08-29 11:54:36 +02:00
run-lint-format-strings.py refactor: Enforce C-str fmt strings in WalletLogPrintf() 2023-08-08 10:55:11 +02:00
spelling.ignore-words.txt script: update ignored-words.txt 2023-06-29 16:14:07 -06:00

This folder contains lint scripts.

Running locally

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

DOCKER_BUILDKIT=1 docker build -t bitcoin-linter --file "./ci/lint_imagefile" ./ && docker run --rm -v $(pwd):/bitcoin -it bitcoin-linter

Building the container can be done every time, because it is fast when the result is cached and it prevents issues when the image changes.

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.