Skip to content

Changelog

v0.11.2 November 22, 2023

  • #484: Support Python v3.12 on v0.11 release

Pre-requisites

  • disable pylint and pyupgrade hooks
  • switch jobs to 3.12 image containing pre-commit
  • !195, duniterpy#205: Fix gitlab-ci-linter hook

Support Python v3.12

  • !237, #457: Drop Python v3.7 support
  • Bump pendulum to v3.0.0b1
  • !238, !250, #448: Add support for Python v3.12

v0.11.1 August 14, 2023

Bug fix release, because libnacl brought in a breaking change.

  • Bump DuniterPy to v1.1.1 duniterpy#206
    • Set tilde requirement, to allow future patch updates

v0.11.0 November 27, 2022

(Please see the full set of changes for this release also in v0.10.0rc0 note below)

CLI

  • !229, #430: Rename certification cmd to certify and revocation save to revocation create

Milestone v0.11.0

v0.11.0rc0 November 12, 2022

Code

  • !199, #203: Migrate from tabulate to texttable
  • !216, #330: Repository restructuration

Network

  • !211, #397: Replace singletons with @functools.lru_cache() decorator
  • !220, #438, #411, #3: Add sleep() between identity_of() calls in a loop

CLI

Dev Env

  • !214, #163: Introduce type annotations for static typing with mypy
  • !227, #453: Support new mypy v0.990 reports
  • !215, #292: Introduce pylint tool
  • !212, #424: Introduce flake8
  • !222, #450: Replace flake8 with autoflake
  • !210, #428: Introduce pre-commit-hooks and mdformat hooks
  • !226, #451: pre-commit:hooks job doesn’t appear
  • !209, #408: Change workflow by changing from master and default dev branches to a single main branch
  • !224, #441: Separate unit and integration tests
  • !221, #442: Add support for Python v3.11
  • !217, #447: Fix coverage integration into GitLab

Documentation

  • !225, #224: Refactor pip install documentation: remove Windows part
  • !225, #188, #293: Replace pip installation with pipx
  • #432: List printqrjune in wrappers list

v0.10.0 April 18, 2022

(Please see the full set of changes for this release also in the v0.10.0rc0 and rc1 notes below)

Milestone v0.10.0

v0.10.0rc1 April 6, 2022

  • #426, !207: Ğ1 Monetary License refactoring:
    • Drop display in a browser
    • Discover available languages
    • Create G1MonetaryLicense class out of existing functions
  • Add Italian translation of Ğ1 monetary license
  • #421, !204 : wot command can display membership status from an other identity sharing same uid/pubkey
  • #422: excluded command displays information of an other identity sharing same uid/pubkey, not the one excluded
  • #216 diffi: Catch WS disconnection exception

v0.10.0rc0 March 21, 2022

Code

Features

  • #89, !170: Manage the revocation document
  • #134, !202: Read transaction recipients and amounts from a file

Ğ1 Monetary license

  • #221, !181: Research about Ğ1 monetary license integration and refactor of its handling in Silkaj
  • #308, !181: Ğ1 license display on a workstation: give the choice how to display it
  • #392, !181: Ğ1 monetary license files not included into the Python package
  • !181: subtree updated bringing new translations: Esperanto, Espagnol, and Portuguese

DeathReaper

  • #256: Implement excluded command to report excluded identities from the WoT / DeathReaper

Network

  • #373, #396, #410, !182, !194: Drop asynchronous property
  • #390, !182, !196: Implement generic network_tools.send_document()
  • #177, !188: Clean no longer used network layer functions
    • Rename global option from -p/--peer to -ep/--endpoint
  • #181, #409, !193: Improve endpoint determination code layer
  • #260: Disconnection bug when sending a document to a local node

Other changes

  • #407, !182: Support DuniterPy v1.0 Breaking Backward compatible changes in Documents classes
  • #344, !177: Fix import loop issue
  • !177: Generalize pendulum usage
  • #416, !170: Move wot_lookup() exceptions handling in higher level functions

Minor impact changes

  • #194, !195: Convert strings to f-strings
  • #376, !195: Replace tools.message_exit() with sys.exit()
  • #413, !170: Create get_currency() helper
  • #264, !178: Remove unmaintained and commented network command

