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! ### This release breaks backward compatibility!
From this version, only major releases might break backward compatibility. From this version, only major releases might break backward compatibility.
For 1.x minor versions, only `DeprecationWarning` will occur. For 1.x minor versions, only `DeprecationWarning` will occur.
### Features ### Features
- #140, !118: Replace `aiohttp` with non-asynchronous `http` and `ws` libraries: `urllib` and `websocket-client`: #### Documents refactoring
- `async` and `await` keywords are no longer required Major refactoring have been done on `Document` and its sub-classes.
- In case you would like to keep your code asynchronous, check `request_data_async.py` example 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.
- #160, !134: Include `examples` into the Python package: However, it is now possible to pass a `signing_key` argument to directly instantiate a signed document.
- Read new examples usage documentation in the `README.md` 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: - #95, !144: Remove `signatures` argument from all `__init__()`’s documents subclasses:
- `Document` constructor is `Document(version: int, currency: str)` - `Document` constructor is `Document(version: int, currency: str)`
...@@ -39,37 +43,44 @@ For 1.x minor versions, only `DeprecationWarning` will occur. ...@@ -39,37 +43,44 @@ For 1.x minor versions, only `DeprecationWarning` will occur.
- `block_id` for `BlockID` type - `block_id` for `BlockID` type
- `BlockUID` has been renamed to `BlockID` and `BlockID.block_uid()` to `get_block_id()` - `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 - #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 - Add support for internationalized domain name
- Fix `ipv4`/`host` attributes mix up - 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) - #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 - !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 - #155, !131: Document `pip` installation
### Dependencies
- !147: Update `websocket-client` and `attrs` to major releases - !147: Update `websocket-client` and `attrs` to major releases
### Development Environment ### Development Environment
`pre-commit` tool has been introduce to run our development tools as pre-commit hooks to check when committing a change. `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 - #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 - #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 - !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 - !132: Add support `pylint` v2.8.0
#### CI/CD #### CI/CD
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment