Merge DeathReaper '256_excluded' branch on 'main' branch
### Image
- [x] `image/pip` switch to `bookworm` or remove Debian version specification to get latest, risky?
- [x] Adapt `image/{pip,poetry}` to install extra `pydiscourse`:
- `pip install . silkaj[deathreaper]`
- `poetry install --extras "deathreaper"`
### Packaging extra solution
- [x] Use Poetry [`extra`](https://python-poetry.org/docs/pyproject/#extras) or dependency grouping (from Poetry v1.2) to separate `pydiscourse` not available in Debian.
```toml
pydiscourse = { version = "^1.3.0", optional = true }
[tool.poetry.extras]
deathreaper = ["pydiscourse"]
```
- [x] When `pydiscourse` is not importable, do not add `excluded` command to the list:
```py
# cli.py
import contextlib
with contextlib.suppress(ModuleNotFoundError):
from silkaj.blockchain.wot import excluded_command
wot_group.add_command(excluded_command)
```
### Implementation sources
- [x] Rebase `256_excluded` branch on `main` branch
- [x] fix hooks, pytest new reports
- [x] Move `blockchain excluded` command `wot exclusions` CLI command group and directories.
- It’s a `blockchain` event, but it’s more `wot` related and better placed there. Since the command will be publicly available now via PyPI installation. Wasn’t planned in #330 nor in #430, but rebased and not thought through.
- `blockchain excluded` was taken from BMA path `blockchain/excluded`.
- [x] Say in help command that’s it’s DeathReaper
### Documentation
- [x] Document how to install Deathreaper: `pipx install silkaj[deathreaper]`. Dedicated `doc/deathreaper.md` file: install, usage
- [x] Add a line in readme about this feature
### Operation
#### DeathReaper repo
- [x] Use image from `main` channel/branch
- [x] Use `wot exclusions`
- Have to use `poetry` image since we need `git` to clone DuniterPy used from repo `main` branch
- Switch back to `pip` image usage once DuniterPy is used from PyPI release: #483+
#### Silkaj repo
- [x] Create MR to `main` branch: delete `256_excluded` branch
- [x] Create image on `main` channel/branch
- [x] Test things still works fine
### After
- [ ] Delete `256_excluded` images
Benefit: no need to maintain an other branch with new features coming from `main` branch when rebasing, such as pre-commit hooks checks.
---
Priority to be considered regarding Substrate migration.
With Substrate, a better system could be setup. An web based email registration system, which would be listening to the blockchain/RPC or the Indexer and then send email. This would be a more efficient system, since now G1 members do not have forums accounts.
issue