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