silkaj issueshttps://git.duniter.org/clients/python/silkaj/-/issues2020-02-11T18:31:41+01:00https://git.duniter.org/clients/python/silkaj/-/issues/287Use Black from Poetry2020-02-11T18:31:41+01:00MoulUse Black from PoetryThere is a difference between [Black version 18.9b0](https://packages.debian.org/search?suite=default&section=all&arch=any&searchon=names&keywords=black) emended into the docker container Debian Buster from the Debian package.
Using blac...There is a difference between [Black version 18.9b0](https://packages.debian.org/search?suite=default§ion=all&arch=any&searchon=names&keywords=black) emended into the docker container Debian Buster from the Debian package.
Using black from PyPi within Poetry environment shouldn’t rise such issues. In this case we would get 19.3b0 version.
This shortcut was set-up to speed-up the format job from 1min30 to 45s, to avoid installing runtime and dev dependencies.
- [ ] CI: Install dependencies, use black from Poetry environment
- [ ] Docker:3.8: Remove `black`0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/286Black version issue in Format job2020-02-13T11:10:16+01:00matograineBlack version issue in Format jobTo be confirmed : The version of Black used for pipelines (v18.9b0) seems to be incompatible with the one used in dev (v19.3b0).
If confirmed, the pipeline should use the `dev` version of black, installed with Poetry, not the one availa...To be confirmed : The version of Black used for pipelines (v18.9b0) seems to be incompatible with the one used in dev (v19.3b0).
If confirmed, the pipeline should use the `dev` version of black, installed with Poetry, not the one available in the Debian repos.0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/284Build and tests jobs are not retriggered in case of source code change2020-02-10T20:46:15+01:00MoulBuild and tests jobs are not retriggered in case of source code changeEncountered with !123.
Build and tests jobs are not triggered when a push-force, changing the source code, happen. Only the `format` job is retriggered.
This is due to the fact that the extension (`extends`:) is not inheriting but eras...Encountered with !123.
Build and tests jobs are not triggered when a push-force, changing the source code, happen. Only the `format` job is retriggered.
This is due to the fact that the extension (`extends`:) is not inheriting but erasing the `only:changes` part:
```yml
.code_changes:
only:
changes:
- silkaj/*.py
- tests/*.py
.changes:
extends: .code_changes
only:
changes:
- .gitlab-ci.yml
- pyproject.toml
- poetry.lock
```0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/249Install Poetry stable when v1 is released2020-07-02T17:44:04+02:00MoulInstall Poetry stable when v1 is releasedFollowing #149 and #245, switch back to Poetry stable:
- [x] in [Docker images](https://git.duniter.org/docker/python3/poetry/blob/master/3.5/Dockerfile#L9): https://git.duniter.org/docker/python3/poetry/commit/ac8190c6bd91243fa2c2336cdf...Following #149 and #245, switch back to Poetry stable:
- [x] in [Docker images](https://git.duniter.org/docker/python3/poetry/blob/master/3.5/Dockerfile#L9): https://git.duniter.org/docker/python3/poetry/commit/ac8190c6bd91243fa2c2336cdf28a7d1761c63bb
- [x] in [Poetry installation documentation](https://git.duniter.org/clients/python/silkaj/blob/dev/doc/install_poetry.md#install-poetry)0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/245Build own Docker containers images with Poetry installed2019-12-08T17:45:24+01:00MoulBuild own Docker containers images with Poetry installedIn order to set-up the CI/CD #149, Docker containers with Poetry installed should be created.
Having the maintenance over these images gives the control over futures behaviours.
## ~~Run directly without Poetry~~
Run directly on the D...In order to set-up the CI/CD #149, Docker containers with Poetry installed should be created.
Having the maintenance over these images gives the control over futures behaviours.
## ~~Run directly without Poetry~~
Run directly on the Docker image With Python.
Poetry is somehow using Python installed on the system.
`virtualenvs.create false`
## ~~Pre-built images~~
- https://pythonspeed.com/articles/base-image-python-docker-images/
- https://hub.docker.com/r/nikaro/poetry
- https://hub.docker.com/r/michalmazurek/python-poetry
## Own-built images
- Based on official Python images: [Docker hub](https://hub.docker.com/_/python?tab=description),
[git repository](https://github.com/docker-library/python)
- [x] Install `poetry`, and `libsodium`
- [x] Publish git repository here https://git.duniter.org/docker/python3/poetry
- [x] Python images with Slim Debian is enough
- [x] Buster + [Python version 3.5, 3.6, 3.7, and 3.8](https://hub.docker.com/_/python?tab=description)
- [x] Publish built images on `https://registry.duniter.org/docker/python3/poetry/$PYTHON_VERSION:{tag,latest}`
- https://about.gitlab.com/2016/05/23/gitlab-container-registry/
- https://docs.gitlab.com/ee/user/project/container_registry.html
- [ ] `change: - only $PYTHON_VERSION/Dockerfile`: not working
- [ ] Installing `pip install poetry --pre` fails on v3.8:
- installing `gcc` and `libffi-dev` by-passes the issue
- [ ] Redshift Runner fails building containers due to already existing docker image to build certain containers
- https://stackoverflow.com/questions/44257172/gitlab-ci-cannot-link-to-a-non-running-container
## Later
- [ ] Windows?
- [ ] Could be used by DuniterPy if it uses Poetry0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/149Set up CI/CD2020-06-01T11:56:18+02:00MoulSet up CI/CD> https://git.duniter.org/clients/python/silkaj/merge_requests/83#note_12445
- [`.gitlab-ci.yml` documentation](https://docs.gitlab.com/ee/ci/yaml/)
- [Blog article about new CI/CD features brought into GitLab v11 cycle](https://about.g...> https://git.duniter.org/clients/python/silkaj/merge_requests/83#note_12445
- [`.gitlab-ci.yml` documentation](https://docs.gitlab.com/ee/ci/yaml/)
- [Blog article about new CI/CD features brought into GitLab v11 cycle](https://about.gitlab.com/2019/06/19/look-back-on-11-11-cicd/)
## Build own Docker containers images with Poetry installed
- #245
## Pipeline schema
### Checks
- [x] Format check: Black `black --check`
### Install + Build
- [x] Install 3.{5,6,7,8}: `poetry instal`
- [x] Build 3.7: `poetry build`
#### Tests
- [x] #241: `test_end_to_end.py`: not able to run CLI tests as `silkaj` is not accessible from the shell in the Docker image. Using Click test utility would be a solution, but it is broken. Use `poetry run silkaj sub-cmd` for now.
##### Linux tests for all supported Python versions
- [x] Multiple Python versions: 3.5, 3.6, 3.7, 3.8
- [x] Handle v3.5 which fails because of Black hack: Use `3.8` image with `black` installed, uninstall `black` from Poetry dev env.
- [x] [v3.8: Poetry installation via `pip`](https://github.com/sdispater/poetry/issues/613)
- [x] v3.8: `libffi-dev` and `gcc` missing for `cffi` dependency
##### Coverage
- [x] Generation of the coverage website and badge are done in the main Python version image 3.7 and shared to other jobs through artifact
- [x] [Publish code coverage report with GitLab Pages](https://about.gitlab.com/2016/11/03/publish-code-coverage-report-with-gitlab-pages/)
- [x] Links does not redirect to working pages: missing `index.html`
- [x] Page installation job move at the end of the pipeline to speed-up more import jobs as mandatory
- [x] #146: Set [coverage badge](https://github.com/dbrgn/coverage-badge)
### Publication
- [x] #105: Pypi distribution `poetry publish`:
- [ ] [Try with new PyPi tokens API](https://github.com/sdispater/poetry/pull/1275)
- [x] Pass secret variable not passed: the variable should match the criteria to be saved
- [x] Allow to pass the username of the account
- [x] PyPi Test
- [x] Create new account with password matching the criteria
- [x] [`git` Warning](https://github.com/sdispater/poetry/issues/614): Remove `.git`, install `git`?
- [x] PyPi Stable:
- [x] Only on `tag`
- ~~[Make the tag matches the semver regex](https://stackoverflow.com/questions/44834119/gitlab-only-build-for-specific-tag-names)~~
- [x] Check who has access to make actions on this pipeline: only developers + maintainers
## Todo/Issues
- [x] [`poetry shell` does not activate the `virtualenv`](https://github.com/sdispater/poetry/issues/571): `poetry run black`
- [x] Use [extends](https://docs.gitlab.com/ee/ci/yaml/#extends) instead of YAML anchors
- [x] Docker images: install Poetry via `pip`. Could remove `curl` install. Problematic, if Poetry version changes. Install fixed version.
- [x] Use Poetry pre-release: `pip install poetry --pre`?
- [x] Get rid of `doc/install_docker.md` which is no longer needed.
## Speed-up pipeline
- [x] Run `Format`, `Build`, etc into `Checks` stage. Will it speed up the whole pipeline. Or, will the runners be overloaded? It doesn’t seems so.
- Linear pipeline takes around 5-6 minutes.
- Dropped to 4 minutes with PyPi test publication and all checks into Checks stage.
- 2.5 minutes without PyPi publications
- With four tests jobs for multiple Python version takes longer. As it seems only three jobs can be triggered all together. Python v3.8 job starts after one of the other are done. This slow down the pipeline to 4 minutes. Looks normal to what we add with previous state: checks and tests stages separated.
- [x] Install manually just needed dependency with `add`/`install`: `black`
- [7 ways to speed up your GitLab CI/CD times](https://blog.sparksuite.com/7-ways-to-speed-up-gitlab-ci-cd-times-29f60aab69f9?gi=25ff201a0f4a)
- [How To Speed Up Your GitLab CI Pipeline](https://insight.full360.com/how-to-speed-up-your-gitlab-ci-pipeline-7af593eb0f4c?gi=9924e0739049)
- [Make your CI pipeline fast and awesome with Gitlab Container Registry](https://blog.daftcode.pl/make-your-ci-pipeline-fast-and-awesome-with-gitlab-container-registry-41ef244d1ce6?gi=8e24dae63eff)
### Caching
- Caching virtualenv between installation/build and tests images
- Caching of build (wheel, tarball) between build-3.7, and tests-3.7 jobs
- This speed-up the process, not to loose time re-installing, building.
- [Cache](https://docs.gitlab.com/ee/ci/yaml/#cache) data among jobs within the pipeline:
- installed dependencies (including development ones)
- targets (wheel and archive)
- [x] `silkaj` accessible: `poetry run bin/silkaj`
#### Cache working only within the same Python version
- [x] Install virtualenv into `silkaj` repository in order to cache it. [Caching outside repository seems impossible](https://gitlab.com/gitlab-org/gitlab-ce/issues/4431)
- [x] virtualenv installed for a Python version is not compatible with other Python version:
- Cache could be used for the main Python version images (3.7 today): build, test-3.7, PyPi releases.
- cached virtualenv only working with the Python version it have been created. Because of the [shared objects](https://git.duniter.org/clients/python/silkaj/-/jobs/26994).
- v3.7 could be kept for `build`, `test-3.7`, and `publish` jobs.
- Other `test-3.{5,6,8}` jobs will have to install dependencies (including dev) for the test jobs.
#### Parallel jobs have issue sharing the same cache
- [CI pipeline with parallel jobs sharing the same cache can result in an incomplete cache](https://gitlab.com/gitlab-org/gitlab-ce/issues/43980)
- [Cache not always restored on concurrent > 1 and docker executor](https://gitlab.com/gitlab-org/gitlab-runner/issues/1151)
#### Pytest access
- [ ] Installed `pytest` not accessible:
- cache not shared among jobs
- Related to two upper issues, should be solved.
#### Poetry updates
- 1.0.0aX:
New `maintainer` field in `pyproject.toml`.
- 1.0.0b1:
- [New settings management](https://github.com/sdispater/poetry/pull/1272): local setting in `pyproject.toml` env variable: `POETRY_*`
- `settings.virtualenvs.in-project` -> prefix commands with `POETRY_VIRTUALENVS_IN_ROJECT`
- 1.0.0b2:
- [Create configuration folder `mkdir -p /root/.config/pypoetry/` and file could be removed](https://github.com/sdispater/poetry/issues/1179)
#### Other
- Try not to create virtualenv for Python v3.{5,6,8} to speed-up
- Do not create virtualenv: [bug](https://github.com/sdispater/poetry/issues/1265), [installation with `--user`](https://github.com/sdispater/poetry/issues/1214)can we cache installed dependencies?
## Later
- Checks:
- [ ] #163: Type check
- [ ] #292: Pylint
- [ ] #318: [Safety](https://github.com/pyupio/safety): [Needs to be fixed](https://github.com/pyupio/safety/issues/201)
Test:
- [ ] Windows, Python v3.7 as suggested version from Python website, which Windows build? `3.7-windowsservercore-1809`?
- macOS ([not](https://stackoverflow.com/questions/40824547/docker-image-running-a-mac-os-x-installation) [possible](https://serverfault.com/questions/607443/can-mac-os-x-be-run-inside-docker))0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/146Add a coverage badge2021-02-21T18:11:48+01:00Sébastien DA ROCHAAdd a coverage badgeNow that the test structure is (nearly) in place, we can test the coverage rate (which is quite bad at the moment) and add a badge on the README page.
I see 3 options:
* generate the badge and store it somewhere. I've tried to do this ...Now that the test structure is (nearly) in place, we can test the coverage rate (which is quite bad at the moment) and add a badge on the README page.
I see 3 options:
* generate the badge and store it somewhere. I've tried to do this and store it on the git repo, the code is in coverage_badges branch of my fork. The problem is that I can't load the image trough gitlab (Content-type is always text for security issues), so the image needs to be copied elsewhere (where ?).
* use a service like coveralls/shields.io, but it relies on a external service (possibly closed source)
* use the badge generation from gitlab, but we haven't setup the CI yet :thinking:
I'd rather follow the last option, @Moul what do you think?0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/105Deploy on PyPI from GitLab CD2020-06-24T15:36:19+02:00MoulDeploy on PyPI from GitLab CD> Cf: https://git.duniter.org/clients/python/silkaj/merge_requests/80#note_11085
- [Using Gitlab pipelines to deploy Python packages in production and staging environments](https://medium.com/@pypripackages/using-gitlab-pipelines-to-dep...> Cf: https://git.duniter.org/clients/python/silkaj/merge_requests/80#note_11085
- [Using Gitlab pipelines to deploy Python packages in production and staging environments](https://medium.com/@pypripackages/using-gitlab-pipelines-to-deploy-python-packages-in-production-and-staging-environments-8ab7dc979274)
> Linked to #149.0.8.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/313Be compatible with and handle new features from Poetry v1.12020-10-25T09:38:51+01:00MoulBe compatible with and handle new features from Poetry v1.1### [v1.1.0](https://python-poetry.org/blog/announcing-poetry-1-1-0.html)
- [x] Define minimal Poetry version and update Poetry backend definition
- [x] Update `poetry.lock` changed format, and is no longer compatible with Poetry v1.0
#...### [v1.1.0](https://python-poetry.org/blog/announcing-poetry-1-1-0.html)
- [x] Define minimal Poetry version and update Poetry backend definition
- [x] Update `poetry.lock` changed format, and is no longer compatible with Poetry v1.0
## Later
- [ ] Use `poetry publish --dry-run` in the release jobs instead of PyPI test?0.9.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/294Add support and set-up Python 3.9 test job2021-03-22T17:40:09+01:00MoulAdd support and set-up Python 3.9 test jobPython 3.9 have been released as stable on [October 5th 2020](https://www.python.org/dev/peps/pep-0596/)
## Tasks
- [x] Create v3.9 container: docker/python3/poetry!1
- [x] Fix C(++) dependencies which do not provides wheels
- [x] [`a...Python 3.9 have been released as stable on [October 5th 2020](https://www.python.org/dev/peps/pep-0596/)
## Tasks
- [x] Create v3.9 container: docker/python3/poetry!1
- [x] Fix C(++) dependencies which do not provides wheels
- [x] [`aiohttp` v3.7.x](https://github.com/aio-libs/aiohttp/blob/master/CHANGES.rst#371-2020-10-25) allows to use `multidict` 5.0.0 which has pre-built wheels for Py3.9, [not the previous version](https://pypi.org/project/multidict/4.7.6/). But, [`multidict` v5.0 also drops Py 3.5 support](https://github.com/aio-libs/multidict/blob/master/CHANGES.rst#500-2020-10-12). This has to be dropped from Silkaj too.
- [x] `cffi` used from `pynacl`
- [x] #176: Get rid of `pynacl`: `pynacl` is using an old version of `cffi` which is not built for py3.9. getting rid of pynacl from silkaj could allow us to remove `libffi-dev`. duniterpy#83 is planning to use pynacl.
- [x] `typed-ast`, a dependency of `black` is not pre-built for Py3.9. [Now provided](https://github.com/python/typed_ast/issues/146).
- [x] Set-up `tests-3.9` job0.9.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/288Set default Python version to 3.8 for the Docker image2021-03-22T17:14:10+01:00MoulSet default Python version to 3.8 for the Docker image- [ ] Set default version
- [ ] Move the coverage generation to v3.8 test.- [ ] Set default version
- [ ] Move the coverage generation to v3.8 test.0.9.0https://git.duniter.org/clients/python/silkaj/-/issues/406Set up pre-commit hooks CI jobs2022-03-28T19:36:02+02:00MoulSet up pre-commit hooks CI jobsWould allow to run the same versions of the development tools in different environments: dev env, CI.
It would avoid the issue of having the dev tools updated when updating the images and not of same version as the ones from `pre-commit`...Would allow to run the same versions of the development tools in different environments: dev env, CI.
It would avoid the issue of having the dev tools updated when updating the images and not of same version as the ones from `pre-commit`. They would all be updated for all environments when updating `.pre-commit-config.yaml`.
https://pre-commit.com/#usage-in-continuous-integration
### CI
- [x] Set up cache for pre-commit to speed-up jobs
- [x] Run jobs with pre-commit
### Image generation
- [x] Install `pre-commit` and `git` (required by `pre-commit`) in `3.9` image
- [x] Uninstall no longer necessary dev tools from `3.8` image, once the migration has been completed0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/403Introduce pyupgrade2021-08-06T19:19:50+02:00MoulIntroduce pyupgrade- https://github.com/asottile/pyupgrade
### Todos
- [x] Introduce `pyupgrade` hook:
- [x] Issue with `await` in `f-string`:
- With Py3.6 checks as minimum: Not possible, [requires Py3.7](https://stackoverflow.com/a/43120967).
- http...- https://github.com/asottile/pyupgrade
### Todos
- [x] Introduce `pyupgrade` hook:
- [x] Issue with `await` in `f-string`:
- With Py3.6 checks as minimum: Not possible, [requires Py3.7](https://stackoverflow.com/a/43120967).
- https://github.com/asottile/pyupgrade/issues/481
- Run with `--py36-plus`, remove `await` in `f-string` changes, run hook with `--py3-plus`.
- Fixed with pyupgrade v2.20.1, v2.21.0
- [x] Apply `pyupgrade` to Python files in `silkaj` and `tests` folders
- [x] Add `pyupgrade` job based on `pre-commit`0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/401Introduce isort and gitlab-ci-linter pre-commit hooks2021-05-18T20:50:56+02:00MoulIntroduce isort and gitlab-ci-linter pre-commit hooks### Isort
Import sorting
- https://pycqa.github.io/isort/
- https://github.com/pycqa/isort
### Todos
- [x] Add `isort` as dev dependency
- [x] Sort imports in `silkaj` and `tests` folders
- [x] Add `pre-commit` hook
- [x] Add `isort` jo...### Isort
Import sorting
- https://pycqa.github.io/isort/
- https://github.com/pycqa/isort
### Todos
- [x] Add `isort` as dev dependency
- [x] Sort imports in `silkaj` and `tests` folders
- [x] Add `pre-commit` hook
- [x] Add `isort` job:
- [x] Install `isort` on Py3.8 image
##### `gitlab-ci`
- https://gitlab.com/devopshq/gitlab-ci-linter
- https://gitlab.com/smop/pre-commit-hooks0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/388Set up Silkaj Docker images build automation2022-03-28T19:38:05+02:00MoulSet up Silkaj Docker images build automationSet up jobs which automate the images generations with latest Python and Silkaj in.
### Jobs
Would happen in the `package` stage. `publish` stage would be renamed to `package` with other PyPI jobs.
Jobs generation on tag, branch, and.
...Set up jobs which automate the images generations with latest Python and Silkaj in.
### Jobs
Would happen in the `package` stage. `publish` stage would be renamed to `package` with other PyPI jobs.
Jobs generation on tag, branch, and.
- [Inspiration from Duniter repository](https://git.duniter.org/nodes/typescript/duniter/-/blob/591f334185151a200a7dbb06b32ff434a19b0885/.gitlab-ci.yml#L187-244)
- [Duniter’s `Dockerfile`](https://git.duniter.org/nodes/typescript/duniter/-/blob/dev/release/docker/Dockerfile)
### Image generation
Create `Dockerfile` which finds the the latest Python image from [here](https://git.duniter.org/docker/python3/poetry/), install Silkaj, and make `silkaj` available to Docker CLI via an alias to `poetry run silkaj`.
- `pip`: for consumers
- `poetry`: for developers
### Write documentation
- [x] How to use the images with `docker`/`podman`.
- [x] How to develop into the `poetry` image.0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/374Add support for Python v3.102022-09-07T21:42:06+02:00MoulAdd support for Python v3.10To be release in October 2021.
This release might be the first one coming with important breaking changes, deprecation warning since Python v2 is far away, and features were kept to ease the transition.
- [x] docker/python3/poetry#2: Bu...To be release in October 2021.
This release might be the first one coming with important breaking changes, deprecation warning since Python v2 is far away, and features were kept to ease the transition.
- [x] docker/python3/poetry#2: Build container
- [x] Set up test job
- [x] Handle deprecation warning and breaking features0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/371Add a job to check the license statement header is present in every python file2021-07-29T21:47:26+02:00MoulAdd a job to check the license statement header is present in every python fileTo be done after #364.
Not sure yet how to check it. By checking there is 13 `#` comment characters between line 0 to 13?To be done after #364.
Not sure yet how to check it. By checking there is 13 `#` comment characters between line 0 to 13?0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/355Set Py3.8 as default image and move coverage to Py3.92021-06-07T18:53:18+02:00MoulSet Py3.8 as default image and move coverage to Py3.9- [x] Set Py 3.8 as default image since tools are installed on
- [x] Move the coverage and the badge generations to v3.9 test job.- [x] Set Py 3.8 as default image since tools are installed on
- [x] Move the coverage and the badge generations to v3.9 test job.0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/326Integrate coverage in GitLab coverage feature2022-09-25T18:31:04+02:00MoulIntegrate coverage in GitLab coverage feature### Todo
- [x] The [coverage can reports to the terminal and as htmls altogether](https://pytest-cov.readthedocs.io/en/latest/reporting.html):
```
poetry run pytest --cov silkaj --cov-report html:cov_html --cov-report term
```
- Switch ...### Todo
- [x] The [coverage can reports to the terminal and as htmls altogether](https://pytest-cov.readthedocs.io/en/latest/reporting.html):
```
poetry run pytest --cov silkaj --cov-report html:cov_html --cov-report term
```
- Switch from `pytest-cov` to [`coverage`](https://coverage.readthedocs.io/) dependency?:
```bash
poetry run coverage run -m pytest --cov silkaj --cov-report html:cov_html --cov-report term
```
- [x] Then, [specify `coverage` regex](https://forum.gitlab.com/t/python-coverage-always-unknown/47819/3) in [the configuration](https://git.duniter.org/clients/python/silkaj/-/settings/ci_cd#js-general-pipeline-settings) to find it in the logs of the job, to generate the badge and a [chart of the coverage evolution, which is available from GitLab v13.1](https://about.gitlab.com/releases/2020/06/22/gitlab-13-1-released/#graph-code-coverage-changes-over-time-for-a-project).
- [x] Remove now useless `coverage-badge` dependency introduced in #146.
- [x] Update badge in the readme and the repository configuration0.10.0MoulMoulhttps://git.duniter.org/clients/python/silkaj/-/issues/484Support Python v3.12 on v0.11 release2023-11-22T21:42:34+01:00MoulSupport Python v3.12 on v0.11 releaseUntil Silkaj v0.12 release gets released, Silkaj v0.11 has to support Py v3.12 which is already out with Fedora 39.
`pendulum` v2.1.2 doesn’t support Py3.12. `pendulum` v3.0.0b1 supports it but drops support for Py3.7.
We would have to...Until Silkaj v0.12 release gets released, Silkaj v0.11 has to support Py v3.12 which is already out with Fedora 39.
`pendulum` v2.1.2 doesn’t support Py3.12. `pendulum` v3.0.0b1 supports it but drops support for Py3.7.
We would have to drop Py3.7 support from Silkaj v0.11. Installing Silkaj v0.11.1 is still possible for system with Py3.7, even thought its support was dropped mid-2023.
### Pre-requisites
- [x] pylint v3.0 supports Py3.12, disable hook since there is a lot of new reports to fix
- [x] disable `pyupgrade` broken fix
- [x] switch jobs to `3.12` image containing `pre-commit`
- [x] duniterpy#205+
### Silkaj v0.11.2 release
- [x] #457+
- [x] Bump `pendulum` to v3.0.0b1
- [x] #448+
- [x] Write changelog, and cherry-pick it to `main` branch (v0.12)0.11.0MoulMoul