cossacklabs / themis

Easy to use cryptographic framework for data protection: secure messaging with forward secrecy and secure data storage. Has unified APIs across 14 platforms.
https://www.cossacklabs.com/themis
Apache License 2.0
1.85k stars 143 forks source link

Pythemis: introduce `pyproject.toml` #1006

Closed G1gg1L3s closed 1 year ago

G1gg1L3s commented 1 year ago

This is a part of T2779. In python world the setup.py is considered deprecated and developers are encouraged to use pyproject.toml. So, let's try integrating it.

I used setuptools as a backend for no particular reasons because the name is familiar and we have no reasons to not use it or use something else.

Also, I tried to test it with newer version of python. After many hours I didn't find any problems with our new approach - pythemis works at least with python 3.4-3.11. Starting from 3.3 I encountered some issues so I didn't bothered to fix them.

However, python3.5 is deprecated and it produces warning like "DEPRECATION: Python 3.5 reached the end of its life on..." so many Python libraries don't support it. , so I decided to remove support of python<3.6 in our metafiles.

Though, actually python3.6 is also deprecated. The same will be true for python3.7 in a couple of days (Jun 27 2023).

So the question is should we declare support of these versions? Or should we declare support of the whole range python 3.4-3.11? We could do that, but we don't really test the whole range. Even our CI is based mostly on testing using different distros which come with different python versions. Still, I will do as you will say.

Checklist