Add Python v3.14 and drop Python v3.9 support

Python 3.14 pre-releases

  • Set up v3.14 test job
    • (Optional) With allow_failure: true, to allow tests to fail

Python 3.14 stable release

  • Handle deprecation warning and breaking features:
    • When distributing Silkaj v0.20 with py-substrate-sdk, its dependency py-ed25519-zebra-bindings and py-bip39-bindings do not provide Py3.14 musl wheels for Alpine. Just an issue for the CI using Alpine Linux images. py-bip39#24
    • py-sr25519 missing 3.14 wheels. I could circumvent the issue locally by setting the environment variable mentioned in the ticket #22, PR!25. But this is not a long term solution. A solution has to be found.
    • When dropping Py3.9 support, click gets bump from v8.1.8 to v8.3.0, because click v8.2.0 only have supports from Py3.10. click v8.2.0 comes with some changes on prompt() which makes g1_monetary_license and auth tests failing. I have been confronted to this issue earlier on my local environment. I got click v8.3.0 installed as a transitive dependency of rich-click and due to a locking topic.
    • Follow-up issue not directly related to Python version support. mkdocs serve doesn’t reload, mkdocs ticket, pin click version in mkdocs, fix on click side, PR. I can pin click to v8.2.1, let’s see when click will release this fix.
  • (Optional) Remove allow_failure: true, now on the tests should pass

Drop Python 3.9 support

  • Delete test job for v3.9 from .gitlab-ci.yml
  • pyproject.toml: Bump minimum versions:
    • tools.poetry.dependency.python
    • Bump tools.ruff.target-version and apply Ruff changes
      • v0.20 branch
      • v0.12 branch

Post

References

Edited by Moul
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information