Meta

  • !200: Bump DuniterPy to v1.1.0
  • #332, !200: Drop Python v3.6 support
  • #374, !197: Add support for Python v3.10
  • #401, !184: Bump to click v8.0
  • #364, !187: Introduce insert-license pre-commit hook, Switch # comment instead of """ docstring for the copyright and license statements
  • #365, !201: Update the copyright date to 2022 in the headers of every source files

Documentation

  • #384: Document how to release pre-releases
  • !180: README and CONTRIBUTING enhancements

Installation/Continuous Delivery

  • #388, !198: Set up Silkaj Docker images build automation

Development Environment/Continuous Integration

  • #326, !189: Integrate coverage in GitLab coverage feature
  • #355, !183: Set Py:3.8 as default image and move coverage to Py:3.9
  • #355, !185: Move the coverage and the badge generations to v3.9 test job
  • #414, !197: Drop Poetry lock file usage
  • !175: pyproject.toml and release.sh clean-ups, Pyinstaller removal

Introduce and generalize pre-commit usage

  • #401, !183: Introduce isort and gitlab-ci-linter pre-commit hooks
  • #403, !192: Introduce pyupgrade, Remove dev dep tools
  • #406, !191: Set up pre-commit hooks CI jobs
  • !179: Bump black to v21.4b2 and allow to install as pre-release
  • !190: Update pre-commit doc. Document CI linter hook usage

Thanks @moul, @matograine

v0.9.0 April 17, 2021

Milestone v0.9.0

  • #345, #385, !171: Refactor id/lookup command exclusively using /wot/lookup
    • Display non-member uids when passing a pubkey
    • Use same algorithm as choose_identity() uses
    • Rename id to lookup command
  • #377, !172: balance: Fix undefined variable in case of 'Total' label

Plus what can be found bellow in v0.9.0rc

v0.9.0rc March 24, 2021

Code

tx

  • #281, !129: Handle transaction size limit properly
  • #257, #312, #356: Handle chained transactions/Change txs lost while sending big amount
  • #296, #362, !154, !157: Prevent sending transaction with 0 as amounts
  • #172, !165: Refactor tx confirmation, by using click.confirm()

balance

  • #300, !164: balance: Display corresponding member identity uid
  • #366, !159: Fix wrong DuniterError exception handling in wot.identity_of
  • #377, !166: balance: Document money.show_amount_from_pubkey()
  • #342, !151: Don’t allow to pass multiple times the same pubkey to the balance command

Others

  • #218, !160: history: Add option to display the complete pubkeys
  • #314, !165: Display option for cert, membership commands
  • !165: Make --dry-run option a generic one
  • #378, !165: Create and use generic send_doc_confirmation() in cert and membership commands
  • #176, !149: Get rid of PyNaCl and use base58 module
  • #309, !163: wot: Fix legend about received certifications
  • #208: argos: Remove duplicate call to CurrencySymbol

Tests

  • #213, !130: Write unit tests for the tx command
  • #282, !130: Split patched.py into files
  • #335, !130: Merge the two functions testing transaction_amount()
  • #363, !129: Returns balance from patched_get_source()
  • #368, !161: Assertions are not tested when testing system exit
  • #362, !156: Change "moul" id in tests

Meta

  • #240, !150: Drop Python 3.5 support
  • #294, !150, docker/python3/poetry!1: Add support and set-up Python 3.9 test job
  • #270: Silkaj v0.8.1 package for Debian Bullseye (v11)
  • #226, !158: Get rid of ipaddress dependency
  • #290, !162: Update pre-commit dev dependency
  • #267: Update the copyright date to 2021 in the headers of every source files
  • !150, !155, !167, Update DuniterPy from v0.58.1 to v0.62.0
  • #313, !148: Be compatible with and handle new features from Poetry v1.1
  • #299, !147: Introduce dev version suffix

Thanks @matograine, @moul, @atrax

v0.8.1 November 30, 2020

  • #358, !152: Update DuniterPy to v0.58.1, to support libnacl v1.7.2

Thanks @matograine

v0.8.0 October 18, 2020

Milestone v0.8.0

Code

