.
. #35280
pull rustaceanrob wants to merge 20 commits into bitcoin:master from rustaceanrob:rm-functional-test changing 1129 files +738 −480286-
rustaceanrob commented at 1:06 PM on May 13, 2026: contributor
-
b6ee635472
build: remove GUI (bitcoin-qt) from build system
Remove all CMake options, modules, and deployment logic related to the Qt GUI: BUILD_GUI, WITH_QRENCODE, WITH_DBUS, BUILD_GUI_TESTS, Qt 6.2 package discovery, FindQt.cmake, FindQRencode.cmake, the macOS app bundle deploy target, and share/qt translation/plist files. Update the Windows NSIS installer and ENABLE_IPC description accordingly. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
93b08fbbc0
test: remove GUI test suite (test_bitcoin-qt)
Remove src/qt/test/ entirely and clean up references to test_bitcoin-qt in src/test/README.md and doc/files.md. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
ed019a8f53
gui: remove src/qt/, init stubs, and all GUI references
Delete the entire src/qt/ directory, both GUI init implementations (bitcoin-qt.cpp, bitcoin-gui.cpp), the Qt translation lint script, and the Qt translation process doc. Update all references to bitcoin-qt and bitcoin-gui throughout source files, CI scripts, contrib tools, and documentation.
-
77a107b810
gui: remove remaining Qt/GUI references from CI, docs, and config
Remove -DBUILD_GUI=OFF and Qt package dependencies from CI scripts, drop -DBUILD_GUI_TESTS=OFF from guix and libmultiprocess build scripts, delete the Transifex config, and remove translation workflow references from README, CONTRIBUTING, and release docs.
-
f4e5202db6
Merge pull request #4 from rustaceanrob/26-5-12-rm-gui
Remove the GUI
-
e35ca827de
nuke: wallet + psbt + external-signer (src, build, deps, ci, tests, docs) (#5)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
-
1d2d308388
nuke: indexes + compact-filters (src, build, ci, tests, docs) (#7)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
-
70982a6ffb
nuke: assumeutxo (#8)
* nuke: assumeutxo (commit 1 of 3) - drop user-facing surface Delete loadtxoutset and getchainstates RPCs, empty all chains' m_assumeutxo_data, drop feature_assumeutxo.py, tool_bitcoin_chainstate.py and utxo_snapshot fuzz target, delete the now-orphan snapshot-related unit tests. The snapshot machinery (ActivateSnapshot, PopulateAndValidateSnapshot, etc.) is still in place but unreachable from outside the binary. Removed in the next commit. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * nuke: assumeutxo (commit 2 of 3) - rip snapshot machinery Delete AssumeutxoHash/AssumeutxoData/AssumeutxoForHeight/ForBlockhash and GetAvailableSnapshotHeights from chainparams. Delete ChainstateRole, the Assumeutxo enum, SnapshotMetadata, SnapshotCompletionResult, and the m_from_snapshot_blockhash / m_target_blockhash / m_target_utxohash / m_cached_snapshot_base / m_cached_target_block members on Chainstate. Drop ActivateSnapshot, PopulateAndValidateSnapshot, MaybeValidateSnapshot, DetectSnapshotChainstate, ActivateExistingSnapshot, HistoricalChainstate, ValidatedChainstate, RemoveChainstate, LoadAssumeutxoChainstate, ValidatedSnapshotCleanup, GetBackgroundVerificationProgress and the snapshot-aware paths in CheckBlockIndex / LoadBlockIndex / LoadChainTip / UpdateTipLog / MaybeRebalanceCaches. Delete BLOCK_ASSUMED_VALID, BlockManager::m_snapshot_height, the per-snapshot blockfile cursor array, and the NODE_NETWORK-flip on snapshot load. Drop the ChainstateRole parameter from BlockConnected and ChainStateFlushed across validationinterface, node/interfaces, zmqnotificationinterface, bitcoinkernel. Drop Chain::hasAssumedValidChain. ChainstateManager still holds std::vector<std::unique_ptr<Chainstate>> m_chainstates with exactly one entry; commit 3 collapses that to a single unique_ptr. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * nuke: assumeutxo (commit 3 of 3) - collapse m_chainstates to single chainstate ChainstateManager::m_chainstates was a std::vector<std::unique_ptr<Chainstate>> that could hold up to two chainstates (one snapshot-based, one background). With the snapshot machinery gone, replace it with a single std::unique_ptr<Chainstate> m_chainstate. Rewrite every `for (auto& cs : m_chainstates)` loop to operate on the sole chainstate directly. InitializeChainstate / ActiveChainstate / ActivateBestChains / ResetChainstates simplified accordingly, plus the matching call sites in init.cpp, node/chainstate.cpp, kernel/bitcoinkernel.cpp, test/util/validation.cpp, and the consistency checks in CheckBlockIndex. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
-
b9455813f4
nuke: rest tests (unit, functional, build)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
4c1b9d84f1
nuke: rest (src, build, init)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
fb00efb24d
Merge pull request #9 from rustaceanrob/26-5-13-rm-rest
Remove the REST interface
-
2ddf3f9f41
contrib: add cherry-pick-upstream Rust tool
Adds a binary that fetches Bitcoin Core's master branch, finds the common ancestor with the current branch, then attempts to cherry-pick each merged PR (merge commits) in order. Conflicts are logged and skipped; the tool continues to the end and prints a summary. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
ca8274c792
Merge bitcoin/bitcoin#34547: lint: modernise lint tooling
2424e5283672e10bc45cdbca1a8851308716b50c lint: doc: detail lint tool install methods (will) 5fefa5a654e2a1146c8abc9673e72d7bcbf2f757 Don't pin Python patch version (Sjors Provoost) fd15b55c2ef607525d45f26ab3e7f3fc600e29af lint: use requirements.txt (will) 5f4d3383daa064d188ef8c6b1d9adbad3a67bcb6 lint: switch to ruff for formatting and linting (will) a53b81ce4e649dd637a217686745a6f6c6c81ca5 lint: switch to uv for python management in linter (will) Pull request description: Modernise our lint tooling by: \- Replacing pyenv + pip with [uv](https://docs.astral.sh/uv/) for better Python environment and dependency management \- Move uv ruff and ty to install via `COPY --from` multi-stage Docker image imports \- Moving ruff lint rules from hardcoded Rust array (in lint_py.rs) into a top-level ruff.toml \- Extracting all remaining pip dependencies into dedicated ci/lint/requirements.txt Extra rationale: `COPY --from` pulls pre-built binaries from upstream images instead of compiling/downloading at runtime. Containerfile layer optimisations reduce rebuild frequency further. Pinning tool versions in the dockerfile makes it more excplicit and easier to find. The tradeoff we make here is that there is no longer a single install script to install tooling on a local machine. However I think this is OK, as it currently only works for `apt`-based OSes anyway, and I don't think running the linter outside of the container is such a valuable use-case as it is with some of the other CI jobs. ACKs for top commit: maflcko: review ACK 2424e5283672e10bc45cdbca1a8851308716b50c 🗿 sedited: ACK 2424e5283672e10bc45cdbca1a8851308716b50c Tree-SHA512: 32ef989c1e241cebe5f13da10abd23f6f63306591fd1f81880d688b886082bca17987591dc592c41fbb72278eba57b3cc6e786de7cfa80eb490ab34465d0119b (cherry picked from commit 09a9bb3536718d0dffa6f797ddff907df6ef94f9) -
2459d614a6
Merge bitcoin/bitcoin#35277: ci: Enable ruff ambiguous-unicode-character checks
fa9c919678c0d4926ff735eecf12562d99a7e691 refactor: Use ignore-list over verbose select-list (MarcoFalke) fa9b01adecce7d2e2f0091a363bcf98cf5d5c378 ci: Enable ruff ambiguous-unicode-character checks (MarcoFalke) Pull request description: Ambiguous unicode chars are unused and confusing. Worst, they can lead to bugs. So enable the ruff checks to catch them. Can be tested via: ``` echo 'ZGlmZiAtLWdpdCBhL3Rlc3QvZnVuY3Rpb25hbC93YWxsZXRfZGlzYWJsZS5weSBiL3Rlc3QvZnVu Y3Rpb25hbC93YWxsZXRfZGlzYWJsZS5weQppbmRleCBkYmNjY2Q0Li4wYjhjNDQ2IDEwMDc1NQot LS0gYS90ZXN0L2Z1bmN0aW9uYWwvd2FsbGV0X2Rpc2FibGUucHkKKysrIGIvdGVzdC9mdW5jdGlv bmFsL3dhbGxldF9kaXNhYmxlLnB5CkBAIC0yMSwzICsyMSw4IEBAIGNsYXNzIERpc2FibGVXYWxs ZXRUZXN0IChCaXRjb2luVGVzdEZyYW1ld29yayk6CiAgICAgZGVmIHJ1bl90ZXN0IChzZWxmKToK KyAgICAgICAgIiIiQSBsb3ZlbHkgZG9jc3RyaW5nICh3aXRoIGEgYFUrRkYwOWAgcGFyZW50aGVz aXPvvIkuIiIiCiAgICAgICAgICMgTWFrZSBzdXJlIHdhbGxldCBpcyByZWFsbHkgZGlzYWJsZWQK KyAgICAgICAgIyBu0L5xYSAgIzwtIGlzIEN5cmlsbGljIChgVSswNDNFYCkKKyAgICAgICAgcHJp bnQoIs6XZWxsbywgd29ybGQhIikgICMgPC0gaXMgdGhlIEdyZWVrIGV0YSAoYFUrMDM5N2ApLgor ICAgICAgICBleGFtcGxlID0gInjigI8iICogMTAwICAjICAgICLigI94IiBpcyBhc3NpZ25lZAor ICAgICAgICBleGFtcGxlPU5vbmUjbm9xYQogICAgICAgICBhc3NlcnRfcmFpc2VzX3JwY19lcnJv cigtMzI2MDEsICdNZXRob2Qgbm90IGZvdW5kJywgc2VsZi5ub2Rlc1swXS5nZXR3YWxsZXRpbmZv KQo=' | base64 --decode | git apply git diff ruff check ./test/functional/*.py ``` It should print 4 error types. ACKs for top commit: stickies-v: ACK fa9c919678c0d4926ff735eecf12562d99a7e691 willcl-ark: ACK fa9c919678c0d4926ff735eecf12562d99a7e691 Tree-SHA512: de226ec2feaf65a0a8b15606708cc390296be4492f41221f8a49f034b16e8fb62125342c6993f9d5c76bd4ae2db7343851b252a1b9140e27d6777f19a0b1605e (cherry picked from commit 82733e61deea24cfd344aed36020675a15cc672e) -
b42dd03018
Merge pull request #11 from rustaceanrob/daily-cherry-pick
Daily cherry pick
-
1a42e017d6
contrib: cherry-pick-upstream: skip already-applied commits
Track which upstream merge commits were previously cherry-picked by scanning our branch's commit messages for the "(cherry picked from commit <hash>)" trailers written by -x. Switch the upstream log format from --oneline to --format=%H %s so full hashes are used throughout, ensuring reliable comparison against the stored trailers. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
7e94440981
Merge pull request #12 from rustaceanrob/tst-chr
contrib: cherry-pick-upstream: skip already-applied commits
-
d52904cb18
test: remove functional test suite
Removes test/functional entirely, along with all CI invocations, documentation, build-system hooks, and contrib scripts that depended on it (contrib/testgen, contrib/message-capture). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
4fdbfc0db9
node: remove unused bitcoin-build-config.h include from interfaces.cpp
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
-
fa4d212a34
lint: remove resolved circular dependency expectation
The cycle node/utxo_snapshot -> validation -> node/utxo_snapshot no longer exists and can be removed from EXPECTED_CIRCULAR_DEPENDENCIES. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- rustaceanrob closed this on May 13, 2026
-
DrahtBot commented at 1:06 PM on May 13, 2026: contributor
<!--e57a25ab6845829454e8d69fc972939a-->
The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.
<!--006a51241073e994b41acfe9ec718e94-->
Code Coverage & Benchmarks
For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/35280.
<!--021abf342d371248e50ceaed478a90ca-->
Reviews
See the guideline for information on the review process. A summary of reviews will appear here.
<!--5faf32d7da4f0f540f40219e4f7537a3-->
-
maflcko commented at 1:16 PM on May 13, 2026: member
cargo add https://crates.io/crates/volkswagenlgtm
-
l0rinc commented at 1:20 PM on May 13, 2026: contributor
Can we remove Windows support tomorrow?
- rustaceanrob deleted the branch on May 13, 2026
- fanquake renamed this:
Remove the functional tests
.
on May 18, 2026 - bitcoin locked this on May 18, 2026
Contributors