Friday, June 14, 2024
1 change · saas-17.1
Enhancements to existing features
This update adjusts Odoo's installation requirements so they work better with Ubuntu Noble and Python 3.12. It also improves the internal requirements checking tool, making compatibility checks faster and clearer for release and deployment teams.
Original PR description
The main goal of this pr is to adapt the requirements to make it work in ubuntu Noble (right now, it will only work when using debian packages) ## FIX requirements_check.py The first step is to adapt…
The main goal of this pr is to adapt the requirements to make it work in ubuntu Noble (right now, it will only work when using debian packages) ## FIX requirements_check.py The first step is to adapt and fix the requirements_check in order to have an overview of the current state.  This is showing the difference between an installation from pip compared to the official packaged version in the distribution matching the same python version. Red usually means that the package in the corresponding version has a higher version than the pinned one. We expect to have almost the same version as the corresponding minimal supported python version. It is possible that some version are higher (yellow) for historical/security/compatibility reasons. ## Adapt requirements.txc We don't need to fix all versions, but we want to adapt it to work in most cases, mainly we need to be able to install the requirements on ubuntu Noble. If a change is needed, the version of the requirement for 3.12 is pinned to match the version of the package in ubuntu Noble. ### greenlet The first change concern greenlet and gevent, the current version does not install on python 3.12 ### Missing wheel The second changes adapt all packages that did not have a wheel in 3.12. Some of them fail to build, and building them is slow. ### Non compatible packages Finally, some package are not compatible, leading to import error or requirements install errors  Since the requirements versions are the same as the debian package version we expect the build with requirements to be green similar to the PureNoble builds. ### Fix win32 wheel Building wheel on windows is painful because c++ builds tools are quite heavy and not included. Most of the version pinned in 3.12 will have a wheel on win32, except got gevent and greenlet. Since they are not required to run odoo, removing them for win32 ### Simplify psycopg2 dependencies Note that if most changes does only concern 3.12, an exception was made to simplify psycopg2 exceptions Since there is no wheel package in psycopg 2.8.6, the pinned version was 2.9.5, an **exception** for windows (exception in blue) But in Jammy, with python 3.10, the expected version is actually 2.9.2 (column is red) which has a wheel package sor windows  We can fix both issues by pinning 2.9.2 for all python 3.10, not depending on the operating system.  It also looks like we have a wheel package in windows 2.7.7 and python 3.7, so we could simplify even further, but I'm not sure if it was intended or a remaining from change history. Anyway, this will be clean in future version where minimal version is higher than 3.7. Manual forwardport of #168296