From 3c803a829b9644246bddab0cfefd3286d86c54d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20BEAU?= Date: Mon, 25 Nov 2024 16:15:34 +0100 Subject: [PATCH] Add 17.0, 18.0 full version --- .github/workflows/ci.yml | 2 + 17.0/Dockerfile | 63 ++++++++++++++++++++++++++ 17.0/ak_requirements.txt | 4 ++ 17.0/base_requirements.txt | 82 ++++++++++++++++++++++++++++++++++ 18.0/Dockerfile | 63 ++++++++++++++++++++++++++ 18.0/ak_requirements.txt | 4 ++ 18.0/base_requirements.txt | 91 ++++++++++++++++++++++++++++++++++++++ update_base_requirement | 6 +++ 8 files changed, 315 insertions(+) create mode 100644 17.0/Dockerfile create mode 100644 17.0/ak_requirements.txt create mode 100644 17.0/base_requirements.txt create mode 100644 18.0/Dockerfile create mode 100644 18.0/ak_requirements.txt create mode 100644 18.0/base_requirements.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2acef38..07dc86f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,7 +18,9 @@ jobs: - ODOOVERSION: "15.0" - ODOOVERSION: "16.0" - ODOOVERSION: "16.0-light" + - ODOOVERSION: "17.0" - ODOOVERSION: "17.0-light" + - ODOOVERSION: "18.0" - ODOOVERSION: "18.0-light" steps: - uses: actions/checkout@v2 diff --git a/17.0/Dockerfile b/17.0/Dockerfile new file mode 100644 index 0000000..6df36ce --- /dev/null +++ b/17.0/Dockerfile @@ -0,0 +1,63 @@ +# python 3.10 is the default used in acsone +FROM ghcr.io/acsone/odoo-bedrock:17.0-py311-jammy-latest +ARG PYTHONBIN=python3.11 +MAINTAINER Akretion + +# syntax = docker/dockerfile:1.4 + +# List from https://github.com/camptocamp/docker-odoo-project/blob/master/16.0/Dockerfile +ENV BUILD_PACKAGE \ + build-essential \ + gcc \ + ${PYTHONBIN}-dev \ + libevent-dev \ + libfreetype6-dev \ + libxml2-dev \ + libxslt1-dev \ + libsasl2-dev \ + libldap2-dev \ + libssl-dev \ + libjpeg-dev \ + libpng-dev \ + zlib1g-dev \ + git \ +# Additionnal dep from Ak + #vimĀ \ + po4a \ + postgresql-client \ + libpq-dev \ + libmupdf-dev \ + mupdf-tools \ + mupdf \ + expect + +# recreate isolate env +RUN set -x \ + && rm -rf /odoo/bin \ + && ${PYTHONBIN} -m venv /env \ + && /env/bin/pip install -U pip wheel setuptools +ENV PATH=/env/bin:$PATH + +RUN --mount=type=cache,target=/var/cache/apt \ + apt-get update \ + && apt-get install -y --no-install-recommends $BUILD_PACKAGE + +COPY 17.0/base_requirements.txt /tmp/base_requirements.txt +RUN pip install --no-cache-dir -r /tmp/base_requirements.txt + +COPY 17.0/ak_requirements.txt /tmp/ak_requirements.txt +RUN pip install --no-cache-dir -r /tmp/ak_requirements.txt + +ENV ADDONS_PATH=/odoo/src/addons,/odoo/local-src,/odoo/links + +COPY install/* /install/ +RUN --mount=type=cache,target=/root/.cache /install/install_tool && rm /install/install_tool + +COPY install/repos.yaml /root/.config/git-autoshare/repos.yml +COPY bin/* /usr/local/bin/ + + +# customize entrypoint + +ENTRYPOINT ["/usr/local/bin/ak-entrypoint.sh"] +CMD ["odoo"] diff --git a/17.0/ak_requirements.txt b/17.0/ak_requirements.txt new file mode 100644 index 0000000..076ee2e --- /dev/null +++ b/17.0/ak_requirements.txt @@ -0,0 +1,4 @@ +click-odoo-contrib>=1.16.0 +#sentry_sdk>=1.9.9 +git+https://github.com/oca/openupgradelib.git@master +odoo_test_helper==2.0.2 diff --git a/17.0/base_requirements.txt b/17.0/base_requirements.txt new file mode 100644 index 0000000..055a95f --- /dev/null +++ b/17.0/base_requirements.txt @@ -0,0 +1,82 @@ +Babel==2.10.3 ; python_version >= '3.11' +chardet==5.2.0 ; python_version >= '3.11' +cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes +decorator==5.1.1 ; python_version >= '3.11' +docutils==0.20.1 ; python_version >= '3.11' +ebaysdk==2.1.5 +freezegun==1.2.1 ; python_version >= '3.11' +geoip2==2.9.0 +gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) +greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) +idna==3.6 ; python_version >= '3.12' +Jinja2==3.1.2 ; python_version > '3.10' +libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package +lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) +lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) +MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +num2words==0.5.13 ; python_version >= '3.12' +ofxparse==0.21 +passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) +Pillow==10.2.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +polib==1.1.1 +psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +pydot==1.4.2 +pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches +PyPDF2==2.12.1 ; python_version > '3.10' +pyserial==3.5 +python-dateutil==2.8.2 ; python_version >= '3.11' +python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package +python-stdnum==1.19 ; python_version >= '3.11' +pytz # no version pinning to avoid OS perturbations +pyusb==1.2.1 +qrcode==7.4.2 ; python_version >= '3.11' +reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +requests==2.31.0 ; python_version >= '3.11' # (Noble) +rjsmin==1.2.0 ; python_version >= '3.11' +rl-renderPM==4.0.3 ; sys_platform == 'win32' and python_version >= '3.12' # Needed by reportlab 4.1.0 but included in deb package +urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography +vobject==0.9.6.1 +Werkzeug==3.0.1 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings +xlrd==2.0.1 ; python_version >= '3.12' +XlsxWriter==3.1.9 ; python_version >= '3.12' +xlwt==1.3.0 +zeep==4.2.1 ; python_version >= '3.11' +setuptools==73.0.1 + +# Not part of official requirements, but used by some addons +# colorama==0.3.9 +gdata==2.0.18 +html5lib==1.1 +odfpy==1.4.1 +pyinotify==0.9.6 +simplejson==3.19.3 + + +# test / lint +# those libs and their dependencies are unpinned +# to always test with the last version of it +flake8 +pytest==8.3.2 +pluggy +coverage +pytest-odoo>=0.4.7 +pytest-cov>=2.10.0 +watchdog + +# Library dependency +argh==0.31.3 +atomicwrites==1.4.1 +attrs==24.2.0 +beautifulsoup4==4.12.3 +future==1.0.0 +mccabe==0.7.0 +more-itertools==10.4.0 +pbr==6.0.0 +pexpect==4.9.0 +ptyprocess==0.7.0 +py==1.11.0 +pycodestyle==2.12.1 +pyflakes==3.2.0 +unicodecsv==0.14.1 +wrapt==1.16.0 diff --git a/18.0/Dockerfile b/18.0/Dockerfile new file mode 100644 index 0000000..83f9871 --- /dev/null +++ b/18.0/Dockerfile @@ -0,0 +1,63 @@ +# python 3.10 is the default used in acsone +FROM ghcr.io/acsone/odoo-bedrock:18.0-py312-noble-latest +ARG PYTHONBIN=python3.12 +MAINTAINER Akretion + +# syntax = docker/dockerfile:1.4 + +# List from https://github.com/camptocamp/docker-odoo-project/blob/master/16.0/Dockerfile +ENV BUILD_PACKAGE \ + build-essential \ + gcc \ + ${PYTHONBIN}-dev \ + libevent-dev \ + libfreetype6-dev \ + libxml2-dev \ + libxslt1-dev \ + libsasl2-dev \ + libldap2-dev \ + libssl-dev \ + libjpeg-dev \ + libpng-dev \ + zlib1g-dev \ + git \ +# Additionnal dep from Ak + #vimĀ \ + po4a \ + postgresql-client \ + libpq-dev \ + libmupdf-dev \ + mupdf-tools \ + mupdf \ + expect + +# recreate isolate env +RUN set -x \ + && rm -rf /odoo/bin \ + && ${PYTHONBIN} -m venv /env \ + && /env/bin/pip install -U pip wheel setuptools +ENV PATH=/env/bin:$PATH + +RUN --mount=type=cache,target=/var/cache/apt \ + apt-get update \ + && apt-get install -y --no-install-recommends $BUILD_PACKAGE + +COPY 18.0/base_requirements.txt /tmp/base_requirements.txt +RUN pip install --no-cache-dir -r /tmp/base_requirements.txt + +COPY 18.0/ak_requirements.txt /tmp/ak_requirements.txt +RUN pip install --no-cache-dir -r /tmp/ak_requirements.txt + +ENV ADDONS_PATH=/odoo/src/addons,/odoo/local-src,/odoo/links + +COPY install/* /install/ +RUN --mount=type=cache,target=/root/.cache /install/install_tool && rm /install/install_tool + +COPY install/repos.yaml /root/.config/git-autoshare/repos.yml +COPY bin/* /usr/local/bin/ + + +# customize entrypoint + +ENTRYPOINT ["/usr/local/bin/ak-entrypoint.sh"] +CMD ["odoo"] diff --git a/18.0/ak_requirements.txt b/18.0/ak_requirements.txt new file mode 100644 index 0000000..076ee2e --- /dev/null +++ b/18.0/ak_requirements.txt @@ -0,0 +1,4 @@ +click-odoo-contrib>=1.16.0 +#sentry_sdk>=1.9.9 +git+https://github.com/oca/openupgradelib.git@master +odoo_test_helper==2.0.2 diff --git a/18.0/base_requirements.txt b/18.0/base_requirements.txt new file mode 100644 index 0000000..b6dad41 --- /dev/null +++ b/18.0/base_requirements.txt @@ -0,0 +1,91 @@ +# The officially supported versions of the following packages are their +# python3-* equivalent distributed in Ubuntu 24.04 and Debian 12 +asn1crypto==1.5.1 ; python_version >= '3.11' +Babel==2.10.3 ; python_version >= '3.11' +cbor2==5.6.2 ; python_version >= '3.12' +chardet==5.2.0 ; python_version >= '3.11' +cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes +decorator==5.1.1 ; python_version >= '3.11' +docutils==0.20.1 ; python_version >= '3.11' +freezegun==1.2.1 ; python_version >= '3.11' +geoip2==2.9.0 +gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) +greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) +idna==3.7 ; python_version >= '3.12' +Jinja2==3.1.3 ; python_version > '3.10' +libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package +lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean) +lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches) +MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +num2words==0.5.13 ; python_version >= '3.12' +ofxparse==0.21 +openpyxl==3.1.2 ; python_version >= '3.12' +passlib==1.7.4 # min version = 1.7.2 (Focal with security backports) +Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +polib==1.1.1 +psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12' +psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches +PyPDF2==2.12.1 ; python_version > '3.10' +pyserial==3.5 +python-dateutil==2.8.2 ; python_version >= '3.11' +python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package +python-stdnum==1.19 ; python_version >= '3.11' +pytz # no version pinning to avoid OS perturbations +pyusb==1.2.1 +qrcode==7.4.2 ; python_version >= '3.11' +reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +requests==2.32.0 ; python_version >= '3.11' # (Noble) +rjsmin==1.2.0 ; python_version >= '3.11' +urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography +vobject==0.9.6.1 +Werkzeug==3.0.3 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings +xlrd==2.0.1 ; python_version >= '3.12' +XlsxWriter==3.1.9 ; python_version >= '3.12' +xlwt==1.3.0 +zeep==4.2.1 ; python_version >= '3.11' + + + + + + +setuptools==73.0.1 + +# Not part of official requirements, but used by some addons +# colorama==0.3.9 +gdata==2.0.18 +html5lib==1.1 +odfpy==1.4.1 +pyinotify==0.9.6 +simplejson==3.19.3 + + +# test / lint +# those libs and their dependencies are unpinned +# to always test with the last version of it +flake8 +pytest==8.3.2 +pluggy +coverage +pytest-odoo>=0.4.7 +pytest-cov>=2.10.0 +watchdog + +# Library dependency +argh==0.31.3 +atomicwrites==1.4.1 +attrs==24.2.0 +beautifulsoup4==4.12.3 +future==1.0.0 +mccabe==0.7.0 +more-itertools==10.4.0 +pbr==6.0.0 +pexpect==4.9.0 +ptyprocess==0.7.0 +py==1.11.0 +pycodestyle==2.12.1 +pyflakes==3.2.0 +unicodecsv==0.14.1 +wrapt==1.16.0 diff --git a/update_base_requirement b/update_base_requirement index 6f4c713..d5c03a7 100755 --- a/update_base_requirement +++ b/update_base_requirement @@ -1,6 +1,12 @@ #!/bin/bash set -Eeuo pipefail +rm -rf 18.0/base_requirements.txt +wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/18.0/base_requirements.txt -O 18.0/base_requirements.txt + +rm -rf 17.0/base_requirements.txt +wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/17.0/base_requirements.txt -O 17.0/base_requirements.txt + rm -rf 16.0/base_requirements.txt wget https://raw.githubusercontent.com/camptocamp/docker-odoo-project/master/16.0/base_requirements.txt -O 16.0/base_requirements.txt