(+)#36267 fanquake [32.x] Backports for rc2- Backport fixes to the 32.x branch for the 32.0rc2 release candidate
- Allow offline Windows signature validation in Guix and back off on dropped Tor control connections
| P1 · platform fix- P1 after comparing with the other PRs here (assessed alone as P2): Raised to P1: rc2 backport bundle gating the 32.0 release candidate, including offline Guix codesign verification for Windows binaries — release-integrity blocker
- P2 because it fixes Guix codesigning verification for Windows release binaries
- Enables signature checks inside isolated Guix containers that lack network access
| Ready- Ready to review now
- Straightforward backport of two commits already merged to master with passing CI
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet on this newly opened backport PR
| 3,127 + 38 tests- 3,127 lines added or modified outside tests
- 38 lines added or modified in tests
- 35 lines removed in total
- 4 files, 3 commits
|
(+)#36285 maflcko refactor: Use static const over inline const to work around ld64 bug- Fix build failures on macOS developer environments caused by a platform linker bug
- Ensure affected macOS toolchains can successfully compile the project
| P1 · platform fix- P1 after comparing with the other PRs here (assessed alone as P2): Raised to P1: an actual build break on a supported platform (macOS/ld64), milestoned 32.0 and tagged for backport
- P2 because broken builds directly block macOS developers and automated tooling
- Restores reliable compilation for the upcoming 32.0 release and backports
| Ready- Ready for review, with a minimal diff and verified fixes on macOS
| 1 | Positive- Verified by successfully building and running tests on Nix macOS (janb84)
- Asked whether the bug affects all ld64 linkers or just Nix's patched version (fanquake)
- Recommends merging the workaround for 32.0 to unblock affected users (maflcko)
| +8/-8 |
(+)#25573 fanquake guix: produce a `-static-pie` bitcoind- Make Linux release binaries run on any distribution without host glibc version dependencies
- Enable bitcoind to run directly on Alpine Linux, NixOS, and minimal container environments
| P2 · new feature- P2 because it removes runtime glibc version constraints for official Linux releases
- Directly benefits node operators on non-glibc distributions and minimal container hosts
- Unblocks long-sought static release packaging for Linux
| Review #36272 first | 0 | Strong- Broad support for static PIE binaries as preferable to alternative libc approaches (theuni)
- Approach approved and verified across multiple Linux distributions (willcl-ark, hebasto, jsarenik)
- Verified reproducible Guix build hashes match (sedited, xrviv, willcl-ark)
- Concept approval without reservation (dergoegge, w0xlt)
| 35 + 555 tests- 35 lines added or modified outside tests
- 555 lines added or modified in tests
- 281 lines removed in total
- 13 files, 9 commits
|
(+)#35774 willcl-ark ci: test cross-built macos arm64 binaries- Run unit tests on native macOS arm64 hardware using release-like cross-built binaries
- Catch platform-specific regressions and silent toolchain breakages before release
| P2 · test coverage- P2 because it closes CI gaps for release-like builds to protect release integrity
- Catches silent breakages and segfaults caused by the depends toolchain before release
| Ready- Ready for review
- Branch is rebased, CI is passing, and previous questions have been addressed
| 0 | Strong- Strong concept support citing the need to test cross-built binaries natively (fanquake)
- Nonblocking inquiry about caching strategy was resolved (maflcko)
| 127- 127 lines added or modified outside tests
- 0 lines added or modified in tests
- 6 lines removed in total
- 3 files, 3 commits
|
(+)#31507 hebasto build: Use clang-cl to build on Windows natively- Eliminate recurring MSVC compiler crashes and custom workarounds on native Windows builds
- Produce faster Windows binaries and cut CI compilation times
| P2 · platform fix- P2 because it resolves recurring MSVC compiler crashes and toolchain maintenance overhead
- Significantly boosts Windows execution performance and cuts CI build times from ~20 to ~12 minutes
| Ready- Ready for review, with CI passing and Concept ACKs on the current head commit
| 0 | Mild- Strong support for switching native Windows builds to clang-cl and dropping MSVC (fanquake, hodlinator, maflcko)
- Concept approval on the condition that MSVC support is dropped entirely (fanquake)
- Supported merging early for the 32.0 release window (maflcko)
| 131- 131 lines added or modified outside tests
- 0 lines added or modified in tests
- 94 lines removed in total
- 10 files, 6 commits
|
(+)#36082 willcl-ark ci: add Guix builds to CI- Catch Guix build breakages and codesigning manifest errors continuously in CI
- Prevent release-blocking surprises that maintainers currently discover only late in the cycle
| P2 · test coverage- P2 because continuous verification of Guix environments protects against release-time regressions
- Missing imports and broken signing dependencies are caught before release signing begins
| Ready- Ready for review after earlier commits were restructured and CI passed
| 0 | Positive- Concept approval without stated reasons (fanquake, sedited)
- Concern over duplicate caching was resolved by dropping the overlapping commit (hebasto)
- Open question remains on relying on third-party substitute servers
| 205 + 5 tests- 205 lines added or modified outside tests
- 5 lines added or modified in tests
- 2 lines removed in total
- 3 files, 3 commits
|
(+)#35855 fanquake guix: update time-machine- Update the Guix time-machine snapshot to newer compiler toolchains.
- Fix Guix build failures on non-x86 platforms like RISC-V and keep release builds current.
| P2 · platform fix- P2 because it resolves Guix build breakages on architectures like RISC-V.
- Bumps core toolchains and build tools to unblock ongoing build system improvements.
| Ready- Ready for review and cross-platform verification, despite draft status.
| 0- No review verdicts recorded
| Blocked- General consensus favors keeping the Guix environment updated.
- Verified matching deterministic x86_64 build hashes (0xB10C, willcl-ark)
- Helped diagnose and troubleshoot AArch64 cross-compilation failures (hebasto, janb84)
- Suggested splitting some fixes into standalone PRs (maflcko)
| 0 + 47 tests- 0 lines added or modified outside tests
- 47 lines added or modified in tests
- 32 lines removed in total
- 7 files, 11 commits
|
(+)#36272 fanquake guix: split Linux toolchain- Allow modular Linux toolchain configurations in Guix builds
- Enables alternative setups like static release binaries and binary size tuning
| P2 · unblocks #25573- P2 because it unblocks static release builds and toolchain tuning for binary size
- Significantly improves maintainability of release binary build definitions
- Ranking pass: Moved up to sit directly with the stack it unblocks (#25573, #36193); reviewing it first is what makes the others mergeable
| Ready- Ready for review
- Applies cleanly to master with passing CI
| 0 | Positive- Positive initial reception with no objections raised
- Concept approval without stated reasons (hebasto)
| 0 + 306 tests- 0 lines added or modified outside tests
- 306 lines added or modified in tests
- 275 lines removed in total
- 5 files, 1 commits
|
(+)#32387 ryanofsky ipc: add windows support- Allow multiprocess node and GUI binaries to build and run on Windows
- Enables Windows users and developers to utilize and test process separation
| P3 · platform fix- P2 because it extends Windows build configurations and CI pipelines to support IPC
- unblocks automated multiprocess testing on Windows
| Needs rebase- Needs rebase due to merge conflicts with master
- Carries temporary in-tree libmultiprocess changes while upstream PRs remain pending
| 0 | Positive- Broad support for bringing IPC support to Windows with no objections
- Concept approval without stated reasons (hebasto)
- Feedback focused on testing strategies via Guix and bitcoin-mine (Sjors)
| 2,098 + 176 tests- 2,098 lines added or modified outside tests
- 176 lines added or modified in tests
- 775 lines removed in total
- 90 files, 30 commits
|
(+)#36270 fanquake build: ensure release binaries don't contain `depends` references- Prevent release binaries from leaking build-host depends paths that do not exist on user systems
- Automatically enforce in release checks that release binaries do not retain these path references
| P3 · cleanup- P3 because it is a hygiene improvement for release binaries and build reproducibility
- Automated release verification prevents future host path leaks
- Ranking pass: Moved well up: it adds an automated release-binary assertion (symbol-check) against host path leakage, which is release-integrity work, the top concern in this category
| Ready- Ready for review
- Small patch that passes CI
| 0- No review verdicts recorded
| Crickets- No feedback yet from reviewers
- Recently opened without reviews or comments
| 4 + 7 tests- 4 lines added or modified outside tests
- 7 lines added or modified in tests
- 2 lines removed in total
- 7 files, 4 commits
|
(+)#36233 hebasto guix: Update time-machine to `60f6956aeffa7f30285745bd0ea615e9acfc74f8`- Enable native reproducible Guix builds on RISC-V hardware
- Bypass failing upstream tests and fix dependencies when building on riscv64 hosts
| P3 · platform fix- P3 because it fixes native builds on RISC-V for developers running riscv64 hardware
- Native RISC-V builds are not a tier-one release requirement
- Updates the build commit cleanly without breaking reproducibility on other hosts
- Ranking pass: Moved up: reproducible hashes confirmed by several reviewers and it fixes the same riscv64 Guix breakage as #35855; kept P3 because RISC-V native builds are not a release requirement
| Ready- Ready for review
- Deterministic build hashes match across testers on x86_64 and aarch64
| 1 | Strong- Strong consensus with multiple contributors verifying matching outputs
- Signed review approval on the latest commit (maflcko)
- Verified identical Guix build hashes on x86_64 (fanquake, willcl-ark, Sjors)
- Verified identical Guix build hashes on x86_64 and aarch64 (hebasto)
| 0 + 27 tests- 0 lines added or modified outside tests
- 27 lines added or modified in tests
- 5 lines removed in total
- 3 files, 2 commits
|
(+)#35756 hebasto cmake: De-duplicate libraries where possible- Deduplicate link libraries to eliminate duplicate-library warnings from Apple's linker
- Enable treating linker warnings as fatal errors in macOS Guix release builds
| P3 · cleanup- P3 because it aligns macOS release builds with Linux and Windows by treating linker warnings as errors
- Hardens Darwin releases against unexpected linker anomalies
- Ranking pass: Moved up: enabling fatal linker warnings in macOS Guix builds is release hardening rather than plain de-duplication
| Ready- Ready to review
- Small patch with passing CI and reviewer feedback incorporated
| 0- No review verdicts recorded
| Positive- Positive sentiment with no remaining objections
- Suggested including the macOS Guix flag change directly, which author added (fanquake)
| 13 + 10 tests- 13 lines added or modified outside tests
- 10 lines added or modified in tests
- 2 lines removed in total
- 3 files, 2 commits
|
(+)#36193 fanquake guix: pass `--disable-wchar_t` to (non-GUI) libstdc++- Reduce Linux release binary size by about 0.5 MB for bitcoind, bitcoin-cli, and other non-GUI utilities
- Eliminate unused wide-character formatting and zoneinfo routines bundled into libstdc++
| P3 · cleanup- P3 because it trims roughly 0.5 MB of dead code from Linux non-GUI binaries
- Modest binary size savings that is clean but safe to defer
- Ranking pass: Moved up: verified reproducible Guix output and part of the release-binary toolchain stack under #36272
| Review #36272 first- Review #36272 first
- Ready for review
| 0 | Positive- Concept approval after verifying Boost macro compatibility and toolchain splitting (hebasto)
- Verified reproducible Guix build outputs across multiple architectures (willcl-ark, rustaceanrob)
| 22 + 313 tests- 22 lines added or modified outside tests
- 313 lines added or modified in tests
- 275 lines removed in total
- 7 files, 4 commits
|
(+)#35197 fanquake guix: add -Wl,--icf=safe to darwin build- Shrink macOS release binary sizes and disk footprint by eliminating duplicate code
| P3 · speedup- P3 because shrinking macOS binaries by roughly 5% is a modest, deferrable optimization
- The reduction saves download bandwidth and disk space for macOS users
- It does not fix bugs, enhance security, or unblock other development
| Waiting on author- Waiting on author to address missing compiler flags and probe ordering
- Reviewing the current code is paused until the author updates the patch
| 0 (+1) | Disputed- Broad agreement on shrinking binary sizes with identical code folding
- Verified roughly 5% size reduction in Darwin builds (davidgumberg)
- Unaddressed objection: breaks function pointer uniqueness without extra flags (Sjors, 151henry151)
- Probe order causes the linker to override safer settings (hebasto, 151henry151)
| 5- 5 lines added or modified outside tests
- 0 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#36235 David-Uka ci, iwyu: fail job on compiler errors instead of silently logging them- Ensure CI fails when include-what-you-use encounters compiler errors
- Prevents missing generated headers and unanalyzed files from silently passing CI checks
| P3 · test coverage- P3 because compilation errors during IWYU analysis currently pass CI without failing the job
- Prevents gaps in linter test coverage caused by hidden issues such as missing generated headers
- Ranking pass: Moved up: a linter job that silently swallows compiler errors is a misleading CI signal, which this category ranks above hygiene cleanups
| Ready- Ready to review now
- Small, self-contained change with passing CI
| 0 | Positive- Concept approval without stated reasons (hebasto)
- No objections or alternative approaches raised
| 0 + 12 tests- 0 lines added or modified outside tests
- 12 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#35068 ryanofsky depends: fix cmake package discovery for depends-built packages- Ensure CMake packages built in depends find depends dependencies instead of host system libraries
- Prevents host library pollution when developers have matching packages installed on their host system
| P3 · bug fix- P3 because it fixes dependency search paths that erroneously pick up host libraries
- Impact is narrow, primarily affecting developers building depends on hosts with matching packages
| Author silent- Author has not responded to open review suggestions since April 2026
| 0- No review verdicts recorded
| Mild- General agreement on fixing the variable used for package discovery
- Unaddressed objection: appending external paths risks depends isolation, no reply (hebasto, purpleKarrot)
- Suggested setting a clean override without inheriting host paths (purpleKarrot)
| 1- 1 lines added or modified outside tests
- 0 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#35765 willcl-ark depends: hash local source contents- Prevent depends from building stale local packages when developers share a source cache across worktrees
- Ensure depends reliably detects changes when files in local sources are modified or restored
| P3 · bug fix- P3 because it prevents depends from reusing stale local package archives across git worktrees
- Impact is minor because native_libmultiprocess is currently the only package affected
| Needs rebase- Needs rebase before review because it currently has merge conflicts
- Author has been inactive for almost two months
| 0- No review verdicts recorded
| Crickets- No review feedback or concept votes have been posted yet
- Only the author has commented to share build hashes and an open question on timestamps
| 38- 38 lines added or modified outside tests
- 0 lines added or modified in tests
- 15 lines removed in total
- 3 files, 1 commits
|
(+)#28690 sedited build: Introduce internal kernel library- Prevent the kernel library build definitions from diverging from core node builds
- Stop the kernel from pulling in unwanted node utilities such as networking and process execution
| P3 · cleanup- P3 because it organizes internal build targets without altering release outputs
- Cleans up dependency tracking without fixing an active build breakage
| Ready- Ready to review now
- Branch is rebased with passing CI and incorporates the latest suggestions
| 2 (+2) | Strong- Strong consensus on establishing explicit internal targets for the kernel
- Verified on multiple platforms with Guix reproducible builds (janb84)
- Verified compatibility with a downstream proof-of-concept iOS app (Sjors)
- Debated library structure options and settled them without blocking objections (ryanofsky, ajtowns)
- Re-approved after the latest push (yuvicc, w0xlt)
| 114 + 12 tests- 114 lines added or modified outside tests
- 12 lines added or modified in tests
- 122 lines removed in total
- 6 files, 2 commits
|
(+)#36024 hebasto ci: Make `test_bitcoin-qt.exe` output visible- Make Qt unit test output and failure messages visible in Windows CI runs
- Helps developers diagnose GUI test failures that are currently suppressed by the runner
| P3 · CI fix- P3 because it restores missing failure logs in Windows CI environments
- Improves build diagnostics when Windows automated test jobs fail silently
| Ready- Ready for review
- Small patch with passing CI
| 0- No review verdicts recorded
| Crickets- No reviews or feedback yet
| 2- 2 lines added or modified outside tests
- 0 lines added or modified in tests
- 0 lines removed in total
- 2 files, 1 commits
|
(+)#36106 ryanofsky bitcoin wrapper: respect CMAKE_INSTALL_BINDIR/LIBEXECDIR- Allow distributions with custom install paths to run the bitcoin wrapper without execution errors
- Fixes broken binary discovery when launching components on systems like Arch Linux
| P3 · platform fix- P3 because it fixes packaging configuration for distributions that override standard install paths
- Packaging maintainers get functioning installations without manual path workarounds
| Ready- Ready to review
- Code is clean, test suite issues are resolved, and CI is passing
| 0 | Strong- Strong support across reviewers with all prior feedback addressed
- Approach approved after testing with custom install prefixes (hebasto)
- Verified by testing on Arch Linux directory layouts (cyb3ralbert)
| 42 + 71 tests- 42 lines added or modified outside tests
- 71 lines added or modified in tests
- 6 lines removed in total
- 6 files, 2 commits
|
(+)#35957 hebasto ci: Enable Boost.MultiIndex invariant-checking mode- Catch subtle corruptions and container inconsistencies early during CI test runs
- Helps developers detect indexing and memory pool bugs before changes merge
| P3 · test coverage- P3 because early detection of data structure corruptions adds maintenance value
- Provides useful debug-configuration hardening that can be safely deferred
| Ready- Ready to review
- Clean small change with all reviewer questions addressed
| 0 | Strong- Positive feedback with earlier CI timeout concerns resolved
- Excluding the slow fuzz job resolved runtime timeout concerns (fanquake)
- Approach approval after independently reproducing job execution times (jeanpablojp)
| 0 + 5 tests- 0 lines added or modified outside tests
- 5 lines added or modified in tests
- 2 lines removed in total
- 3 files, 1 commits
|
(+)#35454 ryanofsky cmake: skip missing example targets in libmultiprocess.cmake- Prevent CMake configuration errors when building against newer or external libmultiprocess versions
- Keeps builds working if upstream libmultiprocess omits example targets
| P3 · bug fix- P3 because it fixes CMake configuration failures when using external libmultiprocess trees
- Default in-tree builds are unaffected but unblocks cross-repo CI and future subtree updates
- Ranking pass: Moved up: it is the piece that lets Core build against updated/external libmultiprocess, so it gates subtree-update work
| Author silent 103d- Author has been inactive for over 100 days
| 0 | Positive- Concept approval for defensive CMake integration of subprojects (hebasto)
- Suggested upstream subprojects should handle gating example targets directly (hebasto)
| 5- 5 lines added or modified outside tests
- 0 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#31349 vasild ci: detect outbound internet traffic generated while running tests- Detect unexpected outbound network traffic and DNS lookups generated while running tests in CI
- Prevent tests from violating test isolation and leaking developer IP addresses
| P3 · test coverage- P3 because it improves CI signal and hermeticity by failing builds on outbound network leaks
- Prevents future pull requests from introducing network-leaking tests without fixing a broken build
- Ranking pass: Moved down: privacy/hermeticity value is real but it is preventive CI tightening, below the release-integrity and broken-signal items above
| Author silent- Author has been silent for over 90 days with an unanswered technical comment
| 0 (+3) | Mild- Broad concept agreement on catching unexpected network traffic in CI (laanwj, jonatack, sipa, Sjors)
- Approvals on earlier revisions (ryanofsky, 0xB10C, fjahr)
- Unaddressed technical comment: tcpdump direction flag is a no-op when reading capture files (fjahr)
- Concern about false positives and failures when running CI scripts locally under Podman (fanquake, maflcko)
| 0 + 77 tests- 0 lines added or modified outside tests
- 77 lines added or modified in tests
- 2 lines removed in total
- 6 files, 1 commits
|
(+)#36147 willcl-ark ci: add [free|open|net]BSD ci test jobs- Catch BSD-specific regressions in PR CI before code merges to master
- Reduce reactive bug fixing for maintainers monitoring nightly BSD test runs
| P3 · test coverage- P3 because catching secondary platform regressions pre-merge is helpful but deferrable
- Benefits BSD platform maintainers but adds CI overhead for non-primary targets
- Ranking pass: Moved up slightly: pre-merge coverage for secondary platforms currently caught only by external nightlies
| Needs rebase- Needs rebase due to merge conflicts
- Draft PR pending decision on whether to reduce scope to FreeBSD
| 0 | Mild- Nonblocking objection: running three BSD VMs risks flaky tests and CI noise (maflcko)
- Concept approval for adding a test job on at least FreeBSD (hebasto)
- Author offered to narrow scope to FreeBSD or close the PR if VM CI is unwanted (willcl-ark)
| 117 + 105 tests- 117 lines added or modified outside tests
- 105 lines added or modified in tests
- 141 lines removed in total
- 14 files, 4 commits
|
(+)#35356 maflcko ci: Test build dir with spaces- Run Windows CI builds from a directory containing spaces
- Catch path-quoting and subprocess bugs before they reach developers using spaced paths
| P3 · test coverage- P3 because it adds automated coverage for paths with spaces in developer environments
- Windows CI is needed because Linux symlink resolution can bypass subprocess space-handling tests
- Ranking pass: Moved down: useful coverage, but it depends on an unrelated path-handling bug fix before CI can be green
| CI failing- CI is failing consistently because this test exposes an existing bug in external signer path handling
| 0 | Positive- General agreement on testing spaced paths in CI once the exposed bug is resolved
- Concept approval without stated reasons (hebasto)
- Confirmed the Windows CI failure is expected and reproduces an underlying bug (fanquake, maflcko)
| 13- 13 lines added or modified outside tests
- 0 lines added or modified in tests
- 4 lines removed in total
- 1 files, 2 commits
|
(+)#33145 m3dwards CI: silent merge check- Automatically detect logical merge conflicts between open pull requests and master
- Saves maintainers from tedious manual testing to catch PRs broken by newly merged code
| P3 · new feature- P3 because it reduces maintainer toil by automating logical conflict detection across PRs
- Does not affect release integrity, supported platform builds, or core CI reliability
- Ranking pass: Moved down: maintainer-toil automation with no release or platform consequence, and dormant
| Author silent- Author has been silent for over two months
| 0 | Strong- Strong support to replace tedious manual searching for silent conflicts (maflcko)
- Concept approval for automated conflict detection (fjahr)
- Permissions and execution efficiency concerns were resolved (willcl-ark)
| 412- 412 lines added or modified outside tests
- 0 lines added or modified in tests
- 0 lines removed in total
- 3 files, 1 commits
|
(+)#34721 willcl-ark build: install shell completions via cmake- Automatically install bash and fish shell completions alongside binaries during CMake installation
- Eliminates manual copying of completion scripts for source installers and package maintainers
| P3 · new feature- P3 because this provides a minor usability improvement for Linux packagers and command-line users
- Automates previously manual completion script installation with minimal ongoing maintenance
- Does not affect release integrity, reproducible builds, or core platform support
- Ranking pass: Moved down: packaging convenience only; ranks below CI-signal and depends correctness items
| Ready- Ready for review now
- Configure-time file checks were replaced with explicit flags and confirmed clean
| 1 (+3) | Strong- Strong consensus on installing completions via CMake (BrandonOdiwuor, caesrcd, w0xlt, hebasto, ryanofsky)
- Fragile configure-time file checks resolved by adding explicit target flags (purpleKarrot, ryanofsky)
- Open preference to inline install rules instead of using a convenience wrapper (purpleKarrot, hebasto)
| 23- 23 lines added or modified outside tests
- 0 lines added or modified in tests
- 8 lines removed in total
- 4 files, 1 commits
|
(+)#36042 maflcko build: Bump g++ minimum supported version to 13- Bump minimum supported compiler to GCC 13.1, dropping unsupported GCC 12
- Enables modern C++ features across the codebase such as std::format and eventual C++23 adoption
| P3 · unblocks #36033- P3 because it unblocks C++20 std::format and future C++23 adoption across the codebase
- Targeted for v33.x making the toolchain bump deferrable
- Ranking pass: Moved down: the toolchain bump is a deadline-free transition targeted at a later release cycle
| Needs rebase- Review #36052 first
- Needs rebase due to merge conflicts with master
| 0 | Strong- Concept approval and verified native GCC package behavior on NetBSD (hebasto)
- No objections raised during discussion on compiler support (fanquake, maflcko)
| 23 + 127 tests- 23 lines added or modified outside tests
- 127 lines added or modified in tests
- 110 lines removed in total
- 32 files, 8 commits
|
(+)#36036 maflcko build: Bump clang minimum supported version to 19- Raise the minimum supported Clang version to 19 to enable newer C++20 features
- Removes workarounds needed for older compilers and simplifies future codebase modernization
| P3 · cleanup- P3 because toolchain modernization benefits are deferred to a future release next year
- Only enables C++20 CTAD for alias templates at this stage without immediate urgency
| CI failing- CI is failing on the PR branch due to a workflow runner change
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet
- Opened as a draft without feedback from other contributors
| 16 + 3 tests- 16 lines added or modified outside tests
- 3 lines added or modified in tests
- 19 lines removed in total
- 6 files, 3 commits
|
(+)#36033 maflcko [wip,nomerge,rfc] build: Require C++23 compiler- Eliminate custom workarounds and polyfills by requiring C++23
- Let developers use modern standard library features directly
| P3 · decision needed- P3 because bumping to C++23 is a deferrable standard upgrade with modest changes over C++20
- Reaching consensus on supported compiler baselines is needed before moving forward
- Ranking pass: Placed after the two compiler-minimum bumps it depends on; it is an RFC whose direction should follow them
| Needs rebase- Not ready for review because the PR has merge conflicts and CI is failing
| 0 | Positive- Initial sentiment is positive on exploring the compiler upgrade
- Concept approval without stated reasons (l0rinc)
- Minor feedback on header include heuristics (hebasto)
| 69 + 43 tests- 69 lines added or modified outside tests
- 43 lines added or modified in tests
- 280 lines removed in total
- 50 files, 8 commits
|
(+)#35762 willcl-ark test: optionally run functional tests via CTest- Allow developers to run functional tests alongside unit tests using standard CTest commands
- Enables test filtering, rerun flags, and native IDE integration for functional test workflows
| P3 · new feature- P3 because it standardizes test invocation under CMake without affecting release integrity
- Improves developer build ergonomics rather than fixing platform build failures
- Ranking pass: Moved down: developer ergonomics with an open complexity objection and no coverage gain
| Ready- Ready to review: CI is passing and the branch is up to date with feedback
| 0- No review verdicts recorded
| Mild- No approvals yet with reservations about the added complexity (maflcko)
- Questioned whether adding CMake orchestration is justified over a Python alternative (maflcko)
- Drawback: CTest execution does not support win64 cross-testing workflows (maflcko)
| 18 + 431 tests- 18 lines added or modified outside tests
- 431 lines added or modified in tests
- 45 lines removed in total
- 9 files, 6 commits
|
(+)#35167 ajtowns Convert check-deps.sh to python- Automate library dependency boundary enforcement directly from documentation diagrams
- Eliminate manual dependency tracking and fix macOS symbol parsing false passes
| P3 · test coverage- P3 because it prevents false passes in CI library dependency checks on macOS
- Does not fix build breakages, release integrity, or core CI reliability
| Needs rebase- Needs rebase due to merge conflicts with master while author has been inactive
| 1 | Mild- Broad concept support for migrating dependency checks to Python (sedited, ryanofsky)
- Verified symbol parsing fixes on macOS (janb84)
- Nonblocking objection: moving init code breaks logging in auxiliary binaries (ryanofsky)
- Nonblocking objection: prefers suppressions over adding undesirable dependency edges (ryanofsky)
| 5 + 291 tests- 5 lines added or modified outside tests
- 291 lines added or modified in tests
- 219 lines removed in total
- 5 files, 4 commits
|
(+)#35072 hebasto cmake: Remove optional definitions from `bitcoin-build-config.h`- Prevent unnecessary full project rebuilds when developers reconfigure CMake build options
- Scope configuration flags so changing one option only recompiles affected targets
| P3 · speedup- P3 because it reduces rebuild times for developers toggling options like GUI or tracing
- Provides iteration speedups but fine-tunes configuration without broader build improvements
- Enables follow-up work in #29914
- Ranking pass: Moved down: rebuild-time convenience only, and its approach is contested; comparable to other developer-iteration tweaks
| Needs rebase- Needs rebase and has failing CI
- Author converted to draft to rework design and has been inactive
| 0 (+1) -1 | Disputed- Concept objection: config headers are intended to trigger rebuilds on configuration changes (fanquake)
- Questioned whether scoping flags to targets makes sense without an overall design (fanquake)
- Concern that auxiliary tools rely on the header as a single source of truth (151henry151)
- Verified that enabling GUI options avoids rebuilding unrelated targets (BrandonOdiwuor)
| 11 + 1 tests- 11 lines added or modified outside tests
- 1 lines added or modified in tests
- 61 lines removed in total
- 25 files, 5 commits
|
(+)#36271 fanquake Revert #36057 & document mingw-w64 requirement- Clean up redundant build checks now that Mingw-w64 12.0 is the baseline for Windows builds
- Document the minimum toolchain requirement and remove obsolete cross-compilation configurations
| P3 · cleanup- P3 because it cleans up temporary build checks and workarounds no longer needed on master
- Clarifies minimum toolchain requirements for Windows cross-compilation with minor maintenance leverage
| Ready- Ready to review with a clean diff, passing CI, and all review suggestions already incorporated
| 1 | Strong- Strong consensus to complete the planned post-branch toolchain cleanup
- Concept approval because it follows the agreed plan (hebasto)
- Suggested dropping obsolete Nix MSVCRT references which was adopted (maflcko)
- Code review approval on the updated revision (ViniciusCestarii)
| 4 + 1 tests- 4 lines added or modified outside tests
- 1 lines added or modified in tests
- 19 lines removed in total
- 6 files, 3 commits
|
(+)#36060 151henry151 build: require KJ exception support for IPC- Prevent obscure build and link failures when building with IPC enabled
- Catch missing library exception handling early during build configuration
| P3 · platform fix- P3 because it diagnoses missing library exception support at configure time
- Avoids obscure link-time failures for developers compiling with IPC support
- Ranking pass: Moved down: configure-time diagnostics for experimental multiprocess builds, narrower than the depends/CI fixes above
| Ready- Ready for review now with clean CI and complete commits
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet
- Awaiting initial community feedback after being opened as draft
| 179- 179 lines added or modified outside tests
- 0 lines added or modified in tests
- 0 lines removed in total
- 12 files, 3 commits
|
(+)#35417 willcl-ark ci: isolate container test networks- Allow developers to run multiple local CI container jobs simultaneously without network address collisions
| P3 · cleanup- P3 because it eliminates IP collisions when running concurrent local CI containers
- Benefit is limited to developers running multiple local CI test runs at once
- Ranking pass: Moved down: benefit is limited to developers running several local CI containers at once
| CI failing- CI is failing and the author has been inactive for months
| 0 | Strong- Strong overall approval across concept and code
- Concept approval without detailed technical justification (fanquake)
- Approved after nits on subnet command and environment variables were addressed (maflcko)
| 0 + 37 tests- 0 lines added or modified outside tests
- 37 lines added or modified in tests
- 8 lines removed in total
- 3 files, 2 commits
|
(+)#36275 fanquake build: enable `-Wunused-const-variable`- Catch unused constant definitions in headers automatically with a dedicated compiler warning
- Prevents dead code clutter and unneeded static variables across compilation units
| P3 · cleanup- P3 because it improves developer hygiene by flagging dead constant definitions in headers
- Helps incrementally unblock enabling broader unused compiler warnings across the codebase
- Ranking pass: Placed ahead of #36167, which it is a stepping stone for
| Review subtrees first- Review upstream subtree PRs in leveldb, minisketch, and crc32c first
- Author is waiting for subtree changes to merge and flagged the commits as nomerge
| 0- No review verdicts recorded
| Crickets- No reviews or feedback yet
- Recently opened as a draft waiting on upstream subtree updates
| 31- 31 lines added or modified outside tests
- 0 lines added or modified in tests
- 27 lines removed in total
- 10 files, 5 commits
|
(+)#36167 fanquake [RFC] Enable `-Wunused`- Catch dead code, unused variables, and missed calls automatically during CI builds
- Spare developers and maintainers from manual audits and ad-hoc dead code cleanups
| P3 · cleanup- P3 because compiler warnings for dead code provide developer hygiene rather than fix active build bugs
- It prevents subtle mistakes like forgotten calls, but remains deferrable work
- Ranking pass: Moved down: broad warning enablement blocked on three upstream subtree changes and an unresolved scope question
| CI failing- Not ready for full review because CI is failing with a compiler error
- Marked RFC with temporary commits requiring upstream subtree changes first
| 0- No review verdicts recorded
| Neutral- Receptive to enabling the warnings but suggested splitting them up (maflcko)
- Suggested isolating fine-grained flags first to avoid massive tree-wide churn (maflcko)
- Author split one warning flag out into a dedicated PR in response (fanquake)
| 536 + 58 tests- 536 lines added or modified outside tests
- 58 lines added or modified in tests
- 577 lines removed in total
- 168 files, 7 commits
|
(+)#35911 fanquake Warn on and add missing [[noreturn]]- Prevent false-positive compiler warnings on unreachable code paths
- Help compilers spot non-returning functions to improve diagnostics and optimizations
| P3 · cleanup- P3 because it offers minor leverage for future code by catching missing attributes
- Has no urgency or direct user-facing impact
| Waiting on libmultiprocess- Paused by author until an upstream libmultiprocess subtree update
- Windows CI is currently failing
| 0 | Positive- Concept approval without stated reasons (hebasto, stickies-v)
- Support with help diagnosing Clang and Windows warning issues (maflcko)
| 18 + 61 tests- 18 lines added or modified outside tests
- 61 lines added or modified in tests
- 65 lines removed in total
- 20 files, 5 commits
|
(+)#36241 Ronin95 build, doc: Warn on unprivileged Guix daemon usage- Warn developers early when using an unprivileged Guix daemon before long builds fail
- Prevent confusing late compilation errors and document how to switch to root mode
| P3 · user request- P3 because it saves developers hours of wasted compilation time from late Guix build failures
- Diagnoses broken unprivileged user namespace setups early when building without substitutes
| Ready- Ready for review now with a small, self-contained diff and no technical blockers
| 0- No review verdicts recorded
| Crickets- No substantive reviews or Concept ACKs yet
- Suggested keeping as draft pending rough consensus in RFC #36239 (hebasto)
| 0 + 57 tests- 0 lines added or modified outside tests
- 57 lines added or modified in tests
- 0 lines removed in total
- 2 files, 2 commits
|
(+)#35722 willcl-ark ci: cache BSD sdk sources separately- Avoid re-downloading BSD SDK archives from external mirrors when the container cache misses
- Reduces wasted CI run time and avoids potential failures from unresponsive upstream mirrors
| P3 · speedup- P3 because addresses an inefficiency rather than an active CI failure
- Slightly speeds up CI and reduces external mirror bandwidth usage on container cache misses
| Needs rebase- Needs rebase due to merge conflicts with master
| 0- No review verdicts recorded
| Neutral- No reviews or approvals yet
- Questioned whether download failures have actually occurred in CI (maflcko)
- Suggested fallback mirrors as an alternative approach to caching (maflcko)
| 29 + 91 tests- 29 lines added or modified outside tests
- 91 lines added or modified in tests
- 69 lines removed in total
- 6 files, 3 commits
|
(+)#36252 ryanofsky ci, iwyu: skip subtrees in compilation database- Stop Include What You Use CI checks from analyzing excluded subtree directories
- Avoid misleading warnings in CI logs and save runner time on third-party code
| P3 · cleanup- P3 because it reduces CI log noise and redundant processing on subtrees
- Routine CI cleanup that does not fix a broken build or flaky test
| Ready- Ready to review
- Small 11-line CI script update with passing CI
| 0- No review verdicts recorded
| Neutral- Neutral sentiment with no reviews or approvals yet
- Asked why subtrees are not excluded via CMake instead of CI (hebasto)
- Author explained CI filtering avoids breaking other tools like clang-tidy
| 0 + 11 tests- 0 lines added or modified outside tests
- 11 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|
(+)#36121 maflcko fuzz: Corpus sharding in parallel runs- Parallelize individual fuzz targets across workers by splitting their corpora
- Prevent single long-running fuzz targets from bottlenecking multi-core test runs
| P3 · speedup- P3 because it speeds up heavy CI fuzz jobs by 7 to 15 minutes using ramdisks and tmpfs
- Internal performance optimization for CI runs rather than a build reliability fix
| Ready- Ready for review, CI passing and author addressed initial feedback
| 0 | Strong- Concept approval and verified speedups on MSan and Windows (jeanpablojp)
- Concern that sharding fragments libFuzzer output so coverage cannot be compared across runs (jeanpablojp)
- Concern about storage thrashing and target instantiation overhead on slower disks (jeanpablojp)
| 0 + 70 tests- 0 lines added or modified outside tests
- 70 lines added or modified in tests
- 29 lines removed in total
- 2 files, 2 commits
|
(+)#24773 hebasto Enable HW-accelerated implementations of SHA256 for MSVC builds- Bring hardware-accelerated SHA256 hashing to MSVC builds on Windows
- Eliminate significant hashing performance penalties for native Windows developer builds
| P4 · speedup- P4 after comparing with the other PRs here (assessed alone as P3): Lowered to P4: maintainers intend to drop MSVC in favour of clang-cl (#31507), so this optimises a toolchain on its way out — same reasoning already applied to #32409
- P3 because official release binaries use MinGW and Guix rather than MSVC
- Benefit is limited strictly to contributors compiling natively on Windows
| Waiting on author- Paused while waiting on author response regarding a project decision to close it
- Maintainers decided in a meeting to drop MSVC support in favor of clang-cl in #31507
| 0 (+1) | Blocked- Blocked by project decision to deprecate MSVC support in favor of #31507
- Unaddressed objection: adds MSVC code conflicting with #31507, no author reply (fanquake)
- Verified by testing five- to ten-fold hashing speedups on Windows (sipsorcery, m3dwards)
- Concept approval while questioning the AVX2 choice (laanwj)
| 102- 102 lines added or modified outside tests
- 0 lines added or modified in tests
- 61 lines removed in total
- 4 files, 5 commits
|
(+)#35713 rustaceanrob Remove boost as a unit test runner- Eliminate Boost.Test to improve failure diagnostics and reduce build maintenance overhead for developers
- Unblock future test runner concurrency and tailored testing tools for the project
| P4 · cleanup- P3 because it simplifies build system scripts and depends configurations
- It removes maintenance quirks without affecting production builds or binary release integrity
| Ready- Ready to review
- CI is passing and recent pushes have resolved prior review comments
| 0 | Strong- Strong sentiment favoring the removal of Boost.Test for maintainability
- Strong support citing customizability and future concurrent test execution needs (josibake)
- Concept approval with extensive testing of runner flags, signals, and seed reproduction (jeanpablojp)
- Feedback on stringification fallbacks and static assertions incorporated cleanly (maflcko)
| 3 + 1,693 tests- 3 lines added or modified outside tests
- 1,693 lines added or modified in tests
- 264 lines removed in total
- 163 files, 12 commits
|
(+)#33828 151henry151 Check required interfaces before generating manpages- Prevents maintainers from accidentally generating incomplete manpages when build options are missing
- Ensures release documentation does not silently drop wallet or ZMQ command-line options
| P4 · bug fix- P4 because it only exposes an internal define for script inspection
- It has no effect on runtime binary behavior, dependencies, or platform support
| Author silent- Author has been silent for months awaiting build maintainer input on CMake conventions
| 0 (+1) | Mild- Concept approval and request for re-review (sedited)
- Concern raised about mixing compile definitions and header defines (maflcko)
- Awaiting feedback from build maintainers on CMake naming conventions
| 3 + 53 tests- 3 lines added or modified outside tests
- 53 lines added or modified in tests
- 0 lines removed in total
- 2 files, 1 commits
|
(+)#36023 Sjors build: Always define HAVE_SYSTEM- Silence compiler warnings on platforms lacking std::system such as iOS
- Clean up build logs for developers targeting platforms without std::system
| P4 · platform fix- P4 because it only fixes minor compiler warnings on a non-primary platform like iOS
- It does not fix any build failures on supported platforms
| Ready- Ready to review
- The patch is minimal and clean with no open blockers
| 0- No review verdicts recorded
| Mild- Skeptical of ad-hoc macro changes without a project-wide convention (fanquake, hebasto, maflcko)
- Suggested reverting check sites instead of altering cmake definitions (hebasto)
- Suggested establishing and enforcing a global macro standard via linter (maflcko)
| 1- 1 lines added or modified outside tests
- 0 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#36029 hebasto cmake: Detect and log MinGW-w64 version when cross-compiling for Windows- Log the MinGW-w64 version during Windows cross-compilation
- Makes diagnosing toolchain-specific build issues easier for developers
| P4 · cleanup- P4 because it only adds diagnostic configure logging
- Provides minor debugging convenience without fixing bugs or altering build behavior
| Ready- Ready for review
- Small and self-contained with no blockers
| 1 | Strong- Uncontroversial diagnostic enhancement
- Verified by cross-compiling on Arch Linux and checking output (ViniciusCestarii)
| 36- 36 lines added or modified outside tests
- 0 lines added or modified in tests
- 0 lines removed in total
- 2 files, 1 commits
|
(+)#35515 hebasto cmake: Use target file name for manpage installation- Allow manpage installation to locate the correct file when executable names differ from target names
- Prevents failed or mismatched manpage installs when targets override their binary names
| P4 · cleanup- P4 because no current targets override output names, causing zero behavioral change today
- Serves only as speculative convenience for future or downstream target renaming
| Author silent- Author has been silent for three months, but the PR is ready to review with no merge conflicts
| 2 | Positive w/ caveats- Supported as harmless future-proofing tested across build configurations (BrandonOdiwuor, 151henry151)
- Nonblocking objection: adds complexity and invites inconsistent target naming (ryanofsky)
- Concern that tracking build config postfixes could break manpage lookups (151henry151)
| 1- 1 lines added or modified outside tests
- 0 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#36206 fanquake build: drop use of `OBJC_OLD_DISPATCH_PROTOTYPES`- Remove obsolete compiler flags from the macOS build configuration
- Reduces maintenance clutter following the minimum SDK bump to macOS 14
| P4 · cleanup- P4 because it is a minor cleanup of an obsolete compile definition with no functional impact
- Does not fix a broken build or unblock other development
| Ready- Worth reviewing now as a straightforward single-line deletion with passing CI
| 0 | Positive- Positive sentiment with no objections
- Concept approval confirming the flag is obsolete in modern macOS toolchains (hebasto)
| 0- 0 lines added or modified outside tests
- 0 lines added or modified in tests
- 1 lines removed in total
- 1 files, 1 commits
|
(+)#36269 fanquake guix: build with `_GLIBCXX_USE_DEPRECATED=0`- Strip unused deprecated standard library features from Guix release builds
- Slightly reduces debug symbol overhead in release binaries
| P4 · cleanup- P4 because it is a minor build tweak that saves only a few bytes of debug symbols
- Addresses no bugs or security concerns with negligible impact on build times
| Review #36082 first | 0- No review verdicts recorded
| Crickets- No feedback or reviews yet
- Recently opened as a draft with no discussion
| 205 + 9 tests- 205 lines added or modified outside tests
- 9 lines added or modified in tests
- 6 lines removed in total
- 7 files, 4 commits
|
(+)#36268 fanquake refactor: prune unused semi-colons- Prevent compiler noise from redundant semicolons across the codebase
- Enforce clean syntax automatically during builds
| P4 · cleanup- P4 because it is a cosmetic compiler hygiene improvement
- Enforcing this warning does not fix build breakages, CI reliability, or binary integrity
| Waiting on subtree sync- Wait to review: author is waiting on a libmultiprocess subtree pull
- CI is currently failing
| 0- No review verdicts recorded
| Crickets- No reviews or comments yet
- Opened recently as a draft without feedback
| 74 + 23 tests- 74 lines added or modified outside tests
- 23 lines added or modified in tests
- 95 lines removed in total
- 62 files, 4 commits
|
(+)#36052 maflcko ci: Doc: Move all config comments right next to the option they explain- Place CI config comments directly next to the options they document
- Avoids ShellCheck warnings and improves readability for CI maintainers
| P4 · cleanup- P4 because it is a purely cosmetic cleanup for CI setup scripts
- Avoids lint warnings without affecting build correctness or CI reliability
| Needs rebase- Has merge conflicts with the base branch and needs a rebase before review
| 1 | Positive- Uncontroversial cleanup with no objections raised
- Approval ACK without detailed comments (hebasto)
| 0 + 101 tests- 0 lines added or modified outside tests
- 101 lines added or modified in tests
- 99 lines removed in total
- 26 files, 2 commits
|
(+)#36074 maflcko scripted-diff: [test] Add util/check.h includes for assertions- Clarify assertion header usage across test and fuzz harnesses to prevent ambiguity around disabled checks
- Make automated header analysis tooling easier to run across tests
| P4 · cleanup- P4 because the build change is confined to a minor CI lint environment adjustment
- Carries minimal impact beyond enabling clang-format for scripted diffs
| Needs rebase- Needs rebase across many conflicting PRs, and author noted merge friction may prevent landing
| 0- No review verdicts recorded
| Positive- General support for systematically cleaning up assertion headers in test files (l0rinc)
- Assisted with scripted-diff regex matching and test runner paths (jeanpablojp)
| 12 + 329 tests- 12 lines added or modified outside tests
- 329 lines added or modified in tests
- 225 lines removed in total
- 155 files, 3 commits
|
(+)#32409 hebasto test: Introduce `SUPPRESS_ABORT_MESSAGE` environment variable- Prevent MSVC debug test runs from hanging on assertion popup dialogs in automated setups
- Helps developers and external automation running unattended Windows debug builds
| P4 · platform fix- P4 because Bitcoin Core does not build with the MSVC debug runtime or set this variable in CI
- The benefit is limited entirely to external out-of-tree nightly builds
- Ranking pass: Moved to last: MSVC-debug-only, unused anywhere in tree, NACKed, and further undercut by the clang-cl migration
| Author silent- Author has been silent for months with questions unanswered on whether the change is obsolete
| 0 -1 | Blocked- Objection because the environment variable is undocumented and unused in the repository (fanquake)
- Suggested suppressing aborts unconditionally rather than adding an unused variable (hodlinator, sedited)
- Questioned if runtime transitions already made this obsolete, with no author reply (fanquake)
| 0 + 17 tests- 0 lines added or modified outside tests
- 17 lines added or modified in tests
- 0 lines removed in total
- 1 files, 1 commits
|