raspiblitz/home.admin/BlitzTUI/docs
2019-11-15 21:25:12 +01:00
..
images add BlitzTUI files (based on PyQT5) 2019-11-15 21:25:12 +01:00
README.md add BlitzTUI files (based on PyQT5) 2019-11-15 21:25:12 +01:00
tutorial.md add BlitzTUI files (based on PyQT5) 2019-11-15 21:25:12 +01:00

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

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