DuniterPy issueshttps://git.duniter.org/clients/python/duniterpy/-/issues2024-01-29T10:42:03+01:00https://git.duniter.org/clients/python/duniterpy/-/issues/210Set up release feature from gitlab-ci2024-01-29T10:42:03+01:00MoulSet up release feature from gitlab-ci- https://docs.gitlab.com/ee/ci/yaml/#release
- https://docs.gitlab.com/ee/user/project/releases/release_cicd_examples.html
```yaml
release_job:
stage: package
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- ...- https://docs.gitlab.com/ee/ci/yaml/#release
- https://docs.gitlab.com/ee/user/project/releases/release_cicd_examples.html
```yaml
release_job:
stage: package
image: registry.gitlab.com/gitlab-org/release-cli:latest
rules:
- if: $CI_COMMIT_TAG
script:
- echo "running release_job"
release:
tag_name: '$CI_COMMIT_TAG'
description: '$CI_COMMIT_TAG'
```
- [ ] Fix current releases
- [ ] Add missing releases
- https://git.duniter.org/clients/python/duniterpy/-/releases1.3.0https://git.duniter.org/clients/python/duniterpy/-/issues/209Bump copyright to 20252023-12-09T13:59:13+01:00MoulBump copyright to 2025- [ ] In the license copyright headers, with `insert-license` hook help, See `CONTRIBUTING.md`
- [ ] Bump `docs/conf.py:copyright` to 2025
- [ ] Open ticket for 2026 and link it to this one- [ ] In the license copyright headers, with `insert-license` hook help, See `CONTRIBUTING.md`
- [ ] Bump `docs/conf.py:copyright` to 2025
- [ ] Open ticket for 2026 and link it to this one1.3.02024-12-10https://git.duniter.org/clients/python/duniterpy/-/issues/208Add support for Python v3.132023-11-20T14:27:29+01:00MoulAdd support for Python v3.13### Python pre-releases
- [ ] Set up v3.13 test job
- [ ] With `allow_failure: true`, to allow tests to fail
### Python stable release
- [ ] Remove `allow_failure: true`, now on the tests should pass
- [ ] Move coverage to v3.13 job
-...### Python pre-releases
- [ ] Set up v3.13 test job
- [ ] With `allow_failure: true`, to allow tests to fail
### Python stable release
- [ ] Remove `allow_failure: true`, now on the tests should pass
- [ ] Move coverage to v3.13 job
- [ ] Set default container used by jobs to v3.13
- [ ] Handle deprecation warning and breaking features
### Post
- [ ] Open follow-up v3.14 tickets
### References
- Expected to be release the [October 1st 2024](https://peps.python.org/pep-0719/).
- docker/python3/poetry#10+1.3.02024-10-01https://git.duniter.org/clients/python/duniterpy/-/issues/207Bump Sphinx to v7 and sphinx-rtd-theme to v22023-10-02T21:16:30+02:00MoulBump Sphinx to v7 and sphinx-rtd-theme to v21.3.0https://git.duniter.org/clients/python/duniterpy/-/issues/199Drop Python v3.8 support2023-05-18T16:05:59+02:00MoulDrop Python v3.8 support### Date when Python project won’t support v3.8
- [Python 3.8 support will be dropped in October 14th of 2024](https://devguide.python.org/versions/) [[1](https://endoflife.date/python)]
- [Platform which still uses Py3.8](https://repolo...### Date when Python project won’t support v3.8
- [Python 3.8 support will be dropped in October 14th of 2024](https://devguide.python.org/versions/) [[1](https://endoflife.date/python)]
- [Platform which still uses Py3.8](https://repology.org/badge/vertical-allrepos/python.svg)
## Todos
### DuniterPy
- [ ] `pyproject.toml`: Bump minimum versions:
- [ ] `tools.poetry.dependency.python`
- [ ] `tools.ruff.target-version`
- [ ] Delete test job for v3.8 from `.gitlab-ci.yml`
- [ ] Update minimal version in documentation: `README.md` and `docs/index.rst`
### Container
- [ ] Delete v3.8 Docker image generation
---
- [ ] Create ticket for Py3.9Backlog2024-10-14https://git.duniter.org/clients/python/duniterpy/-/issues/198Introduce ruff pre-commit hook2023-07-04T20:11:32+02:00MoulIntroduce ruff pre-commit hook- [x] Get rid of `isort`, `pylint`, `pyupgrade` pyproject, pre-commit, gitlab-ci configurations
- [x] Introduce `ruff` pyproject, pre-commit, gitlab-ci configurations
- [ ] `Makefile`: replace `pylint` with `ruff` (to be honest, I don’t ...- [x] Get rid of `isort`, `pylint`, `pyupgrade` pyproject, pre-commit, gitlab-ci configurations
- [x] Introduce `ruff` pyproject, pre-commit, gitlab-ci configurations
- [ ] `Makefile`: replace `pylint` with `ruff` (to be honest, I don’t see the point of make rules for pre-commit hooks).
- [ ] Fix `ruff` reports
- [ ] Use `pathlib`
- [ ] #200+
- [ ] Update hooks used in `CONTRIBUTING.md` § pre-commit1.3.0MoulMoulhttps://git.duniter.org/clients/python/duniterpy/-/issues/195Fix coverage integration into GitLab2023-06-04T13:21:49+02:00MoulFix coverage integration into GitLabThe tests coverage integration into GitLab is no longer working since [it support changed from GitLab v15.0](https://docs.gitlab.com/ee/ci/pipelines/settings.html#merge-request-test-coverage-results).
The regex is no longer configured i...The tests coverage integration into GitLab is no longer working since [it support changed from GitLab v15.0](https://docs.gitlab.com/ee/ci/pipelines/settings.html#merge-request-test-coverage-results).
The regex is no longer configured into the project settings but in `.gitlab-ci.yml`
### Acceptance criteria
- [x] Fix coverage percentage integration into GitLab using this [regex](https://forum.gitlab.com/t/python-coverage-always-unknown/47819/3)
- [x] [Integrate coverage report into GitLab](https://docs.gitlab.com/ee/ci/testing/test_coverage_visualization.html#python-example)1.3.0https://git.duniter.org/clients/python/duniterpy/-/issues/189Add support for Substrate/RPC/Subsquid/Extrinsics/GraphQL Hasura indexer2022-07-07T10:04:58+02:00MoulAdd support for Substrate/RPC/Subsquid/Extrinsics/GraphQL Hasura indexerAdd support Duniter v2 based on Substrate blockchain framework.
Client Interface: RPC, GraphQL Hasura indexer?
- [ ] Support new documents/extrinsics
- Use [`py-substrate-interface`](https://github.com/polkascan/py-substrate-interface) ...Add support Duniter v2 based on Substrate blockchain framework.
Client Interface: RPC, GraphQL Hasura indexer?
- [ ] Support new documents/extrinsics
- Use [`py-substrate-interface`](https://github.com/polkascan/py-substrate-interface) Python Substrate library2.0.0https://git.duniter.org/clients/python/duniterpy/-/issues/185Standardize ES, CS+ naming2022-07-07T10:44:00+02:00MoulStandardize ES, CS+ namingRename `ES_*` endpoint to `CSP_*` or `CESIUM_PLUS_*`.
- `examples/request_data_elasticsearch.py`
May be rejected since we are not sure of CS+ future.Rename `ES_*` endpoint to `CSP_*` or `CESIUM_PLUS_*`.
- `examples/request_data_elasticsearch.py`
May be rejected since we are not sure of CS+ future.Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/184Autodoc: support for dev doc and stable/release doc2021-07-21T16:32:52+02:00MoulAutodoc: support for dev doc and stable/release doc- [ ] Move the documentation publication stage before the release stage, the release job are blocking the doc generation. Most likely !158 is enough.
- [ ] On the `main` branch, without tag, allow to trigger the doc job at every commit o...- [ ] Move the documentation publication stage before the release stage, the release job are blocking the doc generation. Most likely !158 is enough.
- [ ] On the `main` branch, without tag, allow to trigger the doc job at every commit on `main` or `dev` path, for the job to not get rusted
- [ ] On the `main` branch, with a tag, publish to the `$version` path
This is the case with https://click.palletsprojects.comBackloghttps://git.duniter.org/clients/python/duniterpy/-/issues/183Introduce -dev suffix on development versions2021-08-13T10:09:20+02:00MoulIntroduce -dev suffix on development versions`1.1.0dev`
To be introduce at the beginning of the development cycle.`1.1.0dev`
To be introduce at the beginning of the development cycle.Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/180Remove problematic base58 module2023-07-08T15:26:03+02:00Vincent TexierRemove problematic base58 moduleA french user reported this:
Avec la dernière version de duniterpy (0.62.0), same avec python 3.8 et 3.9:
`AttributeError: module 'duniterpy.key.base58' has no attribute 'b58decode'`
Résolu par:
```python
pubkey_byte = base58.Base58E...A french user reported this:
Avec la dernière version de duniterpy (0.62.0), same avec python 3.8 et 3.9:
`AttributeError: module 'duniterpy.key.base58' has no attribute 'b58decode'`
Résolu par:
```python
pubkey_byte = base58.Base58Encoder.decode(str.encode(pubkey))
hash = hashlib.sha256(hashlib.sha256(pubkey_byte).digest()).digest()
return base58.Base58Encoder.encode(hash)[:3]
```
DuniterPy’s `base58` module only checks data types. So, not really useful and overrides [`base58`](https://pypi.org/project/base58/) module. Should be removed to use `base58` module instead.1.3.0https://git.duniter.org/clients/python/duniterpy/-/issues/176Add support for GVA subscription2021-07-21T15:57:24+02:00MoulAdd support for GVA subscriptionIn ["Prototype de GVA" forum thread](https://forum.duniter.org/t/prototype-de-gva/7688/150), the subscriptions are now served on `GVA` endpoint type with an additional `/subscription` path to the specified path `/$gva_path` in the `GVA` ...In ["Prototype de GVA" forum thread](https://forum.duniter.org/t/prototype-de-gva/7688/150), the subscriptions are now served on `GVA` endpoint type with an additional `/subscription` path to the specified path `/$gva_path` in the `GVA` endpoint.
- [ ] Introduce helper(s)
- [ ] Introduce example
- [ ] Add support for `/$gva_path/subscription` path. `$gva_path is found in `GVAEndpoint`Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/171Improve logging2023-07-08T15:26:22+02:00Vincent TexierImprove loggingA good habit when publishing a library in Python is to allow users to select the log level.
We can use a global logger with the name `duniterpy`:
`logger = logging.getLogger("duniterpy")`
To allow a more fine logging configuration, li...A good habit when publishing a library in Python is to allow users to select the log level.
We can use a global logger with the name `duniterpy`:
`logger = logging.getLogger("duniterpy")`
To allow a more fine logging configuration, library modules can log on the module logger.
To get the module logger, you have to do this:
`logger = logging.getLogger(__name__)`
Then use the `logger` instance to log everything:
`logger.error("Syntax error")`Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/167Deploy and serve coverage report web page via GitLab Pages2023-07-07T20:32:36+02:00MoulDeploy and serve coverage report web page via GitLab PagesCurrently, GitLab Pages is used to serve the auto generated Sphinx documentation.
We should find and decide for a solution to distribute the documentation and the test coverage report in parallel.
Something like:
- https://clients.page...Currently, GitLab Pages is used to serve the auto generated Sphinx documentation.
We should find and decide for a solution to distribute the documentation and the test coverage report in parallel.
Something like:
- https://clients.pages.duniter.org/python/duniterpy/doc/index.html
- https://clients.pages.duniter.org/python/duniterpy/test/index.html
Or, even better:
- https://py.duniter.org or https://duniterpy.duniter.org
- https://clients.pages.duniter.org/python/duniterpy/index.html1.3.0https://git.duniter.org/clients/python/duniterpy/-/issues/164Introduce transaction’s comments de/encryption helper2022-07-07T10:08:42+02:00Vincent TexierIntroduce transaction’s comments de/encryption helperAdd official encryption/decryption for transaction comment in helpers
See RFC 0017 https://git.duniter.org/documents/rfcs/blob/tx_comment_encrypt/rfc/0017_transaction_comment_encryption.mdAdd official encryption/decryption for transaction comment in helpers
See RFC 0017 https://git.duniter.org/documents/rfcs/blob/tx_comment_encrypt/rfc/0017_transaction_comment_encryption.mdBackloghttps://git.duniter.org/clients/python/duniterpy/-/issues/159Integrate Ğ1 monetary license2021-05-11T15:18:34+02:00MoulIntegrate Ğ1 monetary license### Integration to benefits all Python programs
- [ ] Integrate Ğ1 monetary license as a `git subtree`:
- [ ] squash?
- [x] Integrate `g1_monetary_license` folder into the Python package:
- [x] Add `g1_monetary_license` folder to th...### Integration to benefits all Python programs
- [ ] Integrate Ğ1 monetary license as a `git subtree`:
- [ ] squash?
- [x] Integrate `g1_monetary_license` folder into the Python package:
- [x] Add `g1_monetary_license` folder to the `pyproject.toml`
- [x] Add `__init__.py` in `g1_monetary_license` folder (will be in the git history of `duniterpy` repository, shouldn't be an issue to pull `g1_monetary_license` changes)
- [x] Add helper to get the path of the licenses
- [ ] Write documentation in `CONTRIBUTING.md` on how to proceed:
- [ ] Create link from the `README.md`
- [ ] Warn to not modify the monetary license here but on its repository
- [ ] Procedure on how to pull changes from `g1_monetary_license` repository (`remote`, `subtree`)Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/158Change tests to pytest pythonic format2023-05-26T21:09:50+02:00MoulChange tests to pytest pythonic formatWith `pytest` usage we can make the tests more pythonic:
- [x] Use the `assert` keyword: done automatically in #198+
- [ ] Move test functions out of classes/remove classes
- [ ] Remove `tests/documents/test_block.py:1979` `__main__` usageWith `pytest` usage we can make the tests more pythonic:
- [x] Use the `assert` keyword: done automatically in #198+
- [ ] Move test functions out of classes/remove classes
- [ ] Remove `tests/documents/test_block.py:1979` `__main__` usageBackloghttps://git.duniter.org/clients/python/duniterpy/-/issues/154Missing /network/ws2p/info BMA path2021-04-26T19:10:58+02:00MoulMissing /network/ws2p/info BMA path[Found here](https://forum.duniter.org/t/manque-de-places-ws2p-sur-le-reseau-g1/4372/35)
For completion purpose. Not really interesting information for a client here. And BMA is planned to be deprecated.
- [ ] Add `/network/ws2p/info`
...[Found here](https://forum.duniter.org/t/manque-de-places-ws2p-sur-le-reseau-g1/4372/35)
For completion purpose. Not really interesting information for a client here. And BMA is planned to be deprecated.
- [ ] Add `/network/ws2p/info`
- [ ] [Should be documented](https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/doc/HTTP_API.md)Backloghttps://git.duniter.org/clients/python/duniterpy/-/issues/151Add DEWIF file format support for wallets2023-07-08T15:26:36+02:00Vincent TexierAdd DEWIF file format support for walletsAdd a `save_dewif_v1_file` and `from_dewif_file` functions to `SigningKey` class.
Follow the [RFC0013](https://git.duniter.org/documents/rfcs/-/blob/dewif/rfc/0013_Duniter_Encrypted_Wallet_Import_Format.md) of the Duniter Project.Add a `save_dewif_v1_file` and `from_dewif_file` functions to `SigningKey` class.
Follow the [RFC0013](https://git.duniter.org/documents/rfcs/-/blob/dewif/rfc/0013_Duniter_Encrypted_Wallet_Import_Format.md) of the Duniter Project.Backlog