Skip to content
Snippets Groups Projects
Forked from clients / python / sakia
22 commits behind the upstream repository.
vtexier's avatar
Vincent Texier authored
6f409329
History

sakia logo

Sakia

coverage report pipeline status Build Status Build status

========

Python3 and PyQt5 Client for duniter project.

Features

  • Accounts management
  • Communities viewing
  • Money Transfer
  • Wallets management
  • Contacts management
  • Joining a community, publishing keys
  • Multiple wallets management

Dependencies

  • Dependencies :

  • Qt5

  • python3

  • libsodium

  • General tips : use pyenv to build sakia, as described in the wiki

Building python 3 with pyenv requires libraries of openssl and sqlite3. On Ubuntu, install it using the following commands :

apt-get update
apt-get install libssl-dev
apt-get install libsqlite3-dev

Wheel Build scripts

  • Install wheel with pip install wheel
  • Run python3 gen_resources.py in sakia folder
  • Run python3 gen_translations.py in sakia folder
  • To build the wheel : Run python3 setup.py bdist_wheel in sakia folder

Pyinstaller Build scripts

  • Install pyinstaller with pip install pyinstaller
  • Run python3 gen_resources.py in sakia folder
  • Run python3 gen_translations.py in sakia folder
  • To build the binaries : Run pyinstall sakia.spec

Install with pip

  • Run pip install sakia
  • start "sakia" :)

Download latest release

  • Go to current release
  • Download corresponding package to your operating system
  • Unzip and start "sakia" :)
  • Join our beta community by contacting us on duniter forum

Command line options

-d to display log to debug

--currency g1-test to connect to the g1-test currency network.

Development

The development tools require Python 3.6.x or higher.

  • Create a python virtual environment with pyenv
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
  • Install dependencies
pip install -r requirements.txt
  • Run Sakia from the source code
PYTHONPATH="`pwd`/src/." python src/sakia/main.py
  • Before submiting a merge requests, please check the static typing and tests.

  • Install dev dependencies

pip install -r requirements_dev.txt
  • Check static typing with mypy
make check
  • Run all unit tests (pytest module) with:
make tests

Warning: do not run tests with sakia installed in your dev environment, because pytest will use the installed Sakia.

  • Run only some unit tests by passing a special ENV variable:
make tests TESTS_FILTER=tests/functional/test_transfer_dialog.py::test_transfer

Packaging and deploy

PyPi

In the development pyenv environment, install the tools to build and deploy

pip install --upgrade -r requirements_deploy.txt

Change and commit and tag the new version number (semantic version number)

./release.sh 0.x.y

Build the PyPi package in the dist folder

make build

Deploy the package to PyPi test repository (prefix the command with a space in order for the shell not to save in its history system the command containing the password)

[SPACE]make deploy_test PYPI_TEST_LOGIN=xxxx PYPI_TEST_PASSWORD=xxxx

Install the package from PyPi test repository

pip install --index-url https://test.pypi.org/simple/ --extra-index-url https://pypi.python.org/simple/ sakia

Deploy the package on the PyPi repository (prefix the command with a space in order for the shell not to save in its history system the command containing the password)

[SPACE]make deploy PYPI_LOGIN=xxxx PYPI_PASSWORD=xxxx

License

This software is distributed under GNU GPLv3.