From 83dd169918e4996fc96b8e4fc22151182c50e847 Mon Sep 17 00:00:00 2001 From: Vincent Renaville Date: Thu, 19 Sep 2024 12:46:41 +0200 Subject: [PATCH] feat: switch to github + bump library + bump python libraries + sysdig image validation (#295) --- .github/workflows/build.yaml | 104 +++++++++++++++++ .travis.yml | 37 ------ 10.0/Dockerfile | 80 ------------- 10.0/MANIFEST.in | 1 - 10.0/base_requirements.txt | 103 ----------------- 10.0/extra_requirements.txt | 52 --------- 10.0/src_requirements.txt | 8 -- 10.0/templates/odoo.cfg.tmpl | 51 -------- 11.0/Dockerfile | 7 +- 12.0/Dockerfile | 5 +- 12.0/base_requirements.txt | 82 +++++++------ 12.0/extra_requirements.txt | 1 - 13.0/Dockerfile | 5 +- 13.0/base_requirements.txt | 20 ++-- 14.0-bullseye/Dockerfile | 78 ------------- 14.0-bullseye/MANIFEST.in | 1 - 14.0-bullseye/base_requirements.txt | 109 ------------------ 14.0-bullseye/extra_requirements.txt | 46 -------- 14.0-bullseye/src_requirements.txt | 8 -- 14.0-bullseye/templates/odoo.cfg.tmpl | 51 -------- 14.0/Dockerfile | 7 +- 14.0/base_requirements.txt | 26 ++--- 14.0/extra_requirements.txt | 1 - 15.0/Dockerfile | 7 +- 15.0/base_requirements.txt | 106 ++++++++--------- 15.0/extra_requirements.txt | 77 ++++++------- 16.0/Dockerfile | 6 +- 16.0/base_requirements.txt | 105 ++++++++--------- 16.0/extra_requirements.txt | 65 +++++------ 17.0/Dockerfile | 6 +- 17.0/base_requirements.txt | 102 ++++++++-------- 17.0/extra_requirements.txt | 66 +++++------ 7.0/Dockerfile | 81 ------------- 7.0/MANIFEST.in | 1 - 7.0/base_requirements.txt | 83 ------------- 7.0/bin-compat/anthem | 6 - 7.0/bin-compat/odoo | 10 -- 7.0/extra_requirements.txt | 0 7.0/src_requirements.txt | 8 -- 7.0/templates/openerp.cfg.tmpl | 50 -------- 8.0/Dockerfile | 82 ------------- 8.0/MANIFEST.in | 1 - 8.0/base_requirements.txt | 84 -------------- 8.0/bin-compat/anthem | 6 - 8.0/bin-compat/odoo | 10 -- 8.0/extra_requirements.txt | 52 --------- 8.0/src_requirements.txt | 8 -- 8.0/templates/openerp.cfg.tmpl | 50 -------- 9.0/Dockerfile | 81 ------------- 9.0/MANIFEST.in | 1 - 9.0/base_requirements.txt | 93 --------------- 9.0/bin-compat/odoo | 10 -- 9.0/extra_requirements.txt | 52 --------- 9.0/src_requirements.txt | 8 -- 9.0/templates/openerp.cfg.tmpl | 50 -------- Makefile | 48 +------- bin-py2/list_dependencies.py | 36 ------ build.sh | 1 - example/odoo/Dockerfile | 5 +- example/odoo/Dockerfile-onbuild | 15 --- example/odoo/migration.yml | 2 - example/test-compose.yml | 5 +- ...ckage_odoo-bullseye.sh => package_odoo.sh} | 0 install/package_odoo_11.0_12.0.sh | 32 ----- install/package_odoo_12.0-buster.sh | 31 ----- install/package_odoo_13.0_14.0.sh | 27 ----- install/package_odoo_9.0_10.0.sh | 24 ---- install/postgres.sh | 4 - setup.sh | 29 +++++ test.sh | 34 +++--- travis/publish.sh | 24 ---- 71 files changed, 484 insertions(+), 2083 deletions(-) create mode 100644 .github/workflows/build.yaml delete mode 100644 .travis.yml delete mode 100644 10.0/Dockerfile delete mode 100644 10.0/MANIFEST.in delete mode 100644 10.0/base_requirements.txt delete mode 100644 10.0/extra_requirements.txt delete mode 100644 10.0/src_requirements.txt delete mode 100644 10.0/templates/odoo.cfg.tmpl delete mode 100644 14.0-bullseye/Dockerfile delete mode 100644 14.0-bullseye/MANIFEST.in delete mode 100644 14.0-bullseye/base_requirements.txt delete mode 100644 14.0-bullseye/extra_requirements.txt delete mode 100644 14.0-bullseye/src_requirements.txt delete mode 100644 14.0-bullseye/templates/odoo.cfg.tmpl delete mode 100644 7.0/Dockerfile delete mode 100644 7.0/MANIFEST.in delete mode 100644 7.0/base_requirements.txt delete mode 100755 7.0/bin-compat/anthem delete mode 100755 7.0/bin-compat/odoo delete mode 100644 7.0/extra_requirements.txt delete mode 100644 7.0/src_requirements.txt delete mode 100644 7.0/templates/openerp.cfg.tmpl delete mode 100644 8.0/Dockerfile delete mode 100644 8.0/MANIFEST.in delete mode 100644 8.0/base_requirements.txt delete mode 100755 8.0/bin-compat/anthem delete mode 100755 8.0/bin-compat/odoo delete mode 100644 8.0/extra_requirements.txt delete mode 100644 8.0/src_requirements.txt delete mode 100644 8.0/templates/openerp.cfg.tmpl delete mode 100644 9.0/Dockerfile delete mode 100644 9.0/MANIFEST.in delete mode 100644 9.0/base_requirements.txt delete mode 100755 9.0/bin-compat/odoo delete mode 100644 9.0/extra_requirements.txt delete mode 100644 9.0/src_requirements.txt delete mode 100644 9.0/templates/openerp.cfg.tmpl delete mode 100755 bin-py2/list_dependencies.py delete mode 100644 example/odoo/Dockerfile-onbuild rename install/{package_odoo-bullseye.sh => package_odoo.sh} (100%) delete mode 100755 install/package_odoo_11.0_12.0.sh delete mode 100755 install/package_odoo_12.0-buster.sh delete mode 100755 install/package_odoo_13.0_14.0.sh delete mode 100755 install/package_odoo_9.0_10.0.sh create mode 100644 setup.sh delete mode 100755 travis/publish.sh diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..ef03867d --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,104 @@ +name: build + +on: + push: + branches: + - "release-4.5.X" + - "dev-4.5.X" + tags: + - "4.*.*.*.*" + + pull_request: + branches: + - "release-4.5.X" + + +env: + TARGET: GHCR + DOCKER_BUILDKIT: 1 + COMPOSE_DOCKER_CLI_BUILD: 1 + +jobs: + + build: + runs-on: ubuntu-latest + strategy: + matrix: + odoo_serie: ["11.0","12.0","13.0","14.0","15.0","16.0", "17.0"] + + steps: + - uses: actions/checkout@v4 + with: + ref: dev-4.5.X + + - name: Set up Docker Buildx + id: buildx + uses: docker/setup-buildx-action@v2 + with: + driver: docker + + - name: Docker meta + id: docker_meta + uses: docker/metadata-action@v4 + with: + images: ghcr.io/camptocamp/docker-odoo-project + flavor: | + prefix=${{ matrix.odoo_serie }}-4.x,onlatest=true + tags: | + type=raw,value={{branch}}-latest + type=raw,value={{branch}}-{{date 'YYYYMMDD'}} + type=ref,event=tag + type=ref,event=pr + type=schedule,pattern=nightly + type=raw,value={{branch}}-4.x + + - name: Setup build dir + run: | + VERSION=${{ matrix.odoo_serie }} SRC=build make setup + + - name: Build + uses: docker/build-push-action@v3 + with: + context: ./build + push: false + load: true + tags: ci-4xx-latest:${{ matrix.odoo_serie }} + labels: ${{ steps.docker_meta.outputs.labels }} + + - name: Test + run: make VERSION=${{ matrix.odoo_serie }} test + + - name: Scan image + id: scan + uses: sysdiglabs/scan-action@v5 + with: + sysdig-secure-url: https://eu1.app.sysdig.com + stop-on-failed-policy-eval: false + stop-on-processing-error: false + image-tag: ci-4xx-latest:${{ matrix.odoo_serie }} + skip-upload: false + sysdig-secure-token: ${{ secrets.SYSDIG_SECURE_TOKEN }} + + + - name: Login to GitHub Container Registry + if: github.event_name == 'push' || github.event_name == 'schedule' + uses: docker/login-action@v2 + with: + registry: ghcr.io + username: ${{ secrets.GHCR_USER }} + password: ${{ secrets.GHCR_TOKEN }} + + - name: Tag & Push + if: github.event_name == 'push' || github.event_name == 'schedule' + id: docker_push + uses: docker/build-push-action@v3 + with: + context: ./build + push: ${{ github.event_name != 'pull_request' }} + tags: ${{ steps.docker_meta.outputs.tags }} + labels: ${{ steps.docker_meta.outputs.labels }} + + - name: Image digest + run: echo ${{ steps.docker_push.outputs.digest }} + + diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 410bc134..00000000 --- a/.travis.yml +++ /dev/null @@ -1,37 +0,0 @@ -sudo: required - -services: docker - -env: - global: - - TARGET="GHCR" - - matrix: - - VERSION=17.0 - - VERSION=16.0 - - VERSION=15.0 - - VERSION=14.0 - - VERSION=14.0-bullseye - - VERSION=13.0 - - VERSION=12.0 - - VERSION=11.0 -# - VERSION=10.0 -# - VERSION=9.0 -# - VERSION=8.0 -# - VERSION=7.0 - -script: - - make VERSION=$VERSION build - - make VERSION=$VERSION test - -# Need docker-ce 20 instead of docker-ce 18 for building Odoo 15 on debian:bullseye -# https://docs.travis-ci.com/user/docker/#installing-a-newer-docker-version -before_install: - - if [ "$VERSION" = "15.0" OR "$VERSION" = "16.0" OR "$VERSION" = "17.0" ] ; then curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - ; fi - - if [ "$VERSION" = "15.0" OR "$VERSION" = "16.0" OR "$VERSION" = "17.0" ] ; then sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" ; fi - - if [ "$VERSION" = "15.0" OR "$VERSION" = "16.0" OR "$VERSION" = "17.0" ] ; then sudo apt-get update ; fi - - if [ "$VERSION" = "15.0" OR "$VERSION" = "16.0" OR "$VERSION" = "17.0" ] ; then sudo apt-get -y -o Dpkg::Options::="--force-confnew" install docker-ce ; fi - - docker --version - -after_success: - - travis/publish.sh diff --git a/10.0/Dockerfile b/10.0/Dockerfile deleted file mode 100644 index 8ebefb40..00000000 --- a/10.0/Dockerfile +++ /dev/null @@ -1,80 +0,0 @@ -FROM debian:jessie -MAINTAINER Camptocamp - -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Set Locale it needs to be present when installing python packages. -# Otherwise it can lead to issues. eg. when reading the setup.cfg -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - python-dev \ - libffi-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - zlib1g-dev \ - libfreetype6-dev \ - git - -ENV PURGE_PACKAGE npm - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - /install/package_odoo_9.0_10.0.sh \ - && /install/disable_dst_root_cert-jessie.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/dev_package.sh \ - && pip install -U "pip<21.0" "setuptools<45" \ - && pip install -r /odoo/base_requirements.txt \ - && /install/purge_dev_package_and_cache.sh - -# grab gosu for easy step-down from root and dockerize to generate template and -# wait on postgres -RUN /install/gosu.sh && /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo-bin -COPY ./bin-py2 /odoo-bin/ -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d -COPY ./start-entrypoint.d /start-entrypoint.d -COPY ./MANIFEST.in /odoo -# Place coveragerc in workdir where coverage will be launched from -COPY ./.coveragerc / - -VOLUME ["/data/odoo", "/var/log/odoo"] - -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=10.0 \ - PATH=/odoo-bin:$PATH \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/etc/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/10.0/MANIFEST.in b/10.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/10.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/10.0/base_requirements.txt b/10.0/base_requirements.txt deleted file mode 100644 index 067e6f20..00000000 --- a/10.0/base_requirements.txt +++ /dev/null @@ -1,103 +0,0 @@ -# Odoo dependencies -# python_version = 2.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -Babel==2.3.4 -decorator==4.0.10 -docutils==0.12 -ebaysdk==2.1.4 -feedparser==5.2.1 -gevent==1.1.2 -greenlet==0.4.10 -jcconv==0.2.3 -Jinja2==2.11.3 # official 2.10.1 -lxml==4.6.3 # official 3.5.0 -Mako==1.0.4 -MarkupSafe==0.23 -mock==2.0.0 -ofxparse==0.16 -passlib==1.6.5 -Pillow==6.2.2 # official 3.4.1 -psutil==5.7.0 # official 4.3.1 -psycogreen==1.0 -psycopg2==2.7.3.1 -pydot==1.2.3 -pyparsing==2.1.10 -pyPdf==1.13 -pyserial==3.1.1 -Python-Chart==1.39 -python-dateutil==2.5.3 -python-ldap==2.4.27 -python-openid==2.2.5 -pytz==2016.7 -pyusb==1.0.0 -PyYAML==5.4 # official 3.12 -qrcode==5.3 -reportlab==3.3.0 -requests==2.20.0 -six==1.10.0 -suds-jurko==0.6 -vatnumber==1.2 -vobject==0.9.3 -Werkzeug==0.16.0 # official 0.11.11 -wsgiref==0.1.2 -XlsxWriter==0.9.3 -xlwt==1.1.2 -xlrd==1.0.0 - -# Not part of official requirements, but used by some addons -chardet==3.0.4 -colorama==0.3.9 -future==0.16.0 -gdata==2.0.18 -html2text==2018.1.9 -html5lib==1.0.1 -odfpy==1.3.4 -odoo-autodiscover>=2.0.0 -pyinotify==0.9.4 -python-stdnum==1.9 -roman==2.0.0 -simplejson==3.6.5 -unittest2==1.1.0 -urllib3==1.24.2 - -# Migration tools -ruamel.yaml==0.16.13 -ruamel.yaml.clib==0.2.2 -marabunta==0.10.6 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -# DISCLAIMER: those are pinned to the last Python 2.7 compatible version -flake8==3.9.2 -pytest==4.6 -pluggy==0.13.1 -pytest-odoo -coverage==5.5 -watchdog==0.10.6 -pytest-cov==2.12.1 - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -certifi==2020.4.5.1 -configparser==3.5.0 -enum34==1.1.6 -funcsigs==1.0.2 -importlib-metadata==2.1.1 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.3.1 -pyflakes==1.6.0 -unicodecsv==0.14.1 -wrapt==1.10.11 -zipp==1.2.0 -contextlib2==0.6.0 diff --git a/10.0/extra_requirements.txt b/10.0/extra_requirements.txt deleted file mode 100644 index 93e01548..00000000 --- a/10.0/extra_requirements.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -Cerberus==1.2 -certifi==2018.4.16 -cffi==1.11.5 -contextlib2==0.5.5 -cryptography==3.2 -dateparser==0.7.0 -futures==3.2.0 -idna==2.7 -ipaddress==1.0.22 -jmespath==0.9.3 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -PyPDF2==1.26.0 -PySimpleSOAP==1.16.2 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -suds-jurko==0.6 -tzlocal==1.5.1 -Unidecode==1.0.22 diff --git a/10.0/src_requirements.txt b/10.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/10.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/10.0/templates/odoo.cfg.tmpl b/10.0/templates/odoo.cfg.tmpl deleted file mode 100644 index 96c96427..00000000 --- a/10.0/templates/odoo.cfg.tmpl +++ /dev/null @@ -1,51 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }} -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -; xmlrpc = True -; xmlrpc_interface = -; xmlrpc_port = 8069 -; xmlrpcs = True -; xmlrpcs_interface = -; xmlrpcs_port = 8071 -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/11.0/Dockerfile b/11.0/Dockerfile index 7d0f612e..f4dd3672 100644 --- a/11.0/Dockerfile +++ b/11.0/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster +FROM python:3.7-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -16,7 +16,6 @@ ENV LANG=C.UTF-8 \ ENV BUILD_PACKAGE \ build-essential \ gcc \ - python3.7-dev \ libevent-dev \ libfreetype6-dev \ libxml2-dev \ @@ -31,13 +30,13 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf RUN set -x; \ - /install/package_odoo_12.0-buster.sh \ + /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ && /install/kwkhtml_client_force_python3.sh \ && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ + && python3 -m pip install --force-reinstall pip \ && pip3 install -r /odoo/base_requirements.txt --ignore-installed \ && /install/purge_dev_package_and_cache.sh \ && /install/reportlab_init.sh diff --git a/12.0/Dockerfile b/12.0/Dockerfile index 88795d7b..09568be7 100644 --- a/12.0/Dockerfile +++ b/12.0/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster +FROM python:3.9-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -16,7 +16,6 @@ ENV LANG=C.UTF-8 \ ENV BUILD_PACKAGE \ build-essential \ gcc \ - python3.7-dev \ libevent-dev \ libfreetype6-dev \ libxml2-dev \ @@ -31,7 +30,7 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf RUN set -x; \ - /install/package_odoo_12.0-buster.sh \ + /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ diff --git a/12.0/base_requirements.txt b/12.0/base_requirements.txt index 2503dab5..3c38aaba 100644 --- a/12.0/base_requirements.txt +++ b/12.0/base_requirements.txt @@ -3,67 +3,63 @@ # sys_platform != 'win32' # this is a copy of Odoo dependencies with some bumped versions # unused official dependencies are commented to avoid dependabot alerts -Babel==2.3.4 +Babel==2.6.0 chardet==3.0.4 -decorator==4.0.10 -docutils==0.12 +decorator==4.3.0 +docutils==0.14 ebaysdk==2.1.5 -# gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7' -gevent==1.5.0 ; python_version >= '3.7' -# greenlet==0.4.10 ; python_version < '3.7' -greenlet==0.4.14 ; python_version >= '3.7' -html2text==2016.9.19 -Jinja2==2.11.3 # official 2.10.1 -libsass==0.12.3 +gevent==22.10.2 +greenlet==2.0.2 +html2text==2018.1.9 +Jinja2==3.1.4 # official 2.10.1 +libsass==0.17.0 # lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml==4.6.3 ; sys_platform != 'win32' and python_version >= '3.7' # official 4.2.3 +lxml==4.6.3 ; sys_platform != 'win32' and python_version >= '3.7' # official 4.3.2 # lxml ; sys_platform == 'win32' -Mako==1.0.4 -MarkupSafe==0.23 +Mako==1.3.5 +MarkupSafe==2.1.5 # official 1.1.0 mock==2.0.0 -num2words==0.5.6 -ofxparse==0.16 -passlib==1.6.5 -# Pillow==6.2.2 ; python_version < '3.7' # official 4.0.0 -Pillow==8.1.1 ; python_version >= '3.7' # official 6.1.0 -psutil==5.7.0; sys_platform != 'win32' # official 4.3.1 -# psutil==5.6.3; sys_platform == 'win32' -psycopg2==2.7.3.1; sys_platform != 'win32' and python_version < '3.8' -# psycopg2==2.8.3; sys_platform == 'win32' or python_version >= '3.8' -pydot==1.2.3 -pyldap==2.4.28; sys_platform != 'win32' -pyparsing==2.1.10 +num2words==0.5.10 # official 0.5.6 +ofxparse==0.19 +passlib==1.7.2 # official 1.7.1 +Pillow==8.3.2 ; python_version < '3.7' or sys_platform != 'win32' # official 5.4.1 +# Pillow==6.1.0 ; sys_platform == 'win32' and python_version >= '3.7' +polib==1.1.0 +psutil==5.7.0; sys_platform != 'win32' +psycopg2==2.9.9; sys_platform == 'win32' or python_version >= '3.8' +pydot==1.4.1 +python-ldap==3.2.0; sys_platform != 'win32' # official 3.1.0 +pyparsing==2.2.0 PyPDF2==1.26.0 -pyserial==3.1.1 -python-dateutil==2.5.3 +pyserial==3.4 +python-dateutil==2.7.3 pytz==2024.1 -pyusb==1.0.0 -qrcode==5.3 +pyusb==1.0.2 +qrcode==6.1 reportlab==3.6.9 -requests==2.20.0 -suds-jurko==0.6 +requests==2.25.1 # official 2.21.0 +zeep==3.2.0 vatnumber==1.2 -vobject==0.9.3 -Werkzeug==0.16.0 ; sys_platform != 'win32' # official 0.11.15 -# Werkzeug==0.16.0 ; sys_platform == 'win32' -XlsxWriter==0.9.3 +vobject==0.9.6.1 +Werkzeug==0.16.1 ; sys_platform != 'win32' # official 0.14.1 +# Werkzeug==0.16.0 ; sys_platform == 'win32' +XlsxWriter==1.1.2 xlwt==1.3.* -xlrd==1.0.0 +xlrd==1.1.0 # pypiwin32 ; sys_platform == 'win32' # last version compatible with 2to3 (for vatnumber) setuptools<58 # Not part of official requirements, but used by some addons -chardet==3.0.4 # colorama==0.3.9 gdata==2.0.18 html5lib==1.0.1 -odfpy==1.3.5 +odfpy==1.4.1 pyinotify==0.9.6 -python-stdnum==1.9 -simplejson==3.11.1 -urllib3==1.24.2 +python-stdnum==1.13 +simplejson==3.17.0 +urllib3==1.26.7 # Migration tools marabunta==0.12.0 @@ -93,7 +89,7 @@ pbr==4.0.4 pexpect==4.6.0 ptyprocess==0.5.2 py==1.5.3 -pycodestyle==2.3.1 -pyflakes==1.6.0 +pycodestyle==2.5.0 +pyflakes==2.1.1 unicodecsv==0.14.1 wrapt==1.10.11 diff --git a/12.0/extra_requirements.txt b/12.0/extra_requirements.txt index c837bc3e..81a7e3bf 100644 --- a/12.0/extra_requirements.txt +++ b/12.0/extra_requirements.txt @@ -41,7 +41,6 @@ PyNaCl==1.2.1 pytesseract==0.2.2 regex==2018.6.9 s3transfer==0.1.13 -suds-jurko==0.6 tzlocal==1.5.1 Unidecode==1.0.22 yarl==1.2.6 diff --git a/13.0/Dockerfile b/13.0/Dockerfile index 99c0de1f..056dc73a 100644 --- a/13.0/Dockerfile +++ b/13.0/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster +FROM python:3.9-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -16,7 +16,6 @@ ENV LANG=C.UTF-8 \ ENV BUILD_PACKAGE \ build-essential \ gcc \ - python3.7-dev \ libevent-dev \ libfreetype6-dev \ libxml2-dev \ @@ -31,7 +30,7 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf RUN set -x; \ - sh -c /install/package_odoo_13.0_14.0.sh \ + sh -c /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ diff --git a/13.0/base_requirements.txt b/13.0/base_requirements.txt index 4b16f062..261062e8 100644 --- a/13.0/base_requirements.txt +++ b/13.0/base_requirements.txt @@ -8,19 +8,16 @@ chardet==3.0.4 decorator==4.3.0 docutils==0.14 ebaysdk==2.1.5 -# gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7' -gevent==1.5.0 ; python_version >= '3.7' -# gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7' -greenlet==0.4.10 ; python_version < '3.7' -greenlet==0.4.15 ; python_version >= '3.7' +gevent==22.10.2 +greenlet==2.0.2 html2text==2018.1.9 -Jinja2==2.11.3 # official 2.10.1 +Jinja2==3.1.4 # official 2.10.1 libsass==0.17.0 # lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' lxml==4.6.3 ; sys_platform != 'win32' and python_version >= '3.7' # official 4.3.2 # lxml ; sys_platform == 'win32' -Mako==1.0.7 -MarkupSafe==1.1.1 # official 1.1.0 +Mako==1.3.5 +MarkupSafe==2.1.5 # official 1.1.0 mock==2.0.0 num2words==0.5.10 # official 0.5.6 ofxparse==0.19 @@ -29,8 +26,7 @@ Pillow==8.3.2 ; python_version < '3.7' or sys_platform != 'win32' # official 5.4 # Pillow==6.1.0 ; sys_platform == 'win32' and python_version >= '3.7' polib==1.1.0 psutil==5.7.0; sys_platform != 'win32' -psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8' -# psycopg2==2.8.3; sys_platform == 'win32' or python_version >= '3.8' +psycopg2==2.9.9; sys_platform == 'win32' or python_version >= '3.8' pydot==1.4.1 python-ldap==3.2.0; sys_platform != 'win32' # official 3.1.0 pyparsing==2.2.0 @@ -52,6 +48,10 @@ xlwt==1.3.* xlrd==1.1.0 # pypiwin32 ; sys_platform == 'win32' +# last version compatible with 2to3 (for vatnumber) +setuptools<58 + + # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 diff --git a/14.0-bullseye/Dockerfile b/14.0-bullseye/Dockerfile deleted file mode 100644 index 6ea41af8..00000000 --- a/14.0-bullseye/Dockerfile +++ /dev/null @@ -1,78 +0,0 @@ -FROM debian:bullseye -MAINTAINER Camptocamp - -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Moved because there was a bug while installing `odoo-autodiscover`. There is -# an accent in the contributor name -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - gcc \ - python3.9-dev \ - libevent-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libpng-dev \ - zlib1g-dev \ - git - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - sh -c /install/package_odoo_13.0_14.0.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/kwkhtml_client_force_python3.sh \ - && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ - && pip install -r /odoo/base_requirements.txt --ignore-installed \ - && /install/purge_dev_package_and_cache.sh - -# grab gosu for easy step-down from root and dockerize to generate template and -# wait on postgres -RUN /install/gosu.sh && /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo-bin -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d -COPY ./start-entrypoint.d /start-entrypoint.d -COPY ./MANIFEST.in /odoo - -VOLUME ["/data/odoo", "/var/log/odoo"] - -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=14.0 \ - PATH=/odoo-bin:$PATH \ - LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/etc/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/14.0-bullseye/MANIFEST.in b/14.0-bullseye/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/14.0-bullseye/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/14.0-bullseye/base_requirements.txt b/14.0-bullseye/base_requirements.txt deleted file mode 100644 index d0bf1d80..00000000 --- a/14.0-bullseye/base_requirements.txt +++ /dev/null @@ -1,109 +0,0 @@ -# Odoo dependencies -# python_version = 3.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -# unused official dependencies are commented to avoid dependabot alerts -Babel==2.6.0; python_version <= '3.9' -Babel==2.9.1; python_version > '3.9' # (Jammy) 2.6.0 has issues with python 3.10 -chardet==3.0.4 -decorator==4.3.0 -docutils==0.14 -ebaysdk==2.1.5 -freezegun==0.3.11; python_version < '3.8' -freezegun==0.3.15; python_version >= '3.8' -gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7' -gevent==1.5.0 ; python_version == '3.7' -gevent==20.9.0 ; python_version >= '3.8' -gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7' -gevent==21.8.0 ; python_version > '3.9' # (Jammy) -greenlet==0.4.10 ; python_version < '3.7' -greenlet==0.4.15 ; python_version == '3.7' -greenlet==0.4.17 ; python_version > '3.7' -greenlet==1.1.2 ; python_version > '3.9' # (Jammy) -html2text==2018.1.9 -idna==2.6 -Jinja2==2.11.3; python_version < '3.8' # official 2.10.1 -# bullseye version, focal patched 2.10 -Jinja2==2.11.3; python_version >= '3.8' # official 2.11.2 -libsass==0.17.0 -lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml==4.6.3 ; sys_platform != 'win32' and python_version == '3.7' # official 4.3.2 -lxml==4.6.3 ; sys_platform != 'win32' and python_version > '3.7' # official 4.6.1 -Mako==1.0.7 -MarkupSafe==1.1.0 -num2words==0.5.6 -ofxparse==0.19; python_version <= '3.9' -ofxparse==0.21; python_version > '3.9' # (Jammy) ABC removed from collections in 3.10 but still used in ofxparse < 0.21 -passlib==1.7.1 -Pillow==8.3.2 ; python_version <= '3.7' and sys_platform != 'win32' # official 5.4.1 -Pillow==8.3.2 ; python_version > '3.7' # official 8.1.1 -polib==1.1.0 -psutil==5.6.6 -psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8' -psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8' # official 2.8.5 -pydot==1.4.1 -python-ldap==3.1.0; sys_platform != 'win32' -PyPDF2==1.26.0 -pyserial==3.4 -python-dateutil==2.7.3 -pytz==2024.1 -pyusb==1.0.2 -qrcode==6.1 -reportlab==3.6.9 -requests==2.25.1 # official 2.21.0 -zeep==3.2.0 -python-stdnum==1.13 # official 1.8 -vobject==0.9.6.1 -Werkzeug==0.16.1 ; python_version <= '3.9' -Werkzeug==2.0.3 ; python_version > '3.9' # (Jammy) -XlsxWriter==1.1.2 -xlwt==1.3.* -xlrd==1.1.0; python_version < '3.8' -xlrd==1.2.0; python_version >= '3.8' -pypiwin32 ; sys_platform == 'win32' -pyOpenSSL==22.0.0 - -# See https://github.com/pypa/setuptools/issues/2787#issuecomment-922781810 -setuptools<58 - -# Not part of official requirements, but used by some addons -# colorama==0.3.9 -gdata==2.0.18 -html5lib==1.0.1 -odfpy==1.4.1 -pyinotify==0.9.6 -simplejson==3.17.0 -urllib3==1.26.7 - -# Migration tools -marabunta==0.12.0 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==7.4.4 -pluggy -coverage -pytest-odoo>=0.4.7 -pytest-cov>=2.10.0 -watchdog - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -future==0.16.0 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pbr==4.0.4 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.5.0 -pyflakes==2.1.1 -unicodecsv==0.14.1 -wrapt==1.10.11 diff --git a/14.0-bullseye/extra_requirements.txt b/14.0-bullseye/extra_requirements.txt deleted file mode 100644 index 7b79aad5..00000000 --- a/14.0-bullseye/extra_requirements.txt +++ /dev/null @@ -1,46 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -cffi==1.15.0 -cryptography==2.3.0 -dateparser==0.7.0 -idna==2.7 -jmespath==0.9.3 -multidict==4.3.1 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -tzlocal==1.5.1 -Unidecode==1.0.22 -yarl==1.2.6 diff --git a/14.0-bullseye/src_requirements.txt b/14.0-bullseye/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/14.0-bullseye/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/14.0-bullseye/templates/odoo.cfg.tmpl b/14.0-bullseye/templates/odoo.cfg.tmpl deleted file mode 100644 index ba29413a..00000000 --- a/14.0-bullseye/templates/odoo.cfg.tmpl +++ /dev/null @@ -1,51 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -db_sslmode = {{ default .Env.DB_SSLMODE "prefer" }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -limit_time_real_cron = {{ default .Env.LIMIT_TIME_REAL_CRON "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }} -; db_sslmode = -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; http_port = 8069 -; http_enable = True -; http_interface = -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/14.0/Dockerfile b/14.0/Dockerfile index d162163f..3482ac3a 100644 --- a/14.0/Dockerfile +++ b/14.0/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:buster +FROM python:3.9-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -16,7 +16,6 @@ ENV LANG=C.UTF-8 \ ENV BUILD_PACKAGE \ build-essential \ gcc \ - python3.7-dev \ libevent-dev \ libfreetype6-dev \ libxml2-dev \ @@ -31,13 +30,13 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf RUN set -x; \ - sh -c /install/package_odoo_13.0_14.0.sh \ + sh -c /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ && /install/kwkhtml_client_force_python3.sh \ && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ + && python3 -m pip install --force-reinstall pip \ && pip install -r /odoo/base_requirements.txt --ignore-installed \ && /install/purge_dev_package_and_cache.sh diff --git a/14.0/base_requirements.txt b/14.0/base_requirements.txt index 0ca30282..1b9316bf 100644 --- a/14.0/base_requirements.txt +++ b/14.0/base_requirements.txt @@ -8,37 +8,30 @@ chardet==3.0.4 decorator==4.3.0 docutils==0.14 ebaysdk==2.1.5 -freezegun==0.3.11; python_version < '3.8' -# freezegun==0.3.15; python_version >= '3.8' +freezegun==0.3.15; python_version >= '3.8' # gevent==1.1.2 ; sys_platform != 'win32' and python_version < '3.7' -gevent==1.5.0 ; python_version == '3.7' -# gevent==20.9.0 ; python_version >= '3.8' -# gevent==1.4.0 ; sys_platform == 'win32' and python_version < '3.7' -# greenlet==0.4.10 ; python_version < '3.7' -greenlet==0.4.15 ; python_version == '3.7' -# greenlet==0.4.17 ; python_version > '3.7' +gevent==22.10.2 ; python_version >= '3.8' +greenlet==2.0.2 ; python_version > '3.7' html2text==2018.1.9 idna==2.6 Jinja2==2.11.3; python_version < '3.8' # official 2.10.1 # bullseye version, focal patched 2.10 -# Jinja2==2.11.3; python_version >= '3.8' # official 2.11.2 +Jinja2==2.11.3; python_version >= '3.8' # official 2.11.2 libsass==0.17.0 # lxml==3.7.1 ; sys_platform != 'win32' and python_version < '3.7' -lxml==4.6.3 ; sys_platform != 'win32' and python_version == '3.7' # official 4.3.2 -# lxml==4.6.3 ; sys_platform != 'win32' and python_version > '3.7' # official 4.6.1 +lxml_html_clean +lxml==4.8.0 # lxml ; sys_platform == 'win32' Mako==1.0.7 MarkupSafe==1.1.0 num2words==0.5.6 ofxparse==0.19 passlib==1.7.1 -Pillow==8.3.2 ; python_version <= '3.7' and sys_platform != 'win32' # official 5.4.1 # Pillow==6.1.0 ; python_version <= '3.7' and sys_platform == 'win32' -# Pillow==8.3.2 ; python_version > '3.7' # official 8.1.1 +Pillow==8.3.2 ; python_version > '3.7' # official 8.1.1 polib==1.1.0 psutil==5.6.6 -psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8' -# psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8' # official 2.8.5 +psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8' # official 2.8.5 pydot==1.4.1 python-ldap==3.1.0; sys_platform != 'win32' PyPDF2==1.26.0 @@ -55,8 +48,7 @@ vobject==0.9.6.1 Werkzeug==0.16.1 XlsxWriter==1.1.2 xlwt==1.3.* -xlrd==1.1.0; python_version < '3.8' -# xlrd==1.2.0; python_version >= '3.8' +xlrd==1.2.0; python_version >= '3.8' # pypiwin32 ; sys_platform == 'win32' # Not part of official requirements, but used by some addons diff --git a/14.0/extra_requirements.txt b/14.0/extra_requirements.txt index 81a7e3bf..ae5d56a3 100644 --- a/14.0/extra_requirements.txt +++ b/14.0/extra_requirements.txt @@ -28,7 +28,6 @@ asn1crypto==0.24.0 bcrypt==3.1.4 botocore==1.10.40 cffi==1.11.5 -cryptography==2.3.0 dateparser==0.7.0 idna==2.7 jmespath==0.9.3 diff --git a/15.0/Dockerfile b/15.0/Dockerfile index c71623f5..082202e9 100644 --- a/15.0/Dockerfile +++ b/15.0/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:bullseye +FROM python:3.12-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -16,7 +16,6 @@ ENV LANG=C.UTF-8 \ ENV BUILD_PACKAGE \ build-essential \ gcc \ - python3.9-dev \ libevent-dev \ libfreetype6-dev \ libxml2-dev \ @@ -32,13 +31,13 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf # wkhtml-buster is kept as in official image, no deb available for bullseye RUN set -x; \ - sh -c /install/package_odoo-bullseye.sh \ + sh -c /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ && /install/kwkhtml_client_force_python3.sh \ && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ + && python3 -m pip install --force-reinstall pip \ && pip install -r /odoo/base_requirements.txt --ignore-installed \ && /install/purge_dev_package_and_cache.sh diff --git a/15.0/base_requirements.txt b/15.0/base_requirements.txt index f5b40a97..c412f09e 100644 --- a/15.0/base_requirements.txt +++ b/15.0/base_requirements.txt @@ -1,68 +1,53 @@ -# Odoo dependencies -Babel==2.6.0 +Babel==2.9.1 # min version = 2.6.0 (Focal with security backports) chardet==3.0.4 +cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes decorator==4.4.2 docutils==0.16 ebaysdk==2.1.5 -freezegun==0.3.11; python_version < '3.8' freezegun==0.3.15; python_version >= '3.8' -gevent==1.5.0 ; python_version == '3.7' -gevent==20.9.0 ; python_version > '3.7' and python_version <= '3.9' -gevent==21.8.0 ; python_version > '3.9' # (Jammy) -greenlet==0.4.15 ; python_version < '3.7' -greenlet==0.4.15 ; python_version == '3.7' -greenlet==0.4.17 ; python_version > '3.7' -greenlet==1.1.2 ; python_version > '3.9' # (Jammy) -html2text==2018.1.9 -idna==2.8 -Jinja2==2.11.3; python_version >= '3.8' # official 2.11.2 -libsass==0.18.0 -lxml==4.6.5 # min version = 4.5.0 (Focal - with security backports) -Mako==1.0.7 # XXX no longer in std requirements.txt -MarkupSafe==1.1.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.0 +Jinja2==3.1.4 ; python_version >= '3.12' # (Noble) compatibility with markupsafe +libsass==0.22.0 ; python_version >= '3.12' # (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.6 -ofxparse==0.19; python_version <= '3.9' ofxparse==0.21; python_version > '3.9' # (Jammy) -passlib==1.7.3 -Pillow==9.0.1 # min version = 7.0.0 (Focal with security backports) +Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package polib==1.1.0 -psutil==5.6.7 -psycopg2==2.7.7; sys_platform != 'win32' and python_version < '3.8' -psycopg2==2.8.6; sys_platform == 'win32' or python_version >= '3.8' # official 2.8.5 +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.1 -python-ldap==3.4.0; sys_platform != 'win32' -PyPDF2==1.26.0 +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.12' # (Noble) Compatibility with cryptography pyserial==3.4 python-dateutil==2.7.3 -pytz==2024.1 -pyusb==1.0.2 +python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package +python-stdnum==1.13 +pytz # no version pinning to avoid OS perturbations +pyusb==1.2.1 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package qrcode==6.1 -reportlab==3.6.9 -requests==2.25.1 -zeep==3.4.0 -python-stdnum==1.18 -urllib3==1.26.7 +reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +requests==2.32.0 ; python_version >= '3.12' # (Noble) Compatibility with i +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.2.2 ; python_version >= '3.12' # (Noble) Compatibility with cryptography vobject==0.9.6.1 -Werkzeug==0.16.1 ; python_version <= '3.9' -Werkzeug==2.0.2 ; python_version > '3.9' # (Jammy) -XlsxWriter==1.1.2 -xlwt==1.3.* -xlrd==1.1.0; python_version < '3.8' +Werkzeug==2.1.1 ; python_version > '3.9' # (Jammy) xlrd==1.2.0; python_version >= '3.8' -pypiwin32 ; sys_platform == 'win32' -pyopenssl==22.1.0 +XlsxWriter==1.1.2 +xlwt==1.3.0 +zeep==3.4.0 -# See https://github.com/pypa/setuptools/issues/2787#issuecomment-922781810 -setuptools<58 # Not part of official requirements, but used by some addons # colorama==0.3.9 gdata==2.0.18 -html5lib==1.0.1 +html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 -simplejson==3.17.0 - +simplejson==3.19.3 # Migration tools marabunta==0.12.0 @@ -71,8 +56,9 @@ marabunta==0.12.0 # test / lint # those libs and their dependencies are unpinned # to always test with the last version of it + flake8 -pytest==7.4.4 +pytest==8.3.2 pluggy coverage pytest-odoo>=0.4.7 @@ -80,20 +66,18 @@ pytest-cov>=2.10.0 watchdog # Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -cryptography>=38.0.0,<39 -future==0.16.0 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pbr==4.0.4 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.5.0 -pyflakes==2.1.1 +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.5.0 +pbr==6.1.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.10.11 +wrapt==1.16.0 diff --git a/15.0/extra_requirements.txt b/15.0/extra_requirements.txt index 77ebf43b..e753fc32 100644 --- a/15.0/extra_requirements.txt +++ b/15.0/extra_requirements.txt @@ -1,45 +1,44 @@ # Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 +algoliasearch==4.1.1 +Adyen==12.3.0 +cachetools==5.5.0 +cerberus==1.3.5 +boto3==1.35.6 +factur-x==3.1 +invoice2data==0.4.5 +mailjet-rest==1.3.4 +openupgradelib==3.6.1 +paramiko==3.4.1 parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==22.1.0 -pyquerystring==1.0.2 +paypalrestsdk==1.13.3 +phonenumbers==8.13.44 +pyquerystring==1.1 +pyOpenSSL==24.2.1 +pyquerystring==1.1 pysimplesoap==1.16.2 -requests-mock==1.5.0 +requests-mock==1.12.1 slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 +stripe==10.8.0 +unidecode==1.3.8 +vcrpy==6.0.1 # Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -cffi==1.15.0 -cryptography>=38.0.0,<39 -dateparser==0.7.0 -idna==2.7 -jmespath==0.9.3 -multidict==4.3.1 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -tzlocal==1.5.1 -Unidecode==1.0.22 -yarl==1.2.6 +asn1crypto==1.5.1 +bcrypt==4.2.0 +botocore==1.35.6 +cffi==1.17.0 +dateparser==1.2.0 +idna==3.8 +jmespath==1.0.1 +multidict==6.0.5 +pdfminer.six==20240706 +pyasn1==0.6.0 +pycparser==2.22 +pycryptodome==3.20.0 +PyNaCl==1.5.0 +pytesseract==0.3.13 +regex==2024.7.24 +s3transfer==0.10.2 +tzlocal==5.2 +Unidecode==1.3.8 +yarl==1.9.4 diff --git a/16.0/Dockerfile b/16.0/Dockerfile index b7ec8519..78fb4e87 100644 --- a/16.0/Dockerfile +++ b/16.0/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10-bullseye +FROM python:3.12-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -31,13 +31,13 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf # wkhtml-buster is kept as in official image, no deb available for bullseye RUN set -x; \ - sh -c /install/package_odoo-bullseye.sh \ + sh -c /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ && /install/kwkhtml_client_force_python3.sh \ && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ + && python3 -m pip install --force-reinstall pip \ && pip install -r /odoo/base_requirements.txt --ignore-installed \ && /install/purge_dev_package_and_cache.sh diff --git a/16.0/base_requirements.txt b/16.0/base_requirements.txt index 3e76fa38..b9499c25 100644 --- a/16.0/base_requirements.txt +++ b/16.0/base_requirements.txt @@ -1,46 +1,49 @@ -# Odoo dependencies -Babel==2.11.0 -chardet==5.0.0 -decorator==5.1.1 -docutils==0.19 -ebaysdk==2.2.0 -freezegun==1.2.2 -gevent==22.10.2 -greenlet==2.0.2 -html2text==2020.1.16 -idna==3.4 -Jinja2==3.1.2 -libsass==0.21.0 -lxml==4.9.2 -Mako==1.2.3 # XXX no longer in the official requirements.txt -MarkupSafe==2.1.2 -num2words==0.5.12 -ofxparse==0.21 -passlib==1.7.4 -Pillow==9.4.0 -polib==1.1.1 -psutil==5.9.4 -psycopg2==2.9.5 +# The officially supported versions of the following packages are their +# python3-* equivalent distributed in Ubuntu 22.04 and Debian 11 +Babel==2.9.1 # min version = 2.6.0 (Focal with security backports) +chardet==4.0.0 +cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes +decorator==4.4.2 +docutils==0.16 +ebaysdk==2.1.5 +freezegun==0.3.15; python_version >= '3.8' +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.0 +Jinja2==3.1.4 ; python_version >= '3.12' # (Noble) compatibility with markupsafe +libsass==0.22.0 ; python_version >= '3.12' # (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.9 +ofxparse==0.21; python_version > '3.9' # (Jammy) +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.0 +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 -python-ldap==3.4.3 -PyPDF2==1.27.12 +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 -pytz==2024.1 -pyusb==1.2.1 -qrcode==7.3.1 -reportlab==3.6.12 -requests==2.28.1 -zeep==4.2.0 -python-stdnum==1.17 +python-dateutil==2.8.1 +python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package +python-stdnum==1.16 +pytz # no version pinning to avoid OS perturbations +pyusb==1.2.1 ; python_version > '3.10' +qrcode==6.1 +reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package +requests==2.32.0 ; python_version >= '3.12' # (Noble) Compatibility with i +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.2.2 ; python_version >= '3.12' # (Noble) Compatibility with cryptography vobject==0.9.6.1 -Werkzeug==2.0.3 -XlsxWriter==3.0.3 +Werkzeug==2.1.1 ; python_version > '3.9' # (Jammy) +xlrd==1.2.0; python_version >= '3.8' +XlsxWriter==1.1.2 xlwt==1.3.0 -xlrd==1.2.0 -pyOpenSSL==22.1.0 +zeep==4.0.0 -setuptools<58 +setuptools==73.0.1 # Not part of official requirements, but used by some addons # colorama==0.3.9 @@ -48,8 +51,7 @@ gdata==2.0.18 html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 -simplejson==3.17.6 -urllib3==1.26.7 +simplejson==3.19.3 # Migration tools marabunta==0.12.0 @@ -59,7 +61,7 @@ marabunta==0.12.0 # those libs and their dependencies are unpinned # to always test with the last version of it flake8 -pytest==7.4.4 +pytest==8.3.2 pluggy coverage pytest-odoo>=0.4.7 @@ -67,19 +69,18 @@ pytest-cov>=2.10.0 watchdog # Library dependency -argh==0.26.2 +argh==0.31.3 atomicwrites==1.4.1 -attrs==22.1.0 -beautifulsoup4==4.11.1 -future==0.18.2 +attrs==24.2.0 +beautifulsoup4==4.12.3 +future==1.0.0 mccabe==0.7.0 -more-itertools==9.0.0 -pathtools==0.1.2 -pbr==5.11.0 -pexpect==4.8.0 +more-itertools==10.5.0 +pbr==6.1.0 +pexpect==4.9.0 ptyprocess==0.7.0 py==1.11.0 -pycodestyle==2.9.1 -pyflakes==2.5.0 +pycodestyle==2.12.1 +pyflakes==3.2.0 unicodecsv==0.14.1 -wrapt==1.14.1 +wrapt==1.16.0 diff --git a/16.0/extra_requirements.txt b/16.0/extra_requirements.txt index 5f8e23e0..e753fc32 100644 --- a/16.0/extra_requirements.txt +++ b/16.0/extra_requirements.txt @@ -1,45 +1,44 @@ # Extra python dependencies -algoliasearch==2.6.2 -Adyen==7.1.1 -cachetools==5.2.0 -cerberus==1.3.4 -boto3==1.26.7 -factur-x==2.3 -invoice2data==0.3.6 +algoliasearch==4.1.1 +Adyen==12.3.0 +cachetools==5.5.0 +cerberus==1.3.5 +boto3==1.35.6 +factur-x==3.1 +invoice2data==0.4.5 mailjet-rest==1.3.4 -openupgradelib==3.3.4 -paramiko==2.12.0 +openupgradelib==3.6.1 +paramiko==3.4.1 parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.13.0 +paypalrestsdk==1.13.3 +phonenumbers==8.13.44 pyquerystring==1.1 -pyOpenSSL==22.1.0 +pyOpenSSL==24.2.1 pyquerystring==1.1 pysimplesoap==1.16.2 -requests-mock==1.10.0 +requests-mock==1.12.1 slugify==0.0.1 -stripe==4.2.0 -unidecode==1.3.6 -vcrpy==4.2.1 +stripe==10.8.0 +unidecode==1.3.8 +vcrpy==6.0.1 # Library dependency asn1crypto==1.5.1 -bcrypt==4.0.1 -botocore==1.29.7 -cffi==1.15.1 -cryptography==38.0.3 -dateparser==1.1.3 -idna==3.4 +bcrypt==4.2.0 +botocore==1.35.6 +cffi==1.17.0 +dateparser==1.2.0 +idna==3.8 jmespath==1.0.1 -multidict==6.0.2 -pdfminer.six==20221105 -pyasn1==0.4.8 -pycparser==2.21 -pycryptodome==3.15.0 +multidict==6.0.5 +pdfminer.six==20240706 +pyasn1==0.6.0 +pycparser==2.22 +pycryptodome==3.20.0 PyNaCl==1.5.0 -pytesseract==0.3.10 -regex==2022.3.2 -s3transfer==0.6.0 -tzlocal==4.2 -Unidecode==1.3.6 -yarl==1.8.1 +pytesseract==0.3.13 +regex==2024.7.24 +s3transfer==0.10.2 +tzlocal==5.2 +Unidecode==1.3.8 +yarl==1.9.4 diff --git a/17.0/Dockerfile b/17.0/Dockerfile index 7b3a034b..820cdd22 100644 --- a/17.0/Dockerfile +++ b/17.0/Dockerfile @@ -1,4 +1,4 @@ -FROM python:3.10-bullseye +FROM python:3.12-slim-bookworm MAINTAINER Camptocamp # create the working directory and a place to set the logs (if wanted) @@ -31,13 +31,13 @@ ENV BUILD_PACKAGE \ # Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf # wkhtml-buster is kept as in official image, no deb available for bullseye RUN set -x; \ - sh -c /install/package_odoo-bullseye.sh \ + sh -c /install/package_odoo.sh \ && /install/setup-pip.sh \ && /install/postgres.sh \ && /install/kwkhtml_client.sh \ && /install/kwkhtml_client_force_python3.sh \ && /install/dev_package.sh \ - && python3 -m pip install --force-reinstall pip "setuptools<58" \ + && python3 -m pip install --force-reinstall pip \ && pip install -r /odoo/base_requirements.txt --ignore-installed \ && /install/purge_dev_package_and_cache.sh diff --git a/17.0/base_requirements.txt b/17.0/base_requirements.txt index f61d9f15..f1d4ade5 100644 --- a/17.0/base_requirements.txt +++ b/17.0/base_requirements.txt @@ -1,49 +1,48 @@ -# Odoo dependencies -Babel==2.11.0 -chardet==5.0.0 -decorator==5.1.1 -docutils==0.19 -ebaysdk==2.2.0 -freezegun==1.2.2 +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==22.10.2 -greenlet==2.0.2 -html2text==2020.1.16 -idna==3.4 -Jinja2==3.1.2 -libsass==0.21.0 -lxml==4.9.2 -Mako==1.2.3 # XXX no longer in the official requirements.txt -MarkupSafe==2.1.2 -num2words==0.5.12 +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.0 +Jinja2==3.1.4 ; python_version >= '3.12' # (Noble) compatibility with markupsafe +libsass==0.22.0 ; python_version >= '3.12' # (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 -Pillow==9.4.0 -polib==1.1.1 -psutil==5.9.4 -psycopg2==2.9.5 +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.0 +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 -python-ldap==3.4.3 -PyPDF2==1.27.12 +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 -pytz==2024.1 +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.3.1 -reportlab==3.6.12 -requests==2.28.1 -rjsmin==1.1.0 -urllib3==1.26.7 -zeep==4.2.0 -python-stdnum==1.17 +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' +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.2.2 ; python_version >= '3.12' # (Noble) Compatibility with cryptography vobject==0.9.6.1 -Werkzeug==2.0.3 -XlsxWriter==3.0.3 +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 -xlrd==1.2.0 -pyOpenSSL==22.1.0 - -setuptools<58 +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 @@ -51,7 +50,7 @@ gdata==2.0.18 html5lib==1.1 odfpy==1.4.1 pyinotify==0.9.6 -simplejson==3.17.6 +simplejson==3.19.3 # Migration tools @@ -62,7 +61,7 @@ marabunta==0.12.0 # those libs and their dependencies are unpinned # to always test with the last version of it flake8 -pytest==7.4.4 +pytest==8.3.2 pluggy coverage pytest-odoo>=0.4.7 @@ -70,19 +69,18 @@ pytest-cov>=2.10.0 watchdog # Library dependency -argh==0.26.2 +argh==0.31.3 atomicwrites==1.4.1 -attrs==22.1.0 -beautifulsoup4==4.11.1 -future==0.18.2 +attrs==24.2.0 +beautifulsoup4==4.12.3 +future==1.0.0 mccabe==0.7.0 -more-itertools==9.0.0 -pathtools==0.1.2 -pbr==5.11.0 -pexpect==4.8.0 +more-itertools==10.4.0 +pbr==6.0.0 +pexpect==4.9.0 ptyprocess==0.7.0 py==1.11.0 -pycodestyle==2.9.1 -pyflakes==2.5.0 +pycodestyle==2.12.1 +pyflakes==3.2.0 unicodecsv==0.14.1 -wrapt==1.14.1 +wrapt==1.16.0 diff --git a/17.0/extra_requirements.txt b/17.0/extra_requirements.txt index 5f8e23e0..619600eb 100644 --- a/17.0/extra_requirements.txt +++ b/17.0/extra_requirements.txt @@ -1,45 +1,45 @@ # Extra python dependencies -algoliasearch==2.6.2 -Adyen==7.1.1 -cachetools==5.2.0 -cerberus==1.3.4 -boto3==1.26.7 -factur-x==2.3 -invoice2data==0.3.6 +algoliasearch==4.1.1 +Adyen==12.3.0 +cachetools==5.5.0 +cerberus==1.3.5 +boto3==1.35.6 +factur-x==3.1 +invoice2data==0.4.5 mailjet-rest==1.3.4 -openupgradelib==3.3.4 -paramiko==2.12.0 +openupgradelib==3.6.1 +paramiko==3.4.1 parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.13.0 +paypalrestsdk==1.13.3 +phonenumbers==8.13.44 pyquerystring==1.1 -pyOpenSSL==22.1.0 +pyOpenSSL==24.2.1 pyquerystring==1.1 pysimplesoap==1.16.2 -requests-mock==1.10.0 +requests-mock==1.12.1 slugify==0.0.1 -stripe==4.2.0 -unidecode==1.3.6 -vcrpy==4.2.1 +stripe==10.8.0 +unidecode==1.3.8 +vcrpy==6.0.1 # Library dependency asn1crypto==1.5.1 -bcrypt==4.0.1 -botocore==1.29.7 -cffi==1.15.1 -cryptography==38.0.3 -dateparser==1.1.3 -idna==3.4 +bcrypt==4.2.0 +botocore==1.35.6 +cffi==1.17.0 +cryptography==43.0.0 +dateparser==1.2.0 +idna==3.8 jmespath==1.0.1 -multidict==6.0.2 -pdfminer.six==20221105 -pyasn1==0.4.8 -pycparser==2.21 -pycryptodome==3.15.0 +multidict==6.0.5 +pdfminer.six==20240706 +pyasn1==0.6.0 +pycparser==2.22 +pycryptodome==3.20.0 PyNaCl==1.5.0 -pytesseract==0.3.10 -regex==2022.3.2 -s3transfer==0.6.0 -tzlocal==4.2 -Unidecode==1.3.6 -yarl==1.8.1 +pytesseract==0.3.13 +regex==2024.7.24 +s3transfer==0.10.2 +tzlocal==5.2 +Unidecode==1.3.8 +yarl==1.9.4 diff --git a/7.0/Dockerfile b/7.0/Dockerfile deleted file mode 100644 index fd63525a..00000000 --- a/7.0/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -FROM debian:jessie -MAINTAINER Camptocamp - -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Set Locale it needs to be present when installing python packages. -# Otherwise it can lead to issues. eg. when reading the setup.cfg -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - python-dev \ - libffi-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libcups2-dev \ - zlib1g-dev \ - libfreetype6-dev \ - git - -ENV PURGE_PACKAGE npm - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - /install/package_odoo_9.0_10.0.sh \ - && /install/disable_dst_root_cert-jessie.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/dev_package.sh \ - && /install/kwkhtml_client.sh \ - && pip install -U "pip<21.0" "setuptools<45" \ - && pip install -r /odoo/base_requirements.txt \ - && /install/purge_dev_package_and_cache.sh - -# grab gosu for easy step-down from root and dockerize to generate template and -# wait on postgres -RUN /install/gosu.sh && /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo-bin -COPY ./bin-compat /odoo-bin-compat -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d -COPY ./start-entrypoint.d /start-entrypoint.d -COPY ./MANIFEST.in /odoo -# Place coveragerc in workdir where coverage will be launched from -COPY ./.coveragerc / - -VOLUME ["/data/odoo", "/var/log/odoo"] - -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=7.0 \ - PATH=/odoo-bin:/odoo-bin-compat:$PATH \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/etc/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/7.0/MANIFEST.in b/7.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/7.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/7.0/base_requirements.txt b/7.0/base_requirements.txt deleted file mode 100644 index 6dd1b29c..00000000 --- a/7.0/base_requirements.txt +++ /dev/null @@ -1,83 +0,0 @@ -# Odoo dependencies -# python_version = 2.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -Babel==1.3 -Jinja2==2.10.1 -Mako==1.0.0 -MarkupSafe==0.23 -Pillow==3.4.2 -Python-Chart==1.39 -PyYAML==4.2b1 -Werkzeug==0.9.6 -argparse==1.2.1 -decorator==3.4.0 -docutils==0.12 -feedparser==5.1.3 -gdata==2.0.18 -gevent==1.0.2 -greenlet==0.4.7 -jcconv==0.2.3 -lxml==3.3.5 -mock==1.0.1 -passlib==1.6.2 -psutil==5.7.0 -psycogreen==1.0 -psycopg2==2.7.1 -pyPdf==1.13 -pycups==1.9.73 -pydot==1.0.2 -pyparsing==1.5.7 -pyserial==2.7 -python-dateutil==1.5 -python-ldap==2.4.15 -python-openid==2.2.5 -pytz==2014.4 -pyusb==1.0.0b1 -qrcode==5.0.1 -reportlab==3.1.44 -requests==2.20.0 -simplejson==3.5.3 -six==1.10.0 -unittest2==0.5.1 -vatnumber==1.2 -vobject==0.6.6 -wsgiref==0.1.2 -xlwt==0.7.5 - -# Migration tools -ruamel.yaml==0.16.13 -ruamel.yaml.clib==0.2.2 -marabunta==0.10.6 -ERPpeek==1.7.1 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==4.6 -pytest-odoo -coverage==5.5 -watchdog==0.10.6 -pytest-cov==2.12.1 - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -configparser==3.5.0 -enum34==1.1.6 -funcsigs==1.0.2 -importlib-metadata==2.1.1 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.3.1 -pyflakes==1.6.0 -unicodecsv==0.14.1 -wrapt==1.10.11 -zipp==1.2.0 diff --git a/7.0/bin-compat/anthem b/7.0/bin-compat/anthem deleted file mode 100755 index 3775b92a..00000000 --- a/7.0/bin-compat/anthem +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -# "Hack" to avoid crashing tests on legacy Odoo versions - -set -e -echo "WARNING! Legacy project => Anthem will not do anything" -exit 0 diff --git a/7.0/bin-compat/odoo b/7.0/bin-compat/odoo deleted file mode 100755 index 77e50731..00000000 --- a/7.0/bin-compat/odoo +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Compatibility with Odoo 10 -# where the 'odoo.py' command is renamed to 'odoo'. -# -# All the local scripts use 'odoo' so we can -# be compatible with both versions - -set -e - -exec openerp-server "$@" diff --git a/7.0/extra_requirements.txt b/7.0/extra_requirements.txt deleted file mode 100644 index e69de29b..00000000 diff --git a/7.0/src_requirements.txt b/7.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/7.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/7.0/templates/openerp.cfg.tmpl b/7.0/templates/openerp.cfg.tmpl deleted file mode 100644 index b21b811d..00000000 --- a/7.0/templates/openerp.cfg.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -; xmlrpc = True -; xmlrpc_interface = -; xmlrpc_port = 8069 -; xmlrpcs = True -; xmlrpcs_interface = -; xmlrpcs_port = 8071 -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/8.0/Dockerfile b/8.0/Dockerfile deleted file mode 100644 index 6b7dab0b..00000000 --- a/8.0/Dockerfile +++ /dev/null @@ -1,82 +0,0 @@ -FROM debian:jessie -MAINTAINER Camptocamp - -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Set Locale it needs to be present when installing python packages. -# Otherwise it can lead to issues. eg. when reading the setup.cfg -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - python-dev \ - libffi-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - libcups2-dev \ - zlib1g-dev \ - libfreetype6-dev \ - git - -ENV PURGE_PACKAGE npm - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - /install/package_odoo_9.0_10.0.sh \ - && /install/disable_dst_root_cert-jessie.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/dev_package.sh \ - && pip install -U "pip<21.0" "setuptools<45" \ - && pip install -r /odoo/base_requirements.txt \ - && /install/purge_dev_package_and_cache.sh - -# grab gosu for easy step-down from root and dockerize to generate template and -# wait on postgres -RUN /install/gosu.sh && /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo-bin -COPY ./bin-py2 /odoo-bin/ -COPY ./bin-compat /odoo-bin-compat -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d -COPY ./start-entrypoint.d /start-entrypoint.d -COPY ./MANIFEST.in /odoo -# Place coveragerc in workdir where coverage will be launched from -COPY ./.coveragerc / - -VOLUME ["/data/odoo", "/var/log/odoo"] - -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=8.0 \ - PATH=/odoo-bin:/odoo-bin-compat:$PATH \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/etc/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/8.0/MANIFEST.in b/8.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/8.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/8.0/base_requirements.txt b/8.0/base_requirements.txt deleted file mode 100644 index eb9f45c5..00000000 --- a/8.0/base_requirements.txt +++ /dev/null @@ -1,84 +0,0 @@ -# Odoo dependencies -# python_version = 2.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -Babel==1.3 -Jinja2==2.10.1 -Mako==1.0.0 -MarkupSafe==0.23 -Pillow==3.4.2 -Python-Chart==1.39 -PyYAML==4.2b1 -Werkzeug==0.9.6 -argparse==1.2.1 -decorator==3.4.0 -docutils==0.12 -feedparser==5.1.3 -gdata==2.0.18 -gevent==1.0.2 -greenlet==0.4.7 -jcconv==0.2.3 -lxml==3.3.5 -mock==1.0.1 -passlib==1.6.2 -psutil==5.7.0 -psycogreen==1.0 -psycopg2==2.7.1 -pyPdf==1.13 -pycups==1.9.73 -pydot==1.0.2 -pyparsing==2.1.0 -pyserial==2.7 -python-dateutil==1.5 -python-ldap==2.4.15 -python-openid==2.2.5 -pytz==2014.4 -pyusb==1.0.0b1 -qrcode==5.0.1 -reportlab==3.1.44 -requests==2.20.0 -simplejson==3.5.3 -six==1.10.0 -unittest2==0.5.1 -vatnumber==1.2 -vobject==0.6.6 -wsgiref==0.1.2 -xlwt==0.7.5 - -# Migration tools -ruamel.yaml==0.16.13 -ruamel.yaml.clib==0.2.2 -marabunta==0.10.6 -ERPpeek==1.7.1 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -flake8 -pytest==4.6 -pytest-odoo -coverage==5.5 -watchdog==0.10.6 -pytest-cov==2.12.1 - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -certifi==2020.4.5.1 -configparser==3.5.0 -enum34==1.1.6 -funcsigs==1.0.2 -importlib-metadata==2.1.1 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.3.1 -pyflakes==1.6.0 -unicodecsv==0.14.1 -wrapt==1.10.11 -zipp==1.2.0 diff --git a/8.0/bin-compat/anthem b/8.0/bin-compat/anthem deleted file mode 100755 index 3775b92a..00000000 --- a/8.0/bin-compat/anthem +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -# "Hack" to avoid crashing tests on legacy Odoo versions - -set -e -echo "WARNING! Legacy project => Anthem will not do anything" -exit 0 diff --git a/8.0/bin-compat/odoo b/8.0/bin-compat/odoo deleted file mode 100755 index 983037ce..00000000 --- a/8.0/bin-compat/odoo +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Compatibility with Odoo 10 -# where the 'odoo.py' command is renamed to 'odoo'. -# -# All the local scripts use 'odoo' so we can -# be compatible with both versions - -set -e - -exec odoo.py "$@" diff --git a/8.0/extra_requirements.txt b/8.0/extra_requirements.txt deleted file mode 100644 index e2442655..00000000 --- a/8.0/extra_requirements.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -Cerberus==1.2 -certifi==2018.4.16 -cffi==1.11.5 -contextlib2==0.5.5 -cryptography==2.3.0 -dateparser==0.7.0 -futures==3.2.0 -idna==2.7 -ipaddress==1.0.22 -jmespath==0.9.3 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -PyPDF2==1.26.0 -PySimpleSOAP==1.16.2 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -suds-jurko==0.6 -tzlocal==1.5.1 -Unidecode==1.0.22 diff --git a/8.0/src_requirements.txt b/8.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/8.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/8.0/templates/openerp.cfg.tmpl b/8.0/templates/openerp.cfg.tmpl deleted file mode 100644 index b21b811d..00000000 --- a/8.0/templates/openerp.cfg.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -; xmlrpc = True -; xmlrpc_interface = -; xmlrpc_port = 8069 -; xmlrpcs = True -; xmlrpcs_interface = -; xmlrpcs_port = 8071 -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/9.0/Dockerfile b/9.0/Dockerfile deleted file mode 100644 index ced82519..00000000 --- a/9.0/Dockerfile +++ /dev/null @@ -1,81 +0,0 @@ -FROM debian:jessie -MAINTAINER Camptocamp - -# create the working directory and a place to set the logs (if wanted) -RUN mkdir -p /odoo /var/log/odoo - -COPY ./base_requirements.txt /odoo -COPY ./install /install - -# Set Locale it needs to be present when installing python packages. -# Otherwise it can lead to issues. eg. when reading the setup.cfg -ENV LANG=C.UTF-8 \ - LC_ALL=C.UTF-8 - -# build and dev packages -ENV BUILD_PACKAGE \ - build-essential \ - python-dev \ - libffi-dev \ - libfreetype6-dev \ - libxml2-dev \ - libxslt1-dev \ - libsasl2-dev \ - libldap2-dev \ - libssl-dev \ - libjpeg-dev \ - zlib1g-dev \ - libfreetype6-dev \ - git - -ENV PURGE_PACKAGE npm - -# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf -RUN set -x; \ - /install/package_odoo_9.0_10.0.sh \ - && /install/disable_dst_root_cert-jessie.sh \ - && /install/setup-pip.sh \ - && /install/postgres.sh \ - && /install/kwkhtml_client.sh \ - && /install/dev_package.sh \ - && pip install -U "pip<21.0" "setuptools<45" \ - && pip install -r /odoo/base_requirements.txt \ - && /install/purge_dev_package_and_cache.sh - -# grab gosu for easy step-down from root and dockerize to generate template and -# wait on postgres -RUN /install/gosu.sh && /install/dockerize.sh - -COPY ./src_requirements.txt /odoo -COPY ./bin /odoo-bin -COPY ./bin-py2 /odoo-bin/ -COPY ./bin-compat /odoo-bin-compat -COPY ./templates /templates -COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d -COPY ./start-entrypoint.d /start-entrypoint.d -COPY ./MANIFEST.in /odoo -# Place coveragerc in workdir where coverage will be launched from -COPY ./.coveragerc / - -VOLUME ["/data/odoo", "/var/log/odoo"] - -# Expose Odoo services -EXPOSE 8069 8072 - -ENV ODOO_VERSION=9.0 \ - PATH=/odoo-bin:/odoo-bin-compat:$PATH \ - DB_HOST=db \ - DB_PORT=5432 \ - DB_NAME=odoodb \ - DB_USER=odoo \ - DB_PASSWORD=odoo \ - ODOO_BASE_URL=http://localhost:8069 \ - ODOO_REPORT_URL=http://localhost:8069 \ - # the place where you put the data of your project (csv, ...) - ODOO_DATA_PATH=/odoo/data \ - DEMO=False \ - ADDONS_PATH=/odoo/local-src,/odoo/src/addons \ - OPENERP_SERVER=/etc/odoo.cfg - -ENTRYPOINT ["docker-entrypoint.sh"] -CMD ["odoo"] diff --git a/9.0/MANIFEST.in b/9.0/MANIFEST.in deleted file mode 100644 index 5dff9997..00000000 --- a/9.0/MANIFEST.in +++ /dev/null @@ -1 +0,0 @@ -recursive-include odoo/data * diff --git a/9.0/base_requirements.txt b/9.0/base_requirements.txt deleted file mode 100644 index 2da03d2a..00000000 --- a/9.0/base_requirements.txt +++ /dev/null @@ -1,93 +0,0 @@ -# Odoo dependencies -# python_version = 2.7 -# sys_platform != 'win32' -# this is a copy of Odoo dependencies with some bumped versions -Babel==2.3.4 -Jinja2==2.10.1 -Mako==1.0.4 -MarkupSafe==0.23 -Pillow==6.2.2 -Python-Chart==1.39 -PyYAML==4.2b4 -Werkzeug==0.16.0 -chardet==3.0.4 -colorama==0.3.9 -decorator==4.0.10 -docutils==0.12 -feedparser==5.2.1 -future==0.16.0 -gevent==1.1.2 -greenlet==0.4.10 -html2text==2018.1.9 -html5lib==1.0.1 -lxml==3.5.0 -mock==2.0.0 -odfpy==1.3.4 -ofxparse==0.16 -passlib==1.6.5 -psutil==5.7.0 -psycopg2==2.7.3.1 -pyPdf==1.13 -pyinotify==0.9.4 -pyparsing==2.1.10 -python-dateutil==2.5.3 -python-ldap==2.4.27 -python-openid==2.2.5 -python-stdnum==1.9 -pytz==2016.7 -reportlab==3.3.0 -requests==2.20.0 -roman==2.0.0 -simplejson==3.6.5 -six==1.10.0 -unittest2==1.1.0 -urllib3==1.24.2 -vatnumber==1.2 -vobject==0.9.3 -wsgiref==0.1.2 -XlsxWriter==0.9.3 -xlwt==1.1.2 -xlrd==1.0.0 -# version in debian has problems -pydot==1.2.3 -suds-jurko==0.6 - -# Migration tools -ruamel.yaml==0.16.13 -ruamel.yaml.clib==0.2.2 -marabunta==0.10.6 -anthem==0.13.0 - -# test / lint -# those libs and their dependencies are unpinned -# to always test with the last version of it -# DISCLAIMER: those are pinned to the last Python 2.7 compatible version -flake8==3.9.2 -pytest==4.6 -pytest-odoo -coverage==5.5 -watchdog==0.10.6 -pytest-cov==2.12.1 - -# Library dependency -argh==0.26.2 -atomicwrites==1.1.5 -attrs==18.1.0 -beautifulsoup4==4.6.0 -certifi==2020.4.5.1 -configparser==3.5.0 -enum34==1.1.6 -funcsigs==1.0.2 -importlib-metadata==2.1.1 -mccabe==0.6.1 -more-itertools==4.2.0 -pathtools==0.1.2 -pexpect==4.6.0 -ptyprocess==0.5.2 -py==1.5.3 -pycodestyle==2.3.1 -pyflakes==1.6.0 -unicodecsv==0.14.1 -wrapt==1.10.11 -zipp==1.2.0 -contextlib2==0.6.0 diff --git a/9.0/bin-compat/odoo b/9.0/bin-compat/odoo deleted file mode 100755 index 983037ce..00000000 --- a/9.0/bin-compat/odoo +++ /dev/null @@ -1,10 +0,0 @@ -#!/bin/bash -# Compatibility with Odoo 10 -# where the 'odoo.py' command is renamed to 'odoo'. -# -# All the local scripts use 'odoo' so we can -# be compatible with both versions - -set -e - -exec odoo.py "$@" diff --git a/9.0/extra_requirements.txt b/9.0/extra_requirements.txt deleted file mode 100644 index e2442655..00000000 --- a/9.0/extra_requirements.txt +++ /dev/null @@ -1,52 +0,0 @@ -# Extra python dependencies -algoliasearch==1.17.0 -Adyen==1.2.0 -cachetools==2.1.0 -cerberus==1.2 -boto3==1.7.40 -factur-x==0.3 -invoice2data==0.2.74 -magento==3.0 -mailjet-rest==1.3.0 -openupgradelib==1.3.2 -paramiko==2.4.2 -parse-accept-language==0.1.2 -paypalrestsdk==1.13.1 -phonenumbers==8.9.8 -pyquerystring==1.0.2 -pyOpenSSL==18.0.0 -pyquerystring==1.0.2 -pysimplesoap==1.16.2 -requests-mock==1.5.0 -slugify==0.0.1 -stripe==1.82.2 -unidecode==1.0.22 -vcrpy==1.12.0 - -# Library dependency -asn1crypto==0.24.0 -bcrypt==3.1.4 -botocore==1.10.40 -Cerberus==1.2 -certifi==2018.4.16 -cffi==1.11.5 -contextlib2==0.5.5 -cryptography==2.3.0 -dateparser==0.7.0 -futures==3.2.0 -idna==2.7 -ipaddress==1.0.22 -jmespath==0.9.3 -pdfminer.six==20170720 -pyasn1==0.4.3 -pycparser==2.18 -pycryptodome==3.6.6 -PyNaCl==1.2.1 -PyPDF2==1.26.0 -PySimpleSOAP==1.16.2 -pytesseract==0.2.2 -regex==2018.6.9 -s3transfer==0.1.13 -suds-jurko==0.6 -tzlocal==1.5.1 -Unidecode==1.0.22 diff --git a/9.0/src_requirements.txt b/9.0/src_requirements.txt deleted file mode 100644 index 69b456a7..00000000 --- a/9.0/src_requirements.txt +++ /dev/null @@ -1,8 +0,0 @@ -# Requirements for the project itself and for Odoo. -# When we install Odoo with -e, odoo.py is available in the PATH and -# 'openerp' in the PYTHONPATH -# -# They are installed only after all the project's files have been copied -# into the image (with ONBUILD) --e . --e src diff --git a/9.0/templates/openerp.cfg.tmpl b/9.0/templates/openerp.cfg.tmpl deleted file mode 100644 index b21b811d..00000000 --- a/9.0/templates/openerp.cfg.tmpl +++ /dev/null @@ -1,50 +0,0 @@ -[options] -addons_path = {{ .Env.ADDONS_PATH }} -data_dir = /data/odoo -auto_reload = False -db_host = {{ .Env.DB_HOST }} -db_name = {{ .Env.DB_NAME }} -db_user = {{ .Env.DB_USER }} -db_password = {{ .Env.DB_PASSWORD }} -dbfilter = ^{{ default .Env.DB_FILTER .Env.DB_NAME }}$ -list_db = {{ default .Env.LIST_DB "False" }} -admin_passwd = {{ default .Env.ADMIN_PASSWD "" }} -db_maxconn = {{ default .Env.DB_MAXCONN "64" }} -limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }} -limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }} -limit_request = {{ default .Env.LIMIT_REQUEST "8192" }} -limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }} -limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }} -log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }} -log_level = {{ default .Env.LOG_LEVEL "info" }} -max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }} -workers = {{ default .Env.WORKERS "4" }} -logfile = {{ default .Env.LOGFILE "None" }} -log_db = {{ default .Env.LOG_DB "False" }} -logrotate = True -syslog = {{ default .Env.SYSLOG "False" }} -running_env = {{ default .Env.RUNNING_ENV "dev" }} -without_demo = {{ default .Env.WITHOUT_DEMO "True" }} -; We can activate proxy_mode even if we are not behind a proxy, because -; it is used only if HTTP_X_FORWARDED_HOST is set in environ -proxy_mode = True -; csv_internal_sep = , -; db_template = template1 -; debug_mode = False -; email_from = False -; longpolling_port = 8072 -; osv_memory_age_limit = 1.0 -; osv_memory_count_limit = False -; smtp_password = False -; smtp_port = 25 -; smtp_server = localhost -; smtp_ssl = False -; smtp_user = False -; xmlrpc = True -; xmlrpc_interface = -; xmlrpc_port = 8069 -; xmlrpcs = True -; xmlrpcs_interface = -; xmlrpcs_port = 8071 -unaccent = {{ default .Env.UNACCENT "False" }} -{{ default .Env.ADDITIONAL_ODOO_RC "" }} diff --git a/Makefile b/Makefile index 91d70fb6..2d86eac7 100644 --- a/Makefile +++ b/Makefile @@ -2,56 +2,16 @@ ifndef VERSION $(error VERSION is not set) endif -ifeq ($(TARGET), GHCR) - NAME=ghcr.io/camptocamp/odoo-project -else - NAME=camptocamp/odoo-project -endif - -IMAGE=$(NAME):$(VERSION) -IMAGE_LATEST=$(IMAGE)-latest +IMAGE_LATEST=ci-4xx-latest:${VERSION} BUILD_TAG=$(IMAGE_LATEST) export all: build - -.PHONY: build -build: - bash build.sh - - -.PHONY: tag -tag: - docker tag $(BUILD_TAG) $(IMAGE)-$(TAG) - docker tag $(BUILD_TAG)-onbuild $(IMAGE)-$(TAG)-onbuild - docker tag $(BUILD_TAG)-batteries $(IMAGE)-$(TAG)-batteries - docker tag $(BUILD_TAG)-batteries-onbuild $(IMAGE)-$(TAG)-batteries-onbuild - - -.PHONY: push -push: - docker push $(IMAGE)-$(TAG) - docker push $(IMAGE)-$(TAG)-onbuild - docker push $(IMAGE)-$(TAG)-batteries - docker push $(IMAGE)-$(TAG)-batteries-onbuild - - -.PHONY: tag_latest_main -tag_latest_main: - docker tag $(BUILD_TAG) $(NAME):latest - docker tag $(BUILD_TAG)-onbuild $(NAME):latest-onbuild - docker tag $(BUILD_TAG)-batteries $(NAME):latest-batteries - docker tag $(BUILD_TAG)-batteries-onbuild $(NAME):latest-batteries-onbuild - - -.PHONY: push_latest_main -push_latest_main: - docker push $(NAME):latest - docker push $(NAME):latest-onbuild - docker push $(NAME):latest-batteries - docker push $(NAME):latest-batteries-onbuild +.PHONY: setup +setup: + bash setup.sh .PHONY: test diff --git a/bin-py2/list_dependencies.py b/bin-py2/list_dependencies.py deleted file mode 100755 index 10ffcee2..00000000 --- a/bin-py2/list_dependencies.py +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# Provide a list of module which are dependencies -# of local-src modules excluding local-src modules -# -# Arguments: -# list of module (coma separated), restrict list of -# dependencies to the dependencies of this list. -# -# Usage: -# ./odoo/bin/list_dependencies.py local_module1,local_module2 -import sys -import os -import ast - -BASE_DIR = os.getcwd() -LOCAL_SRC_DIR = os.path.join(BASE_DIR, 'odoo', 'local-src') - -dependencies = set() -local_modules = os.listdir(LOCAL_SRC_DIR) -if len(sys.argv) > 1: - modules = sys.argv[1].split(',') -else: - modules = local_modules -for mod in modules: - # read __manifest__ - manifest_path = os.path.join(LOCAL_SRC_DIR, mod, '__manifest__.py') - if not os.path.isfile(manifest_path): - continue - with open(manifest_path) as manifest: - data = ast.literal_eval(manifest.read()) - dependencies.update(data['depends']) - -# remove local-src from list of dependencies -dependencies = dependencies.difference(local_modules) -print(','.join(dependencies) or 'base') diff --git a/build.sh b/build.sh index 9a3ac7da..3a06857f 100755 --- a/build.sh +++ b/build.sh @@ -32,7 +32,6 @@ trap on_exit EXIT cp -r ${VERSION}/. ${TMP}/ cp -r bin/ ${TMP} -cp -r bin-py2/ ${TMP} cp -rT common/ ${TMP} cp ${TMP}/Dockerfile-onbuild ${TMP}/Dockerfile-batteries-onbuild sed -i "1i FROM ${BUILD_TAG}" ${TMP}/Dockerfile-onbuild diff --git a/example/odoo/Dockerfile b/example/odoo/Dockerfile index 2411abef..143c21b0 100644 --- a/example/odoo/Dockerfile +++ b/example/odoo/Dockerfile @@ -1,4 +1,4 @@ -FROM camptocamp/odoo-project:11.0-latest +FROM ci-latest:0.1 MAINTAINER Camptocamp # For installing odoo you have two possibility @@ -16,8 +16,9 @@ COPY ./setup.py /odoo/ COPY ./VERSION /odoo/ COPY ./migration.yml /odoo/ -RUN replace_dependencies.sh +USER root RUN pip install -e /odoo + RUN pip install -e /odoo/src # Project's specifics packages diff --git a/example/odoo/Dockerfile-onbuild b/example/odoo/Dockerfile-onbuild deleted file mode 100644 index acfaf009..00000000 --- a/example/odoo/Dockerfile-onbuild +++ /dev/null @@ -1,15 +0,0 @@ -FROM camptocamp/odoo-project:11.0-latest-onbuild -MAINTAINER Camptocamp - -# Project's specifics packages -RUN set -x; \ - apt-get update \ - && apt-get install -y --no-install-recommends \ - python3-shapely \ - && apt-get clean \ - && rm -rf /var/lib/apt/lists/* - -COPY ./requirements.txt /odoo/ -RUN cd /odoo && pip install -r requirements.txt - -ENV ADDONS_PATH=/odoo/local-src,/odoo/src/addons diff --git a/example/odoo/migration.yml b/example/odoo/migration.yml index 1a5239c4..d7f7d7c8 100644 --- a/example/odoo/migration.yml +++ b/example/odoo/migration.yml @@ -6,8 +6,6 @@ migration: operations: pre: - "sh -c 'psql -c \"CREATE EXTENSION pg_trgm;\"'" - post: - - anthem songs.install.base::main addons: upgrade: - sale diff --git a/example/test-compose.yml b/example/test-compose.yml index c5b782ca..c82a16e7 100644 --- a/example/test-compose.yml +++ b/example/test-compose.yml @@ -1,7 +1,7 @@ # Composition used to run automated tests on the images # Used by the Makefile at the repository's root -version: '2' +version: '3.8' services: odoo: @@ -20,6 +20,7 @@ services: - MARABUNTA_MODE=demo # could be 'full' for the db with all the data - KWKHTMLTOPDF_SERVER_URL=http://kwkhtmltopdf:8080 - ODOO_REPORT_URL=http://odoo:8069 + - MIGRATION_CONFIG_FILE=/odoo/migration.yml # cached database dumps config for `runmigration` and `runtests` - CREATE_DB_CACHE=false # set it to 'true' to create dumps - LOAD_DB_CACHE=true # by default will always search for existing dumps @@ -34,7 +35,7 @@ services: - MIG_LOAD_VERSION_CEIL= db: - image: postgres:12.0 + image: postgres:13.0 ports: - 5432 environment: diff --git a/install/package_odoo-bullseye.sh b/install/package_odoo.sh similarity index 100% rename from install/package_odoo-bullseye.sh rename to install/package_odoo.sh diff --git a/install/package_odoo_11.0_12.0.sh b/install/package_odoo_11.0_12.0.sh deleted file mode 100755 index 6b4b14b9..00000000 --- a/install/package_odoo_11.0_12.0.sh +++ /dev/null @@ -1,32 +0,0 @@ -#!/bin/bash -set -eo pipefail - -apt-get update -apt-get purge python2.7 python2.7-minimal -apt-get install -y --no-install-recommends \ - apt-transport-https \ - antiword \ - ca-certificates \ - curl \ - dirmngr \ - ghostscript \ - graphviz \ - gnupg2 \ - less \ - nano \ - node-clean-css \ - node-less \ - poppler-utils \ - python \ - python-libxslt1 \ - python-pip \ - python3-pip \ - python3-setuptools \ - python3-renderpm \ - python3-wheel \ - libssl1.0.2 \ - libxslt1.1 \ - xfonts-75dpi \ - xfonts-base \ - xz-utils \ - tcl expect diff --git a/install/package_odoo_12.0-buster.sh b/install/package_odoo_12.0-buster.sh deleted file mode 100755 index 493a4a95..00000000 --- a/install/package_odoo_12.0-buster.sh +++ /dev/null @@ -1,31 +0,0 @@ -#!/bin/bash -set -eo pipefail - -apt-get update -apt-get purge python2.7 python2.7-minimal -apt-get install -y --no-install-recommends \ - antiword \ - ca-certificates \ - curl \ - dirmngr \ - ghostscript \ - graphviz \ - gnupg2 \ - less \ - nano \ - node-clean-css \ - node-less \ - poppler-utils \ - python \ - python-libxslt1 \ - python-pip \ - python3-pip \ - python3-setuptools \ - python3-renderpm \ - python3-wheel \ - libxslt1.1 \ - xfonts-75dpi \ - xfonts-base \ - xz-utils \ - tcl expect - diff --git a/install/package_odoo_13.0_14.0.sh b/install/package_odoo_13.0_14.0.sh deleted file mode 100755 index 0f8f1841..00000000 --- a/install/package_odoo_13.0_14.0.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash -set -eo pipefail - -apt-get update -o Acquire::AllowInsecureRepositories=true -apt-get install -y --no-install-recommends \ - antiword \ - ca-certificates \ - curl \ - dirmngr \ - ghostscript \ - graphviz \ - gnupg2 \ - less \ - nano \ - node-clean-css \ - node-less \ - poppler-utils \ - python3 \ - python3-pip \ - python3-setuptools \ - python3-renderpm \ - python3-wheel \ - libxslt1.1 \ - xfonts-75dpi \ - xfonts-base \ - xz-utils \ - tcl expect diff --git a/install/package_odoo_9.0_10.0.sh b/install/package_odoo_9.0_10.0.sh deleted file mode 100755 index 71e4fd86..00000000 --- a/install/package_odoo_9.0_10.0.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash -set -eo pipefail - -apt-get update -# authentication error for libc-ares2 -apt-get install -y --force-yes --no-install-recommends libc-ares2 -apt-get install -y --no-install-recommends \ - antiword \ - apt-transport-https \ - ca-certificates \ - curl \ - ghostscript \ - graphviz \ - less \ - nano \ - node-clean-css \ - node-less \ - poppler-utils \ - python \ - python-libxslt1 \ - python-pip \ - xfonts-75dpi \ - xfonts-base \ - tcl expect diff --git a/install/postgres.sh b/install/postgres.sh index 34861f56..c7f3de73 100755 --- a/install/postgres.sh +++ b/install/postgres.sh @@ -12,10 +12,6 @@ fi APT_REPO="apt.postgresql.org" -if [ $OS_CODENAME = "jessie" ] || [ $OS_CODENAME = "stretch" ] -then - APT_REPO="apt-archive.postgresql.org" -fi echo "deb http://${APT_REPO}/pub/repos/apt/ ${OS_CODENAME}-pgdg main" > /etc/apt/sources.list.d/pgdg.list curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | apt-key add - diff --git a/setup.sh b/setup.sh new file mode 100644 index 00000000..0686e974 --- /dev/null +++ b/setup.sh @@ -0,0 +1,29 @@ +#!/bin/bash +set -euxo pipefail + +# +# Build the image +# +# Normally run by the Makefile: +# +# $ make VERSION=$VERSION build +# +# It expects the following variables to be set: +# +# * VERSION (9.0, 10.0, 11.0, ...) +# * BUILD_TAG (tag of the 'latest' image built) +# +if [ -z "$VERSION" ]; then + echo "VERSION environment variable is missing" + exit 1 +fi + +SRC=${SRC:=(mktemp -d)} +echo "Creating $SRC" + +cp -r ${VERSION}/. $SRC/ +cp -r bin/ $SRC +cp -rT common/ $SRC +cp -r install/ $SRC +cp -r start-entrypoint.d/ $SRC +cp -r before-migrate-entrypoint.d/ $SRC diff --git a/test.sh b/test.sh index fe33cb35..f95d4d6a 100755 --- a/test.sh +++ b/test.sh @@ -16,6 +16,7 @@ set -Eeuo pipefail # * IMAGE_LATEST (tag of the 'latest' image built) # + if [ -z "$VERSION" ]; then echo "VERSION environment variable is missing" exit 1 @@ -32,7 +33,7 @@ echo "Working in $TMP" on_exit() { echo "Cleaning up temporary directory..." cd $TMP - docker-compose -f test-compose.yml down + docker compose -f test-compose.yml down rm -rf $TMP rm -f /tmp/odoo.tar.gz } @@ -42,18 +43,19 @@ trap on_exit EXIT # run 'runtests' in the container # extra arguments are passed to the 'run' command (example: -e FOO=bar is added to the list of args) docoruntests() { - docker-compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ odoo runtests + docker compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ odoo runtests } # run 'runmigration' in the container # extra arguments are passed to the 'run' command (example: -e FOO=bar is added to the list of args) docorunmigration() { - docker-compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ odoo runmigration + docker compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ odoo runmigration } docodown() { - docker-compose -f test-compose.yml down + docker compose -f test-compose.yml down } docoruncmd() { - docker-compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ + docker compose -f test-compose.yml build odoo + docker compose -f test-compose.yml run --rm -e LOCAL_USER_ID=$(id -u) $@ } cp -ra ./example/. "$TMP/" @@ -65,7 +67,7 @@ rm -rf "$TMP/odoo/src" wget -nv -O /tmp/odoo.tar.gz "$ODOO_URL" tar xfz /tmp/odoo.tar.gz -C odoo/ mv "odoo/odoo-$VERSION" odoo/src - +echo "+++++++++++++ $IMAGE_LATEST" echo '>>> Run test for base image' sed "s|FROM .*|FROM ${IMAGE_LATEST}|" -i odoo/Dockerfile mkdir .cachedb @@ -74,11 +76,11 @@ echo '>>> * migration: standard' docoruncmd -e LOAD_DB_CACHE="false" odoo odoo --stop-after-init echo '>>> * migration: create the dump for a base version' -docorunmigration -v ${TMP}/.cachedb:/.cachedb -e CREATE_DB_CACHE="true" +docorunmigration -e CREATE_DB_CACHE="true" docoruncmd odoo dropdb odoodb echo '>>> * migration: use the dump and migrate to new version' -docorunmigration -v ${TMP}/.cachedb:/.cachedb -e LOAD_DB_CACHE="true" +docorunmigration -e LOAD_DB_CACHE="true" docodown echo " - version: 15.0.1" >>odoo/migration.yml echo " operations:" >>odoo/migration.yml @@ -86,25 +88,15 @@ echo " post:" >>odoo/migration.yml echo " - anthem songs.install.demo::create_partners" >>odoo/migration.yml docoruncmd odoo dropdb odoodb -echo '>>> * migration: use a ceil version' -docoruntests -v ${TMP}/.cachedb:/.cachedb -e LOAD_DB_CACHE="true" -e MIG_LOAD_VERSION_CEIL="9.0.1" + echo '>>> * run unit tests with runtests' docoruntests -e LOAD_DB_CACHE="false" -e CREATE_DB_CACHE="false" echo '>>> * run unit tests with runtests and create a dump' -docoruntests -v ${TMP}/.cachedb:/.cachedb -e CREATE_DB_CACHE="true" -e SUBS_MD5=testcache +docoruntests -e CREATE_DB_CACHE="true" -e SUBS_MD5=testcache echo '>>> * run unit tests with runtests and re-use a dump' -docoruntests -v ${TMP}/.cachedb:/.cachedb -e LOAD_DB_CACHE="true" -e SUBS_MD5=testcache +docoruntests -e LOAD_DB_CACHE="true" -e SUBS_MD5=testcache docodown -echo '>>> * run tests for onbuild image' -cp odoo/Dockerfile-onbuild odoo/Dockerfile -sed "s|FROM .*|FROM ${IMAGE_LATEST}-onbuild|" -i odoo/Dockerfile -cat odoo/Dockerfile - -docoruncmd odoo odoo --stop-after-init -docoruntests - -docodown diff --git a/travis/publish.sh b/travis/publish.sh deleted file mode 100755 index e0d0bb9a..00000000 --- a/travis/publish.sh +++ /dev/null @@ -1,24 +0,0 @@ -#!/bin/bash - -set -e - -if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then - if [ "$TARGET" = "GHCR" ] - then - echo $GHCR_TOKEN | docker login --username="$GHCR_USER" --password-stdin https://ghcr.io - else - echo $DOCKER_PASSWORD | docker login --username="$DOCKER_USERNAME" --password-stdin - fi - - if [ "$TRAVIS_BRANCH" == "stable-4.x.y" ]; then - if [ "$VERSION" == "15.0" ]; then - make VERSION=$VERSION TAG=$TRAVIS_TAG tag_latest_main push_latest_main - fi - make VERSION=$VERSION TAG=latest tag push - elif [ ! -z "$TRAVIS_TAG" ]; then - make VERSION=$VERSION TAG=$TRAVIS_TAG tag push - else - echo "Not pushing any image" - fi - -fi