Skip to content

Commit 7573889

Browse files
committed
move qml/README to front page
1 parent c01451c commit 7573889

File tree

1 file changed

+101
-0
lines changed

1 file changed

+101
-0
lines changed

README.md

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,101 @@
1+
# Bitcoin Core QML GUI
2+
3+
**WARNING: THIS IS EXPERIMENTAL, DO NOT USE BUILDS FROM THIS REPO FOR REAL TRANSACTIONS!**
4+
5+
This directory contains the source code for an experimental Bitcoin Core graphical user interface (GUI) built using the [Qt Quick](https://doc.qt.io/qt-5/qtquick-index.html) framework.
6+
7+
Unsecure CI artifacts are available for local testing of the master branch, avoiding the need to build. These can be found under the [Actions](https://github.com/bitcoin-core/gui-qml/actions?query=branch%3Amain) tab. It is required to have and be logged into a github account in order to download these.
8+
9+
Note: For macOS, the CI artifact binary must be made executable and code-signed before it can
10+
be ran. To make executable and apply a signature, run the following on the unzipped CI artifact:
11+
12+
```
13+
chmod +x ./Downloads/bitcoin-qt && codesign -s - ./Downloads/bitcoin-qt
14+
```
15+
16+
## Goals and Limitations
17+
18+
The current Bitcoin Core GUI has gathered enough technical debt and hacked on features; it is time to begin anew.
19+
This project will start from a clean slate to produce a feature-rich GUI with intuitive user flows and first-class design.
20+
21+
The primary goals of the project can be summed up as follows:
22+
23+
- Implement UX/UI best-practices as documented in the [Bitcoin Design Guide](https://bitcoin.design/guide/)
24+
- Engage with the Bitcoin Design community to implement well-designed features
25+
- Work alongside the Bitcoin Design community to develop an aesthetic GUI
26+
- Develop a mobile-optimized GUI
27+
28+
We must avoid conflicts with the Bitcoin Core repo.
29+
As such, this project will aim to make very few changes outside of the qml directory.
30+
Pull requests must be focused on developing the GUI itself, adding build support,
31+
or improving relevant documentation.
32+
33+
This project will **not** accept pull requests making any significant changes unrelated to the GUI.
34+
35+
## Development Process
36+
37+
This repo is synced with the [Bitcoin Core repo](https://github.com/bitcoin/bitcoin) on a weekly basis, or as needed to resolve conflicts.
38+
39+
Contributions are welcome from all, developers and designers. If you are a new contributor, please read [CONTRIBUTING.md](../../CONTRIBUTING.md).
40+
41+
### Minimum Required Qt Version
42+
43+
All development must adhere to the current upstream Qt Version to minimize our divergence from upstream and avoid costly changes. Review of open PR's must ensure that changes are compatible with this Qt version. Currently, the required version is [Qt 5.15.2](https://github.com/bitcoin-core/gui-qml/blob/main/depends/packages/qt.mk#L2).
44+
45+
As the Qt Version changes upstream, refactoring is allowed to use the now available features.
46+
47+
### Policies
48+
49+
This project has custom policies for development, see:
50+
- [Icon Policy](./doc/icon-policy.md)
51+
- [Translator Comments Policy](./doc/translator-comments.md)
52+
53+
## Compile and Run
54+
55+
The master branch is only guaranteed to work and build on Debian-based systems, Fedora, and macOS.
56+
Support for more systems will be confirmed and documented as the project matures.
57+
58+
### Dependencies
59+
No additional dependencies, besides those in [build-osx.md](../../doc/build-osx.md), are needed for macOS.
60+
61+
Aside from the dependencies listed in [build-unix.md](../../doc/build-unix.md), the following additional dependencies are required to compile:
62+
63+
#### Debian-based systems:
64+
65+
```
66+
sudo apt install qtdeclarative5-dev qtquickcontrols2-5-dev
67+
```
68+
69+
The following runtime dependencies are also required for dynamic builds;
70+
they are not needed for static builds:
71+
72+
```
73+
sudo apt install qml-module-qtquick2 qml-module-qtquick-controls qml-module-qtquick-controls2 qml-module-qtquick-dialogs qml-module-qtquick-layouts qml-module-qtquick-window2 qml-module-qt-labs-settings
74+
```
75+
##### Important:
76+
77+
If you're unable to install the dependencies through your system's package manager, you can instead perform a [depends build](../../depends/README.md).
78+
79+
#### Fedora:
80+
81+
```
82+
sudo dnf install qt5-qtdeclarative-devel qt5-qtquickcontrols qt5-qtquickcontrols2-devel
83+
```
84+
85+
### Build
86+
87+
For instructions on how to build and compile Bitcoin Core, refer to your respective system's build doc.
88+
89+
As long as the required dependencies are installed, the qml GUI will be built.
90+
To ensure that you are in fact building the qml GUI, you can configure with the following option:
91+
92+
```
93+
./configure --with-qml
94+
```
95+
96+
### Run
97+
98+
To run the qml GUI:
99+
```
100+
./src/qt/bitcoin-qt
101+
```

0 commit comments

Comments
 (0)