Changelog
v0.11.2 November 22, 2023¶
- #484: Support Python v3.12 on v0.11 release
Pre-requisites¶
- disable
pylint
andpyupgrade
hooks - switch jobs to
3.12
image containingpre-commit
- !195, duniterpy#205: Fix
gitlab-ci-linter
hook
Support Python v3.12¶
- !237, #457: Drop Python v3.7 support
- Bump
pendulum
tov3.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¶
Milestone v0.11.0¶
v0.11.0rc0 November 12, 2022¶
Code¶
Network¶
- !211, #397: Replace singletons with
@functools.lru_cache()
decorator - !220, #438, #411, #3: Add
sleep()
betweenidentity_of()
calls in a loop
CLI¶
- !219, #430: Organize commands into subcommands
- !218, #436: Rename
tx
command totransfer
- !223, #449: Get rid of
argos
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
withautoflake
- !210, #428: Introduce
pre-commit-hooks
andmdformat
hooks - !226, #451:
pre-commit:hooks
job doesn’t appear - !209, #408: Change workflow by changing from
master
and defaultdev
branches to a singlemain
branch - !224, #441: Separate
unit
andintegration
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 withpipx
- #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 sameuid
/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
- Rename global option from
- #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()
withsys.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¶
Installation/Continuous Delivery¶
Development Environment/Continuous Integration¶
- #326, !189: Integrate coverage in GitLab coverage feature
- #355, !183: Set
Py:3.8
as default image and move coverage toPy: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
andrelease.sh
clean-ups, Pyinstaller removal
Introduce and generalize pre-commit
usage¶
- #401, !183: Introduce
isort
andgitlab-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
tolookup
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 inwot.identity_of
- #377, !166:
balance
: Documentmoney.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()
incert
andmembership
commands - #176, !149: Get rid of
PyNaCl
and usebase58
module - #309, !163:
wot
: Fix legend about received certifications - #208:
argos
: Remove duplicate call toCurrencySymbol
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¶
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
- Breaking change: Rename
-
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
- Breaking change: recipients public keys are no longer
-
#232, !131, !132: Identities not retrieved for tx with several issuers, and to display the tx history
-
!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 apubkey
towot
, andcert
,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()
inid
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 theblocks
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()
totui.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
andtests
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 ofonly/except
Tests¶
- #241: Can not run test with Click utility
Dependencies¶
- #259:
attr
error while installing withpip
- !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
, andsetup.py
. silkaj
binary does not get installed to$HOME/.local/bin
via Poetry
v0.7.4 January 22, 2020¶
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 tobalance
- #148: Rename
issuers
command toblocks
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¶
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 ofos.path
Tests¶
Other¶
- #161: Singleton improvement
- #157, !100: Use
for
loops - #169, !100: type issue
- #113: Many small improvements
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¶
Ğ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
, andcurrency_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¶
Bug fixes and refactoring¶
- #121: Move cryptographic related functions into
crypto_tools.py
Logo¶
- #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¶
Difficulties¶
Id¶
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:
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¶
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.