-
Task
-
Resolution: Done
-
Critical
-
None
-
False
-
False
-
Undefined
-
Background
Quay v3.4.0 is targeting compatibility with Python 3.8. This version of Python has been stable for over a year. We don't want to fall too far behind on our package bumps and Python compatibility. That contributed towards the massive Python 2.7 -> Python 3.8 migration that we have spent the majority of a year working on.
After some simple experiments in Fedora 33, which uses Python 3.9 by default, I have found that only a handful of packages need to be updated to successfully pass `pip install -r requirements.txt`. This is not indicative of how well Quay will function under Python 3.9, however.
Requirements
- Quay and all of its dependencies can be successfully installed and work as expected when using Python 3.9.
- The Continuous Integration tests cover both Python 3.8 and Python 3.9 in the test matrix.
Example Changes
The following diff shows some simple changes I made to Quay's requirements.txt file to successfully install all Python dependencies in Python 3.9.
$ git diff python3.9 upstream/master -- requirements.txt diff --git a/requirements.txt b/requirements.txt index 7fefb7fa..1f0ba07c 100644 --- a/requirements.txt +++ b/requirements.txt @@ -40,8 +40,8 @@ docker==4.1.0 docutils==0.15.2 dumb-init==1.2.2 ecdsa==0.15 -elasticsearch==7.9.1 -elasticsearch-dsl==7.3.0 # TODO: double-check that this is required +elasticsearch==7.0.4 +elasticsearch-dsl==7.0.0 fakeredis==1.1.0 Flask==1.1.1 Flask-Cors==3.0.8 @@ -55,10 +55,10 @@ furl==2.1.0 future==0.18.2 futures==3.1.1 geoip2==3.0.0 -gevent==20.9.0 +gevent==1.4.0 gipc==1.0.1 -greenlet==0.4.17 -grpcio==1.33.2 +greenlet==0.4.15 +grpcio==1.30.0 gunicorn==20.0.4 hashids==1.2.0 hiredis==1.0.1 @@ -139,7 +139,7 @@ recaptcha2==0.1 redis==3.3.11 redlock==1.2.0 rehash==1.0.0 -reportlab==3.5.55 +reportlab==3.5.34 requests==2.22.0 requests-aws4auth==0.9 requests-file==1.4.3