maflcko
commented at 12:34 pm on March 12, 2026:
member
Currently, vulture is run with --min-confidence=100, which reduces its checks to dead code after control statements, which is nice, but not really a common nor severe issue. See the discussion in #34810 (comment) and commit 5c005363a880c136cc44ff2456a402e398fcbf44, which had to remove dead code manually.
Reducing the confidence has shown to be too brittle/tedious in the past, so remove the tool for now from CI.
Of course, removing this from CI does not prevent anyone from running it locally and removing dead code.
If your review is incorrectly listed, please copy-paste <!–meta-tag:bot-skip–> into the comment that the bot should ignore.
Conflicts
Reviewers, this pull request conflicts with the following ones:
#34547 (lint: modernise lint tooling by willcl-ark)
If you consider this pull request important, please also help to review the conflicting pull requests. Ideally, start with the one that should be merged first.
l0rinc
commented at 12:40 pm on March 12, 2026:
contributor
maflcko renamed this:
ci: Remove vulture
test: Remove vulture from ci, Remove some --min-confidence=60 unused code
on Mar 12, 2026
maflcko
commented at 2:09 pm on March 12, 2026:
member
Of course, removing this from CI does not prevent anyone from running it locally and removing dead code.
Went ahead and did this myself. I ran vulture $( git ls-files -- '*.py' ) and then manually went through the ~200 lines and removed the stuff that was really unused.
DrahtBot added the label
CI failed
on Mar 12, 2026
willcl-ark
commented at 2:45 pm on March 12, 2026:
member
I see this locally?
0F401[*]`test_framework.script_util.key_to_p2pk_script`importedbutunused 1-->test/functional/feature_segwit.py:32:5 2| 330|) 431|fromtest_framework.script_utilimport( 532|key_to_p2pk_script, 6|^^^^^^^^^^^^^^^^^^ 733|key_to_p2wpkh_script, 834|keys_to_multisig_script, 9|10help:Removeunusedimport1112F401[*]`test_framework.script_util.key_to_p2wpkh_script`importedbutunused13-->test/functional/feature_segwit.py:33:514|1531|fromtest_framework.script_utilimport(1632|key_to_p2pk_script,1733|key_to_p2wpkh_script,18|^^^^^^^^^^^^^^^^^^^^1934|keys_to_multisig_script,2035|script_to_p2sh_script,21|22help:Removeunusedimport2324F401[*]`test_framework.script_util.script_to_p2sh_script`importedbutunused25-->test/functional/feature_segwit.py:35:526|2733|key_to_p2wpkh_script,2834|keys_to_multisig_script,2935|script_to_p2sh_script,30|^^^^^^^^^^^^^^^^^^^^^3136|script_to_p2wsh_script,3237|)33|34help:Removeunusedimport3536F401[*]`test_framework.script_util.script_to_p2wsh_script`importedbutunused37-->test/functional/feature_segwit.py:36:538|3934|keys_to_multisig_script,4035|script_to_p2sh_script,4136|script_to_p2wsh_script,42|^^^^^^^^^^^^^^^^^^^^^^4337|)4438|fromtest_framework.test_frameworkimportBitcoinTestFramework45|46help:Removeunusedimport4748F401[*]`enum`importedbutunused49-->test/functional/test_framework/address.py:11:850|519|-bech32msegwitv1P2TRaddresses."""
5210 |
5311 | import enum
54 | ^^^^
5512 | import unittest
56 |
57help: Remove unused import: `enum`
5859Found 5 errors.
60[*] 5 fixable with the `--fix` option.
61^^^
62`ruff` found errors!
63^---- ⚠️ Failure generated from lint check 'py_lint' (Lint Python code)!
646566src/crc32c in HEAD currently refers to tree 28f07d0bd5d6fcd3273d9651ff3c960ad344c20267src/crc32c in HEAD was last updated in commit 9a5d29711afcdc4609da4786673758e641958bb4 (tree 28f07d0bd5d6fcd3273d9651ff3c960ad344c202)
68GOOD
69src/crypto/ctaes in HEAD currently refers to tree 1b6c31139a71f80245c09597c343936a8e41d02170src/crypto/ctaes in HEAD was last updated in commit 8501bedd7508ac514385806e191aec21ee978891 (tree 1b6c31139a71f80245c09597c343936a8e41d021)
71GOOD
72src/ipc/libmultiprocess in HEAD currently refers to tree f88433d756e02de05276361a5c7e41c71dd5823173src/ipc/libmultiprocess in HEAD was last updated in commit b7ca3bf061b51108d155283c1ad503c0af7eab0d (tree f88433d756e02de05276361a5c7e41c71dd58231)
74GOOD
75src/leveldb in HEAD currently refers to tree fe97d24767d36e3d80902af8da83a46f68c34b9676src/leveldb in HEAD was last updated in commit 2f2952c5f2e367ccac34025a159c9fbaffd7f172 (tree fe97d24767d36e3d80902af8da83a46f68c34b96)
77GOOD
78src/minisketch in HEAD currently refers to tree f1581edd423bcf531d0d956149eb8abe45f7557079src/minisketch in HEAD was last updated in commit 4543a3bde26ff2440c16b06cc1dcf1994dc85720 (tree f1581edd423bcf531d0d956149eb8abe45f75570)
80GOOD
81src/secp256k1 in HEAD currently refers to tree 15001ae05f06101b13596633fad8c75dcec693b082src/secp256k1 in HEAD was last updated in commit 9d4c9b00356e02de223033adb7680b47b743caab (tree 15001ae05f06101b13596633fad8c75dcec693b0)
83GOOD
84test/functional/feature_segwit.py:70: error: Need type annotation for "txs_mined" (hint: "txs_mined:dict[<type>,<type>]=...") [var-annotated]
85Found 1 error in 1 file (checked 311 source files)
86^---- ⚠️ Failure generated from lint-python.py
87^^^
8889^---- ⚠️ Failure generated from lint check 'all_python_linters' (Run all linters of the form: test/lint/lint-*.py)!
test: Remove unused AddressType
unused after commit c847dee1488a294c9a9632a00ba1134b21e41947
Unused after commit be25ac3092b7755e26e1ec6c33a27cd0e3dd9eac
fa7bac94d8
test: Remove unused CUSTOM_._COUNT
Unused after commit cf3ab8e1d0a2f2bdf72e61e2c2dcb35987e5b9bd
fa6b05c96f
test: Remove unused feature_segwit.py functions
Unused after commit c847dee1488a294c9a9632a00ba1134b21e41947
fa90b21430
maflcko force-pushed
on Mar 12, 2026
maflcko
commented at 3:06 pm on March 12, 2026:
member
I see this locally?
Thx, removed all those lines as well. Let’s see if lint CI passes … edit: passed
DrahtBot removed the label
CI failed
on Mar 12, 2026
willcl-ark approved
willcl-ark
commented at 10:30 am on March 14, 2026:
member
ACKfa90b21430b4f3bae6f4092a27e611bb06f2777f
Changes LGTM.
Of course, removing this from CI does not prevent anyone from running it locally and removing dead code.
Well, its free to run on GHA so stuck it in my nightly repo at confidence level 100.
Could probably set it to run monthly at confidence=60 and have claude prune the output for false positives, but not sure there is enough demand/benefit.
DrahtBot requested review from l0rinc
on Mar 14, 2026
fanquake
commented at 4:33 am on March 16, 2026:
member
ACKfa90b21430b4f3bae6f4092a27e611bb06f2777f
fanquake merged this
on Mar 16, 2026
fanquake closed this
on Mar 16, 2026
maflcko deleted the branch
on Mar 16, 2026
maflcko
commented at 6:42 am on March 16, 2026:
member
Could probably set it to run monthly at confidence=60 and have claude prune the output for false positives, but not sure there is enough demand/benefit.
I was thinking about once before every branch-off (6 months), or just once every time we find one dead function manually, re-run the tool for all code.
This is a metadata mirror of the GitHub repository
bitcoin/bitcoin.
This site is not affiliated with GitHub.
Content is generated from a GitHub metadata backup.
generated: 2026-04-05 12:13 UTC
This site is hosted by @0xB10C More mirrored repositories can be found on mirror.b10c.me