Skip to content

Commit 163fb3a

Browse files
committed
[IMP] core, requirements: bump minimal python version to 3.10
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
1 parent e61dd01 commit 163fb3a

File tree

3 files changed

+22
-28
lines changed

3 files changed

+22
-28
lines changed

odoo/__init__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
]
1717

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

2121
#----------------------------------------------------------
2222
# Running mode flags (gevent, prefork)

requirements.txt

+20-26
Original file line numberDiff line numberDiff line change
@@ -4,58 +4,52 @@ Babel==2.9.1 # min version = 2.6.0 (Focal with security backports)
44
chardet==4.0.0
55
cryptography==3.4.8
66
decorator==4.4.2
7-
docutils==0.16
7+
docutils==0.17
88
ebaysdk==2.1.5
9-
freezegun==0.3.15
9+
freezegun==1.1.0
1010
geoip2==2.9.0
11-
gevent==20.9.0 ; python_version <= '3.9'
1211
gevent==21.8.0 ; python_version == '3.10' # (Jammy)
1312
gevent==22.10.2; python_version > '3.10'
14-
greenlet==0.4.17 ; python_version <= '3.9'
1513
greenlet==1.1.2 ; python_version == '3.10' # (Jammy)
1614
greenlet==2.0.2 ; python_version > '3.10'
17-
idna==2.10
18-
Jinja2==2.11.3 ; python_version <= '3.10' # min version = 2.10.1 (Focal - with security backports)
15+
idna==2.10 # requests 2.25.1 depends on idna<3 and >=2.5
16+
Jinja2==3.0.3 ; python_version <= '3.10'
1917
Jinja2==3.1.2 ; python_version > '3.10'
2018
libsass==0.20.1
21-
lxml==4.6.5 ; python_version <= '3.10' # min version = 4.5.0 (Focal - with security backports)
19+
lxml==4.8.0 ; python_version <= '3.10'
2220
lxml==4.9.2 ; python_version > '3.10'
23-
MarkupSafe==1.1.1 ; python_version <= '3.10'
21+
MarkupSafe==2.0.1 ; python_version <= '3.10'
2422
MarkupSafe==2.1.2 ; python_version > '3.10'
25-
num2words==0.5.9
26-
ofxparse==0.19; python_version <= '3.9'
27-
ofxparse==0.21; python_version > '3.9' # (Jammy)
23+
num2words==0.5.10
24+
ofxparse==0.21
2825
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
2926
Pillow==9.0.1 ; python_version <= '3.10' # min version = 7.0.0 (Focal with security backports)
3027
Pillow==9.4.0 ; python_version > '3.10'
31-
polib==1.1.0
32-
psutil==5.8.0 ; python_version <= '3.10'
28+
polib==1.1.1
29+
psutil==5.9.0 ; python_version <= '3.10'
3330
psutil==5.9.4 ; python_version > '3.10'
34-
psycopg2==2.8.6 ; sys_platform != 'win32' and python_version <= '3.10'
35-
psycopg2==2.8.6 ; sys_platform == 'win32' and python_version < '3.10'
36-
psycopg2==2.9.5 ; python_version > '3.10' or ( sys_platform == 'win32' and python_version == '3.10')
31+
psycopg2==2.9.2 ; sys_platform != 'win32' and python_version <= '3.10'
32+
psycopg2==2.9.5 ; python_version > '3.10' or sys_platform == 'win32'
3733
pydot==1.4.2
38-
pyopenssl==20.0.1
34+
pyopenssl==21.0.0
3935
PyPDF2==1.26.0 ; python_version <= '3.10'
4036
PyPDF2==2.12.1 ; python_version > '3.10'
4137
pypiwin32 ; sys_platform == 'win32'
4238
pyserial==3.5
4339
python-dateutil==2.8.1
4440
python-ldap==3.4.0 ; sys_platform != 'win32' # min version = 3.2.0 (Focal with security backports)
45-
python-stdnum==1.16
41+
python-stdnum==1.17
4642
pytz # no version pinning to avoid OS perturbations
47-
pyusb==1.0.2 ; python_version <= '3.10'
48-
pyusb==1.2.1 ; python_version > '3.10'
49-
qrcode==6.1
50-
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
43+
pyusb==1.2.1
44+
qrcode==7.3.1
45+
reportlab==3.6.8 ; python_version <= '3.10'
5146
reportlab==3.6.12 ; python_version > '3.10'
5247
requests==2.25.1 # versions < 2.25 aren't compatible w/ urllib3 1.26. Bullseye = 2.25.1. min version = 2.22.0 (Focal)
5348
rjsmin==1.1.0
5449
urllib3==1.26.5 # indirect / min version = 1.25.8 (Focal with security backports)
5550
vobject==0.9.6.1
56-
Werkzeug==0.16.1 ; python_version <= '3.9'
57-
Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy)
51+
Werkzeug==2.0.2
5852
xlrd==1.2.0
59-
XlsxWriter==1.1.2
53+
XlsxWriter==3.0.2
6054
xlwt==1.3.*
61-
zeep==4.0.0
55+
zeep==4.1.0

setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@
6363
'xlwt',
6464
'zeep',
6565
],
66-
python_requires='>=3.8',
66+
python_requires='>=3.10',
6767
extras_require={
6868
'ldap': ['python-ldap'],
6969
},

0 commit comments

Comments
 (0)