Transaction

  • #111, !108: Support passing different amounts on multi-recipients tx

    • Breaking change: Rename --output option to --recipient
  • Add extra small options to ease passing multiple amounts and recipients:

    • -a/--amount
    • -d/--amountUD
    • -r/--recipient
    • -c/--comment
  • Add possibility to pass multiple options:

    • Breaking change: recipients public keys are no longer : separated: -r A -r B
  • #232, !131, !132: Identities not retrieved for tx with several issuers, and to display the tx history

  • #236, !107: Improve the confirmation display

  • !144: Rework confirmation fields titles

  • #235: Make sure only one option is passed to retrieve the amount of the transaction

Membership, WoT

  • #88, !140: Add membership command
  • #88, !144: Rework table fields names
  • #140, !140: Ability to pass an uid or a pubkey to wot, and cert, membership commands
    • Implement identity choice selector

Checksum

  • #237, !132: Breaking change: Switch back the checksum delimiter from ! to :
  • #323, !132: Handle pubkey's checksum in the tx code
  • #301, !143: Generalize pubkey checksum display and verifiction, Add chekcsum command
  • #320, !143: Incorrect use of check_public_key() in id command

Others

  • #262, !123: Add new verify command to check blocks’ signatures
  • #264, !133: Disable the broken net command
  • !131: Display powMin in a row in the blocks explorer
  • #210, !115: Close client session in every cases
  • #223: Make Click context optional to be able to call functions from an external module
  • #255, !113: balance: display the content in tables
  • #269, !133: Move convert_time() to tui.py
  • #278, !128: Fix PubSec regex
  • #336, !141: history: Pubkeys display issue with multisig txs

Dev Env

Poetry migration

  • #182: Migrate from Pipenv and setup.py to Poetry
  • #249: Install Poetry stable when v1 is released
  • #263, !127: Post migration tasks (black, poetry)
  • #276, !120: Pip installation do not install silkaj executalbe into $HOME/.local/bin

CI/CD set-up

  • #245: Automated containers builds with Poetry installed for Python versions 3.5, 3.6, 3.7, and 3.8
  • #149: CI/CD set up
  • #105: Deploy on PyPI from GitLab CD
  • #146: Add a coverage badge
  • #284, !124: build and tests jobs are not retriggered in case of source code change
  • #286, !126: Use latest Black version from PyPI in the container
  • !131: Use rules instead of only/except

Tests

  • #241: Can not run test with Click utility

Dependencies

  • #259: attr error while installing with pip
  • !121, !131, !142: Update DuniterPy from v0.55.1 to v0.58.0
  • #251, !140: Introduce pendulum date utility
  • Introduce pytest-sugar
  • Update PyNaCl to v1.4.0
  • Update Click to v7.1.2
  • #338, !140: Update black to v20

Python versions support

We added the support for Python 3.8. #240: It is planned that v0.8.x versions are going to be the last releases with Python 3.5 support since its support from the Python project has been dropped September 30th of 2020.

Documentation

  • #202: Document contribution process in CONTRIBUTING.md
  • #182: Document Poetry installation and usage
  • !109: Add Poetry installation on Debian Buster
  • !103: Add pip installation documentation for macOS
  • !131: Add packaging status badge from Repology
  • #244: Add AUTHORS.md listing the contributors
  • #207: Create Silkaj SVG logo

Project

  • #252, !118: Create a script to update and update the copyright date to 2020
  • #285, !132: Add copyright and license statements in tests source files

Thanks

@moul, @matograine


v0.7.6 January 24, 2020

  • Update DuniterPy to v0.55.1 in order to have the PubSec regex fixed

v0.7.5 January 23, 2020

  • #276: Publish on PyPI with previous method: wheel, twine, and setup.py.
  • silkaj binary does not get installed to $HOME/.local/bin via Poetry

v0.7.4 January 22, 2020

  • #273, !119: Fix broken PubSec authfile importation regex

Thanks to @matograine for this bugfix and the release!

v0.7.3 July 25, 2019

#239: Bug fix release for broken successives transactions due to wrongly calculated pending inputs:

  • remove already used inputs: restore previous behaviour which haven’t been kept the same during the migration
  • enumerate() wrongly moved to the non appropriate for loop

v0.7.2 June 25, 2019

  • #233: fix round passed amount and amoundUD floats × by 100

