Skip to content

Commit

Permalink
[IMP] core, requirements: bump minimal python version to 3.10
Browse files Browse the repository at this point in the history
Now that the Debian 12 ("Bookworm") is out with Python 3.11 as the
default, it's time to update our requirements.

Reminder of the constraints for our requirements:

We try choose the smallest version from the Ubuntu/Debian corresponding
package (python3-...).

Also, if we find that one of the package was patched by the
Debian/Ubuntu maintainer, we choose the version from which the patch is
coming.

So, before this commit, the version were choose between Debian 11 and
Ubuntu 22.04. With this commit, we can simplify the requirements because
of a better matching between "Jammy" and "Bookworm".

About the choice of the python version:

* Ubuntu 22.04 ("Jammy") provides 3.10
* Debian 12 ("Bookworm") provides 3.11
* Some features that only exists in 3.9 will be needed in a near future
* 3.9 is a small release

Part-of: odoo#136904
  • Loading branch information
d-fence committed Oct 6, 2023
1 parent e61dd01 commit 163fb3a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 28 deletions.
2 changes: 1 addition & 1 deletion odoo/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
]

import sys
assert sys.version_info > (3, 8), "Outdated python version detected, Odoo requires Python >= 3.8 to run."
assert sys.version_info > (3, 10), "Outdated python version detected, Odoo requires Python >= 3.10 to run."

#----------------------------------------------------------
# Running mode flags (gevent, prefork)
Expand Down
46 changes: 20 additions & 26 deletions requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,58 +4,52 @@ Babel==2.9.1 # min version = 2.6.0 (Focal with security backports)
chardet==4.0.0
cryptography==3.4.8
decorator==4.4.2
docutils==0.16
docutils==0.17
ebaysdk==2.1.5
freezegun==0.3.15
freezegun==1.1.0
geoip2==2.9.0
gevent==20.9.0 ; python_version <= '3.9'
gevent==21.8.0 ; python_version == '3.10' # (Jammy)
gevent==22.10.2; python_version > '3.10'
greenlet==0.4.17 ; python_version <= '3.9'
greenlet==1.1.2 ; python_version == '3.10' # (Jammy)
greenlet==2.0.2 ; python_version > '3.10'
idna==2.10
Jinja2==2.11.3 ; python_version <= '3.10' # min version = 2.10.1 (Focal - with security backports)
idna==2.10 # requests 2.25.1 depends on idna<3 and >=2.5
Jinja2==3.0.3 ; python_version <= '3.10'
Jinja2==3.1.2 ; python_version > '3.10'
libsass==0.20.1
lxml==4.6.5 ; python_version <= '3.10' # min version = 4.5.0 (Focal - with security backports)
lxml==4.8.0 ; python_version <= '3.10'
lxml==4.9.2 ; python_version > '3.10'
MarkupSafe==1.1.1 ; python_version <= '3.10'
MarkupSafe==2.0.1 ; python_version <= '3.10'
MarkupSafe==2.1.2 ; python_version > '3.10'
num2words==0.5.9
ofxparse==0.19; python_version <= '3.9'
ofxparse==0.21; python_version > '3.9' # (Jammy)
num2words==0.5.10
ofxparse==0.21
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
Pillow==9.0.1 ; python_version <= '3.10' # min version = 7.0.0 (Focal with security backports)
Pillow==9.4.0 ; python_version > '3.10'
polib==1.1.0
psutil==5.8.0 ; python_version <= '3.10'
polib==1.1.1
psutil==5.9.0 ; python_version <= '3.10'
psutil==5.9.4 ; python_version > '3.10'
psycopg2==2.8.6 ; sys_platform != 'win32' and python_version <= '3.10'
psycopg2==2.8.6 ; sys_platform == 'win32' and python_version < '3.10'
psycopg2==2.9.5 ; python_version > '3.10' or ( sys_platform == 'win32' and python_version == '3.10')
psycopg2==2.9.2 ; sys_platform != 'win32' and python_version <= '3.10'
psycopg2==2.9.5 ; python_version > '3.10' or sys_platform == 'win32'
pydot==1.4.2
pyopenssl==20.0.1
pyopenssl==21.0.0
PyPDF2==1.26.0 ; python_version <= '3.10'
PyPDF2==2.12.1 ; python_version > '3.10'
pypiwin32 ; sys_platform == 'win32'
pyserial==3.5
python-dateutil==2.8.1
python-ldap==3.4.0 ; sys_platform != 'win32' # min version = 3.2.0 (Focal with security backports)
python-stdnum==1.16
python-stdnum==1.17
pytz # no version pinning to avoid OS perturbations
pyusb==1.0.2 ; python_version <= '3.10'
pyusb==1.2.1 ; python_version > '3.10'
qrcode==6.1
reportlab==3.5.59 ; python_version <= '3.10' # version < 3.5.54 are not compatible with Pillow 8.1.2 and 3.5.59 is bullseye
pyusb==1.2.1
qrcode==7.3.1
reportlab==3.6.8 ; python_version <= '3.10'
reportlab==3.6.12 ; python_version > '3.10'
requests==2.25.1 # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)
rjsmin==1.1.0
urllib3==1.26.5 # indirect / min version = 1.25.8 (Focal with security backports)
vobject==0.9.6.1
Werkzeug==0.16.1 ; python_version <= '3.9'
Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy)
Werkzeug==2.0.2
xlrd==1.2.0
XlsxWriter==1.1.2
XlsxWriter==3.0.2
xlwt==1.3.*
zeep==4.0.0
zeep==4.1.0
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@
'xlwt',
'zeep',
],
python_requires='>=3.8',
python_requires='>=3.10',
extras_require={
'ldap': ['python-ldap'],
},
Expand Down

0 comments on commit 163fb3a

Please sign in to comment.