From 2fe1c365f7ea99c8b0985c9c45bc0766cdcd680e Mon Sep 17 00:00:00 2001 From: Moul <moul@moul.re> Date: Thu, 8 Jul 2021 19:10:50 +0200 Subject: [PATCH] [doc] Improve v1.0.0rc0 changelog (2/2) Add a tl;dr Add summaries to paragraphs Sort bullets points items into paragraphs --- CHANGELOG.md | 53 +++++++++++++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 21 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index d9fb016c..345317b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,17 +1,21 @@ -## [v1.0.0rc0](https://git.duniter.org/clients/python/duniterpy/-/milestones/12) (8th July 2021) +## [v1.0.0rc0](https://git.duniter.org/clients/python/duniterpy/-/milestones/12) (9th July 2021) + +TL;DR: The key changes are the `Documents` refactoring, the removal of the asynchronous property. +The inclusion of the examples into the package, and the introduction of `pre-commit` tool for development purposes. ### This release breaks backward compatibility! From this version, only major releases might break backward compatibility. For 1.x minor versions, only `DeprecationWarning` will occur. ### Features -- #140, !118: Replace `aiohttp` with non-asynchronous `http` and `ws` libraries: `urllib` and `websocket-client`: - - `async` and `await` keywords are no longer required - - In case you would like to keep your code asynchronous, check `request_data_async.py` example +#### Documents refactoring +Major refactoring have been done on `Document` and its sub-classes. +All documents are now internally using a `signature` attribute which is a string and no longer a list of strings, except for the `Transaction` document which can handle multi-signatures. +It is no longer possible to pass the `signature` as argument at instantiation since it doesn’t make sense in the document life cycle. +However, it is now possible to pass a `signing_key` argument to directly instantiate a signed document. +The document version and the currency arguments are now set optional and default to current document version and Ğ1 currency. +The methods to check the signature·s have been moved as specific methods into the documents classes. -- #160, !134: Include `examples` into the Python package: - - Read new examples usage documentation in the `README.md` - - #95, !144: Remove `signatures` argument from all `__init__()`’s documents subclasses: - `Document` constructor is `Document(version: int, currency: str)` - All `Document` subclasses can be directly signed when the optional `signing_key` argument is passed @@ -39,37 +43,44 @@ For 1.x minor versions, only `DeprecationWarning` will occur. - `block_id` for `BlockID` type - `BlockUID` has been renamed to `BlockID` and `BlockID.block_uid()` to `get_block_id()` -- #139, !149: Rename `Endpoints` attributes from `server` to `host` - - Rename `ConnectionHandler.server` attribute to `address` - -- #150, !130: Introduce DUBP Mnemonic SigningKey feature with `SigningKey.from_dubp_mnemonic()` -- #161, !142: Add DUBP Mnemonic example - - #163, !137: `Revocation.from_signed_raw()` now stores the block ID into a `BlockID` object -- #170, !145: Improve `Endpoints` regular expressions: +#### Network +The asynchronous property has been dropped to improve DuniterPy accessibility to new comers. +Improvements have been made on the endpoints handling. + +- #140, !118: Replace `aiohttp` with non-asynchronous `http` and `ws` libraries: `urllib` and `websocket-client`: + - `async` and `await` keywords are no longer required + - In case you would like to keep your code asynchronous, check `request_data_async.py` example +- #170, !145: Improve `Endpoint`s’ regular expressions: - Add support for internationalized domain name - Fix `ipv4`/`host` attributes mix up - +- #139, !149: Rename `Endpoint`s’ attributes from `server` to `host` + - Rename `ConnectionHandler.server` attribute to `address` - #174, !148: Remove `GVASUBEndpoint` (the subscription is now on `GVAEndpoint` specified with the url path) - - !138: Add `flags` and `path` attributes into `GVAEndpoint.eq()` and `hash()` computations -- #181, !154: `CRCPubkey` class moved from `documents` to `key` module +#### Key handling +- #150, !130: Introduce DUBP Mnemonic SigningKey feature with `SigningKey.from_dubp_mnemonic()` + - #161, !142: Add DUBP Mnemonic example +- #181, !154: `CRCPubkey` class moved from `documents` to `key` package +#### Others +- #160, !134: Include `examples` into the Python package: + - They can be run into Python shell + - Read new examples usage documentation in the [README.md](README.md#Examples) - #155, !131: Document `pip` installation - -### Dependencies - !147: Update `websocket-client` and `attrs` to major releases ### Development Environment `pre-commit` tool has been introduce to run our development tools as pre-commit hooks to check when committing a change. +`isort`, a tool that sorts the imports automatically, has been introduced. +- #162, !136: Introduce `mypy`, `pylint`, `isort`, `gitlab-ci` pre-commit hooks - #132, !135: Introduce [pre-commit](https://pre-commit.com/) for `black` formatter -- #135, !136: Move Pylint config from the `Makefile` to `pyproject.toml` - #153, !129: Allow to install `black` dependency pre-releases -- #162, !136: Introduce `mypy`, `pylint`, `isort`, `gitlab-ci` pre-commit hooks - !151: Add support for `mypy` v0.910 +- #135, !136: Move Pylint config from the `Makefile` to `pyproject.toml` - !132: Add support `pylint` v2.8.0 #### CI/CD -- GitLab