v0.7.1 May 29, 2019

  • Fix transaction document generation from DuniterPy

v0.7.0 May 22, 2019

Milestone v0.7.0

DuniterPy

  • #7, !97: Migrate to DuniterPy
  • #200: Freeze DuniterPy dependency version
  • #206: Set a sleep for async requests
  • #178: Select different sources for intermediaries tx

CLI

  • #77, !98: Migrate command line tool from commandline to Click
  • #67, #76, #116, #117, #123: fixed by previous issue
  • #167: Rename amount command to balance
  • #148: Rename issuers command to blocks which is a more appropriate word to what it does
  • With -p option: when the port of the node is 443, it’s not necessary to specify the port

Transaction

  • #22: Display transactions history in a table
  • #184: Rework transaction functions (Part 3)
  • #152: fix --allSources option which was not working
  • #165, !99: Display outputBackChange option in confirmation chart
  • #131: Prevent sending too small amount

Certification

  • #170: Change process: only propose license display
  • #198: Display identity’s blockstamp and date into confirmation message

Difficulty level

  • #93: Difficulties fails / use websocket to be informed about new block
  • #190: Display the date when the head block has been generated

Balance

  • !96, #122: display balance in comparison to the average of money share

Blocks

  • Display the full dates of blocks’ generation and mediantime

WoT

  • #141: Crash on membership status
  • Add legend to explain
  • #189: Handle wot requests exceptions
  • #135 :is_member() requests all members to know if an identity is member will explose

Authentication

  • #130: Prevent erasing authfile
  • Use pathlib.Path instead of os.path

Tests

  • !83, #85: Create test structure
  • #225: Install pytest-asyncio

Other

Website / Doc

  • #82: Update website and readme about new features
  • #136: Link directly the installation documentation on the website
  • #159: Update website
  • #160: Add website repository link in the README
  • List Silkaj wrappers en the README
Installation documentation
  • Add instructions on installing libsodium which is required by pylibscrypt since DuniterPy migration
  • #142: Improve pip installation documentation
  • Improve Pipenv installation documentation
  • !89: Add Docker install procedure, Pip: dependency and PATH tricks
  • #215: Conflict between pyproject.toml and pipenv install

Windows

  • #153: Install on Windows, Scrypt issue
  • #154: net: can’t get screen size on Windows
  • !92: Document Windows installation with pip

Project

  • #132: Add a license notice as a header of every source files
  • #158: Add CHANGELOG.md file
  • #186: Fix firsts two tags
  • Pypi: add classifiers

Thanks

@Attilax, @Bernard, @cebash, @matograine, @vtexier

v0.6.5 Debian January 8, 2019

v0.6.5 fork for Debian package without DuniterPy migration but with Click CLI module.

  • #137: Create Debian package and publish it in Buster
  • #77, !98: Migrate to Click
  • #132: Add a license notice as a header of every source files

Thanks

@jonas

v0.6.1 December 10, 2018

Milestone v0.6.1

  • !90, #151: Fix intermediaries transactions sent to wrong recipient
  • !91, #145: Allow to renew certifications
  • #155: Make clear calls works on Windows
  • #141: Crash on membership status
  • #166: Shell completion

v0.6.0 November 18, 2018

Milestone v0.6.0

Installation

  • #86: Move from pyenv+pip to Pipenv as the new development environment solution
  • #100, !80: New installation method with pip now set as default
  • #100: Documentation on how to publish on Pypi

Authentication

  • #78: Use Scrypt as default authentication method
  • #102: Display a confirmation message after using generate_auth_file command
  • #103: More explicit usage about the authentication file mechanism storage

Certification

  • #96, !82: Certification fails for non-members identities
  • Prevent certifying ourself
  • Code refactoring: simplification, duplicate code removal

Wot

  • Display certification stock
  • #73: Display identity status:
    • Display membership expiration due to membership expiration and certifications expiration
  • #127: fix: display human readable date for 'revoked on' attribute

Transaction

  • #83, !78: Allow multi-output transactions
  • #72: Check the pubkey’s balance is enough before processing the transaction
  • #72: Minors transaction refactoring
  • #101: Round UD value in the confirmation summary
  • #118: Use generic function to get sources
  • #120: Display pubkey’s balance before and after transaction in the confirmation summary
  • #125: Fix wrong amount transferred

