This section has been updated to Bitcoin Core @ v23.0

The GUI has its own separate repo at bitcoin-core/gui. PRs which primarily target the GUI should be made here, and then they will get merged into the primary repo. Developer Marco Falke created an issue in his fork which detailed some of the rationale for the split, but essentially it came down to:

  1. Separate issue and patch management

  2. More focused review and interests

  3. Maintain high quality assurance

He also stated that:

Splitting up the GUI (and splitting out modules in general) has been brought up often in recent years. Now that the GUI is primarily connected through interfaces with a bitcoin node, it seems an appropriate time to revive this discussion.

— Marco Falke

PR#19071 contained the documentation change now contained in the Bitcoin Core primary repository, along with details of the monotree approach that was ultimately taken. The documentation change provides guidance on what a "GUI change" is:

As a rule of thumb, everything that only modifies src/qt is a GUI-only pull request. However:

  • For global refactoring or other transversal changes the node repository should be used.

  • For GUI-related build system changes, the node repository should be used because the change needs review by the build systems reviewers.

  • Changes in src/interfaces need to go to the node repository because they might affect other components like the wallet.

For large GUI changes that include build system and interface changes, it is recommended to first open a PR against the GUI repository. When there is agreement to proceed with the changes, a PR with the build system and interfaces changes can be submitted to the node repository.

— src/

On a related note, another issue was recently opened by Falke, to discuss the possibility of instituting the same monotree changes for wallet code.

Table of contents