Skip to content
Snippets Groups Projects
Select Git revision
  • wip/data_path
  • wip/python3_syntax
  • wip/fix_pyqt
  • dev
  • master default protected
  • 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
  • 0.53.1
  • 0.53.0
  • 0.52.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
  • 0.32.10
40 results

sakia

  • Clone with SSH
  • Clone with HTTPS
  • 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

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

    Building Python 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

    Install with pip

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

    Download latest release

    Command line options

    -d to display log to debug

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

    Development

    • When writing docstrings, use the reStructuredText format recommended by PEP 0287
    • Use make commands to check the code and the format it correct.

    The development tools require Python 3.6.x or higher.

    • Install a supported Python version with pyenv

        curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
    • Create a virtualenv in the project folder:

        python -m venv .venv
    • 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

    Wheel Build scripts

    make build

    Or manually:

    • 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

    AppImage

    make appimage

    The make command will do a wheel build, then create the AppImage file ci/appimage/Sakia_x86_64.AppImage

    Pyinstaller Build scripts (not maintained)

    • 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

    License

    This software is distributed under GNU GPLv3.