I have a somehow bigger discussion to be done. Which and or how many python version do we want to support.
The current situation is a little bit confusing. I think officially we support python > 3.5. I am not quite sure, if all our dependencies still work with python 3.6. Anyway, python 3.6 will reach end of life on 23 Dec 2021.
I'd prefer to pick one python version, which is the currently supported one. This would be the one our containers are based on, where we run our tests. Since we have quite some bare metal deployments, we should pick the version which is supported by Debian. Stable ships 3.9 (EOL: 05 Oct 2025) while oldstable ships 3.7 (EOL: 27 Jun 2023). This would allow us to switch to pipenv as package management everywhere. Since pipenv would provide lock mechanics, we would avoid a lot of trouble we had in the path with incompatible dependencies.
Another option would be to support multiple versions of Python, eg all not EOL versions. We would need to built test environments for each of them and I have actually no idea how to keep track of all our dependencies in this scenario. But we would support a much wider range of systems, which might be an advantage (I know, since we provide docker containers, almost all systems are supported, but some users might not want to run docker). The downside is the higher amount of work to support all this.
If you are a experienced python developers or Funkwhale admin, let me know what you think!