Skip to content
Snippets Groups Projects
Select Git revision
  • 0.52.0
  • master default protected
  • dev
  • appimage
  • fix_gitlab
  • fixappveyor
  • gitlab
  • fix_ci
  • fix_dbus_error
  • fix_ci_osx
  • sakia020
  • fix_travis#1105
  • feature/backend
  • check_uniq_node_by_endpoints
  • qt5.7
  • feature/agent_architecture
  • translations
  • pyqt5.6
  • qtwebengine
  • pyinstaller
  • landscape
  • 0.53.2
  • 0.53.1
  • 0.53.0
  • 0.51.1
  • 0.51.0
  • 0.50.5
  • 0.50.4
  • 0.50.3
  • 0.50.2
  • 0.50.1
  • 0.50.0
  • 0.33.0rc7
  • 0.33.0rc6
  • 0.33.0rc5
  • 0.33.0rc4
  • 0.33.0rc3
  • 0.33.0rc2
  • 0.33.0rc1
  • 0.32.10post1
40 results

sakia

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.