Skip to content
Snippets Groups Projects
Commit 2fe1c365 authored by Moul's avatar Moul
Browse files

[doc] Improve v1.0.0rc0 changelog (2/2)

Add a tl;dr
Add summaries to paragraphs
Sort bullets points items into paragraphs
parent 5bce6ba4
No related branches found
No related tags found
2 merge requests!157v1.0.0rc0: merge dev into master,!156Release v1.0.0rc0
## [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
- #160, !134: Include `examples` into the Python package:
- Read new examples usage documentation in the `README.md`
#### 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.
- #95, !144: Remove `signatures` argument from all `__init__()`’s documents subclasses:
- `Document` constructor is `Document(version: int, currency: str)`
......@@ -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
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment