mirror of
https://github.com/rootzoll/raspiblitz.git
synced 2025-02-25 07:07:46 +01:00
166 lines
4.6 KiB
Markdown
166 lines
4.6 KiB
Markdown
|
# BlitzTUI Documentation (mainly for developers)
|
||
|
|
||
|
BlitzTUI is a part of the RaspiBlitz project and implements a Touch User Interface in PyQt5.
|
||
|
|
||
|
Make sure that PyQt5 is installed on the system
|
||
|
|
||
|
```
|
||
|
apt-get install python3-pyqt5
|
||
|
```
|
||
|
|
||
|
|
||
|
## Required tools
|
||
|
|
||
|
### for UI development
|
||
|
|
||
|
* QT Designer (GUI application for Linux, Mac and Windows)
|
||
|
|
||
|
### for compiling the .ui and .qrc files to python3
|
||
|
|
||
|
* pyuic5
|
||
|
* pyrcc5
|
||
|
|
||
|
`sudo apt-get install pyqt5-dev-tools`
|
||
|
|
||
|
### for building and uploading PyPI packages
|
||
|
|
||
|
* setuptools
|
||
|
* wheel
|
||
|
* twine
|
||
|
|
||
|
`python3 -m pip install --upgrade setuptools wheel twine`
|
||
|
|
||
|
|
||
|
## Mini-Tutorial
|
||
|
|
||
|
Have a look at the [Mini-Tutorial](tutorial.md)
|
||
|
|
||
|
|
||
|
## Release workflow
|
||
|
|
||
|
* `make build-ui` - in case there were any changes to the *.ui or *.qrc files
|
||
|
* make sure you have all changes added and commited (consider re-basing)
|
||
|
* update the version in `blitztui/version.py`
|
||
|
* update the `CHANGELOG.md` file (reflect the new version!)
|
||
|
* `git add CHANGELOG.md blitztui/version.py`
|
||
|
* `git commit` and set a proper commit message
|
||
|
* `make build`
|
||
|
* `make upload`
|
||
|
|
||
|
|
||
|
## Uploading to PyPI
|
||
|
|
||
|
Please use `twine` for uploading files to PyPI. You will need credentials for the BlitzTUI account.
|
||
|
|
||
|
```
|
||
|
$ cat ~/.pypirc
|
||
|
[distutils]
|
||
|
index-servers=
|
||
|
pypi
|
||
|
pypitest
|
||
|
|
||
|
[pypi]
|
||
|
username = RaspiBlitz
|
||
|
password = <REDACTED>
|
||
|
|
||
|
[pypitest]
|
||
|
repository = https://test.pypi.org/legacy/
|
||
|
username = RaspiBlitz-Test
|
||
|
password = <REDACTED>
|
||
|
```
|
||
|
|
||
|
## PRELOAD-What?!
|
||
|
|
||
|
**Update: This seems to be fixed since grpcio==1.24.3!**
|
||
|
|
||
|
What's the reason for this long `LD_PRELOAD` line?!
|
||
|
|
||
|
Apparently there is an incompatibility with the current version (as of writing this: **grpcio==1.24.1**) of
|
||
|
**gRPC** for Python on ARM (Raspberry Pi) that was released by Google. Running without `LD_PRELOAD` gives
|
||
|
an error regarding `undefined symbol: __atomic_exchange_8`:
|
||
|
|
||
|
```
|
||
|
(python3-env-lnd) admin@raspiblitz:~/raspiblitz/home.admin/BlitzTUI $ python3
|
||
|
Python 3.7.3 (default, Apr 3 2019, 05:39:12)
|
||
|
[GCC 8.2.0] on linux
|
||
|
Type "help", "copyright", "credits" or "license" for more information.
|
||
|
>>> import grpc
|
||
|
Traceback (most recent call last):
|
||
|
File "<stdin>", line 1, in <module>
|
||
|
File "/home/admin/python3-env-lnd/lib/python3.7/site-packages/grpc/__init__.py", line 23, in <module>
|
||
|
from grpc._cython import cygrpc as _cygrpc
|
||
|
ImportError: /home/admin/python3-env-lnd/lib/python3.7/site-packages/grpc/_cython/cygrpc.cpython-37m-arm-linux-gnueabihf.so: undefined symbol: __atomic_exchange_8
|
||
|
```
|
||
|
|
||
|
It is expected that this is resolved soon-ish.
|
||
|
|
||
|
|
||
|
## Directory tree
|
||
|
|
||
|
```
|
||
|
admin@raspiblitz:~/raspiblitz/home.admin/BlitzTUI $ tree
|
||
|
.
|
||
|
├── blitztui
|
||
|
│ ├── client.py
|
||
|
│ ├── config.py
|
||
|
│ ├── file_logger.py
|
||
|
│ ├── file_watcher.py
|
||
|
│ ├── __init__.py
|
||
|
│ ├── main.py
|
||
|
│ ├── memo.py
|
||
|
│ ├── ui
|
||
|
│ │ ├── home.py
|
||
|
│ │ ├── __init__.py
|
||
|
│ │ ├── invoice.py
|
||
|
│ │ ├── off.py
|
||
|
│ │ ├── qcode.py
|
||
|
│ │ └── resources_rc.py
|
||
|
│ └── version.py
|
||
|
├── CHANGELOG.md
|
||
|
├── data
|
||
|
│ ├── lnd.conf
|
||
|
│ ├── raspiblitz.conf
|
||
|
│ ├── raspiblitz.info
|
||
|
│ ├── Wordlist-Adjectives-Common-Audited-Len-3-6.txt
|
||
|
│ └── Wordlist-Nouns-Common-Audited-Len-3-6.txt
|
||
|
├── designer
|
||
|
│ ├── home.ui
|
||
|
│ ├── invoice.ui
|
||
|
│ ├── off.ui
|
||
|
│ └── qcode.ui
|
||
|
├── dist
|
||
|
├── docs
|
||
|
│ ├── images
|
||
|
│ │ └── QtDesigner.png
|
||
|
│ ├── README.md
|
||
|
│ └── tutorial.md
|
||
|
├── images
|
||
|
│ ├── blank_318x318.png
|
||
|
│ ├── Paid_Stamp.png
|
||
|
│ ├── RaspiBlitz_Logo_Berry.png
|
||
|
│ ├── RaspiBlitz_Logo_Condensed_270.png
|
||
|
│ ├── RaspiBlitz_Logo_Condensed_90.png
|
||
|
│ ├── RaspiBlitz_Logo_Condensed_Negative.png
|
||
|
│ ├── RaspiBlitz_Logo_Condensed.png
|
||
|
│ ├── RaspiBlitz_Logo_Icon_Negative.png
|
||
|
│ ├── RaspiBlitz_Logo_Icon.png
|
||
|
│ ├── RaspiBlitz_Logo_Main_270.png
|
||
|
│ ├── RaspiBlitz_Logo_Main_90.png
|
||
|
│ ├── RaspiBlitz_Logo_Main_Negative.png
|
||
|
│ ├── RaspiBlitz_Logo_Main.png
|
||
|
│ ├── RaspiBlitz_Logo_Stacked_270.png
|
||
|
│ ├── RaspiBlitz_Logo_Stacked_90.png
|
||
|
│ ├── RaspiBlitz_Logo_Stacked_Negative_270.png
|
||
|
│ ├── RaspiBlitz_Logo_Stacked_Negative_90.png
|
||
|
│ ├── RaspiBlitz_Logo_Stacked_Negative.png
|
||
|
│ └── RaspiBlitz_Logo_Stacked.png
|
||
|
├── LICENSE
|
||
|
├── make.cmd
|
||
|
├── Makefile
|
||
|
├── MANIFEST.in
|
||
|
├── README.md
|
||
|
├── requirements.txt
|
||
|
├── resources.qrc
|
||
|
├── setup.cfg
|
||
|
└── setup.py
|
||
|
```
|