New commands

  • #91: about: displays information about silkaj
  • #95: license: displays Ğ1’s license

Ğ1-test

  • #87: Add --gtest option to specify official Ğ1-test node
  • #109, !84: Improve gtest usage message
  • #112: Amount: fix authentication option with --gtest option

Python 3.7

  • #98: Test with Python 3.7: silkaj is compatible with Python from version 3.4 to 3.7
  • #98: Set Python 3.7 for Pipenv

Network performances

  • #42, !85: Thanks to singleton, requests are made once for head_block, blockchain parameters, endpoint, ud_value, and currency_symbol retrieval
  • #32: request the domain first instead of the IP (to handle https certificates) (this avoid network view to crash)
  • #32, !79: Add timeouts on GET and POST requests
  • #128, !88: Fix POST request timeout

Black: code formatting

  • #94, !76: move from pep8 to black code formatting. Set pre-commit hook and CI worker

Bug fixes and refactoring

  • #121: Move cryptographic related functions into crypto_tools.py
  • #92: Silkaj logo publication under GNU APGLv3 after a successful crowdfunding

Wrappers

  • #107: Document silkaj wrappers usages

Forum post

v0.5.0 May 22, 2018

Milestone v0.5.0

Certification

  • #61: sending certification document:
    • check that current identity is member
    • check that the certification has not already been sent
    • prompt Ğ1’s license and ask for acceptance in web browser or in pager (a less-like) if no web browser is available

Wot

  • #84: display certifications’ expiration date
  • #81: bugfix, nothing displayed when there is two identities with same id

Amount

  • remove necessity to prepend with --pubkey option: silkaj amount pubkey1:pubkey2:pubkey3

Issuers

  • display the hash’s ten first characters as Ğ1’s global difficulty has increased
  • display blocks in current window: silkaj issuers 0

Build

  • #6: Automate releases using a script

Other

  • display Ğ1 and ĞTest currencies symbols
  • Aliases commands id: identities, tx: transaction, net: network
  • import rework to improve loading performances
  • Lots of code reorganization and cleaning

Forum post

v0.4.0 January 28, 2018

Milestone v0.4.0

New wot command which displays received and sent certification of an identity

Transaction

  • #41: Rework/refactoring of transaction code (part 1)
  • !55: Add check condition for sources
  • !57: Exit if wrong pubkey’s output formats

Amount

  • #46, !68: Add ability to display the amount of many pubkey with same command
  • Total amount of pubkeys displayed at the end (nice to know how much units you own)

Authentication

  • !56: Add Ğannonce (aka PubSec) file format import
  • #60: Hide salt at scrypt authentication

Difficulties

  • !58: Reload/refresh in a loop PoW difficulty level
  • Display in same order as Remuniter

Id

  • #49: Display if pubkey is member
  • #59: Bug fix with id command

Build

  • Build published with sha256 checksum

Other

  • Change default endpoint

Thanks

Thanks to @Tortue95, @jytou, @mmuman, and @cuckooland

Forum post

v0.3.0 April 17, 2017

Milestone v0.3.0

Transactions

  • enhance transaction command:
    • #27, #30: ask for confirmation
    • !38: new confirmation chart containing transaction informations
    • don’t prompt scrypt parameters. See Auth §

New command id to search for pubkey/identity

  • !29: new command id to search identities with pubkey or id

Tutorial to install a Python environment

  • #23, !40: Pyenv installation tutorial

Authentication

  • !45: new authentication method: WIF. For future paper wallet feature
  • #39, #43: Don’t prompt scrypt parameters at authentication. Use default ones

Builds

  • #5: with Pyinstaller

Other

  • !33, !37: Ability to sort network view
  • Change license from GNU GPLv3 to GNU AGPLv3
  • !31: Code formatting with pep8

Thanks to @Tortue95 and @jytou

Forum post

v0.2.0 March 27, 2017

Features

Milestone v0.2.0

Announcement

Big thanks to @Tortue95, and @mmuman.

v0.1.0 September 23, 2016

Public release

Milestone v0.1.0

Features

Sub-commands:

  • info
  • difficulties
  • network
  • issuers

Thanks to @c-geek.