. #35280

pull rustaceanrob wants to merge 20 commits into bitcoin:master from rustaceanrob:rm-functional-test changing 1129 files +738 −480286
  1. rustaceanrob commented at 1:06 PM on May 13, 2026: contributor

    .

  2. 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>
    b6ee635472
  3. 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>
    93b08fbbc0
  4. 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.
    ed019a8f53
  5. 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.
    77a107b810
  6. Merge pull request #4 from rustaceanrob/26-5-12-rm-gui
    Remove the GUI
    f4e5202db6
  7. nuke: wallet + psbt + external-signer (src, build, deps, ci, tests, docs) (#5)
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    e35ca827de
  8. nuke: indexes + compact-filters (src, build, ci, tests, docs) (#7)
    Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
    1d2d308388
  9. 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>
    70982a6ffb
  10. nuke: rest tests (unit, functional, build)
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    b9455813f4
  11. nuke: rest (src, build, init)
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    4c1b9d84f1
  12. Merge pull request #9 from rustaceanrob/26-5-13-rm-rest
    Remove the REST interface
    fb00efb24d
  13. 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>
    2ddf3f9f41
  14. 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)
    ca8274c792
  15. 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)
    2459d614a6
  16. Merge pull request #11 from rustaceanrob/daily-cherry-pick
    Daily cherry pick
    b42dd03018
  17. 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>
    1a42e017d6
  18. Merge pull request #12 from rustaceanrob/tst-chr
    contrib: cherry-pick-upstream: skip already-applied commits
    7e94440981
  19. 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>
    d52904cb18
  20. node: remove unused bitcoin-build-config.h include from interfaces.cpp
    Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
    4fdbfc0db9
  21. 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>
    fa4d212a34
  22. rustaceanrob closed this on May 13, 2026

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

  24. maflcko commented at 1:16 PM on May 13, 2026: member
    cargo add https://crates.io/crates/volkswagen
    

    lgtm

  25. l0rinc commented at 1:20 PM on May 13, 2026: contributor

    Can we remove Windows support tomorrow?

  26. rustaceanrob deleted the branch on May 13, 2026
  27. fanquake renamed this:
    Remove the functional tests
    .
    on May 18, 2026
  28. bitcoin locked this on May 18, 2026

github-metadata-mirror

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-05-19 06:51 UTC