Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,13 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
odoo_serie: ["14.0","15.0","16.0","17.0","18.0"]
odoo_serie:
- "14.0"
- "15.0"
- "16.0"
- "17.0"
- "18.0"
- "19.0"

steps:
- uses: actions/checkout@v4
Expand Down
1 change: 0 additions & 1 deletion 15.0/base_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel pac
pycairo==1.27.0 ; python_version >= '3.12' # Needed only for reportlab 4.0+ https://docs.reportlab.com/install/ReportLab_Plus_version_installation/
rlPyCairo==0.3.0
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.1.1 ; python_version > '3.9' # (Jammy)
Expand Down
3 changes: 1 addition & 2 deletions 16.0/base_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel pac
pycairo==1.27.0 ; python_version >= '3.12' # Needed only for reportlab 4.0+ https://docs.reportlab.com/install/ReportLab_Plus_version_installation/
rlPyCairo==0.3.0
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.1.1 ; python_version > '3.9' # (Jammy)
Expand All @@ -58,7 +57,7 @@ pyinotify==0.9.6
simplejson==3.19.3

# Migration tools
marabunta==0.12.0
marabunta==0.13.0
-e git+https://github.com/camptocamp/anthem@master#egg=anthem

# Library dependency
Expand Down
7 changes: 3 additions & 4 deletions 17.0/base_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ pycairo==1.27.0 ; python_version >= '3.12' # Needed only for reportlab 4.0+ htt
rlPyCairo==0.3.0
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==3.0.6 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
Expand All @@ -59,7 +58,7 @@ simplejson==3.19.3


# Migration tools
marabunta==0.12.0
marabunta==0.13.0
-e git+https://github.com/camptocamp/anthem@master#egg=anthem

# Library dependency
Expand All @@ -69,8 +68,8 @@ attrs==24.2.0
beautifulsoup4==4.12.3
future==1.0.0
mccabe==0.7.0
more-itertools==10.4.0
pbr==6.0.0
more-itertools==10.5.0
pbr==6.1.0
pexpect==4.9.0
ptyprocess==0.7.0
pycodestyle==2.12.1
Expand Down
9 changes: 4 additions & 5 deletions 18.0/base_requirements.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ openpyxl==3.1.2 ; python_version >= '3.12'
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
polib==1.1.1
psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12'
psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches
Expand All @@ -41,7 +40,7 @@ pycairo==1.27.0 ; python_version >= '3.12' # Needed only for reportlab 4.0+ htt
rlPyCairo==0.3.0
requests==2.32.0 ; python_version >= '3.11' # (Noble)
rjsmin==1.2.0 ; python_version >= '3.11'
urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
urllib3==2.2.2 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
vobject==0.9.6.1
Werkzeug==3.0.6 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
xlrd==2.0.1 ; python_version >= '3.12'
Expand All @@ -62,7 +61,7 @@ simplejson==3.19.3


# Migration tools
marabunta==0.12.0
marabunta==0.13.0
-e git+https://github.com/camptocamp/anthem@master#egg=anthem


Expand All @@ -73,8 +72,8 @@ attrs==24.2.0
beautifulsoup4==4.12.3
future==1.0.0
mccabe==0.7.0
more-itertools==10.4.0
pbr==6.0.0
more-itertools==10.5.0
pbr==6.1.0
pexpect==4.9.0
ptyprocess==0.7.0
pycodestyle==2.12.1
Expand Down
100 changes: 100 additions & 0 deletions 19.0/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,100 @@
FROM python:3.12-slim-trixie
ARG UID=999
ARG GID=0


# create the working directory and a place to set the logs (if wanted)
RUN adduser --disabled-password --no-create-home \
--home /odoo --gecos '' -u $UID --gid $GID odoo \
&& install -m 770 -o odoo -d /odoo /var/log/odoo /odoo/.venv \
/odoo/data \
/odoo/data/odoo \
/odoo/data/odoo/addons \
/odoo/data/odoo/filestore \
/odoo/data/odoo/sessions \
&& install -m 660 -o odoo /dev/null /odoo/odoo.cfg \
&& install -m 660 -o odoo /dev/null /odoo/.bashrc

COPY --chown=odoo:root --chmod=770 ./install /install
COPY --chown=odoo:root --chmod=660 ./base_requirements.txt /odoo
COPY --chown=odoo:root --chmod=660 ./extra_requirements.txt /odoo

# 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 \
libevent-dev \
libfreetype6-dev \
libxml2-dev \
libxslt1-dev \
libsasl2-dev \
libldap2-dev \
libssl-dev \
libjpeg-dev \
libpng-dev \
zlib1g-dev \
libcairo2-dev"


# Default SHELL is ["/bin/sh", "-c"]
SHELL ["/bin/sh", "-e", "-x", "-c"]

# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
RUN /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

# grab dockerize to generate template and
# wait on postgres
RUN /install/dockerize.sh

COPY --chown=odoo:root --chmod=660 ./src_requirements.txt /odoo
COPY --chown=odoo:root --chmod=770 ./bin /odoo/odoo-bin
COPY --chown=odoo:root --chmod=770 ./templates /templates
COPY --chown=odoo:root --chmod=770 ./before-migrate-entrypoint.d /odoo/before-migrate-entrypoint.d
COPY --chown=odoo:root --chmod=770 ./start-entrypoint.d /odoo/start-entrypoint.d
COPY --chown=odoo:root --chmod=770 ./MANIFEST.in /odoo


VOLUME ["/data/odoo", "/var/log/odoo"]
USER odoo
RUN python3 -m venv /odoo/.venv --system-site-packages
ENV PATH=/odoo/.venv/bin:$PATH
ENV PYTHONPATH=/odoo/
RUN echo "export PATH=$PATH" >> ~/.bashrc

RUN /odoo/.venv/bin/pip install -r /odoo/base_requirements.txt
RUN /odoo/.venv/bin/pip install -r /odoo/extra_requirements.txt
USER root
RUN /install/purge_dev_package_and_cache.sh

USER odoo
EXPOSE 8069 8072

ENV ODOO_VERSION=19.0 \
PATH=/odoo/odoo-bin:/odoo/.local/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/odoo/addons,/odoo/odoo/src/odoo/addons \
ODOO_RC=/odoo/odoo.cfg

ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["odoo"]
1 change: 1 addition & 0 deletions 19.0/MANIFEST.in
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
recursive-include odoo/data *
89 changes: 89 additions & 0 deletions 19.0/base_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# The officially supported versions of the following packages are their
# python3-* equivalent distributed in Ubuntu 24.04 and Debian 12
asn1crypto==1.5.1 ; python_version >= '3.11'
Babel==2.10.3 ; python_version >= '3.11' and python_version < '3.13'
Babel==2.17.0 ; python_version >= '3.13'
cbor2==5.6.2 ; python_version >= '3.12'
chardet==5.2.0 ; python_version >= '3.11'
cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes
docutils==0.20.1 ; python_version >= '3.11'
freezegun==1.2.1 ; python_version >= '3.11' and python_version < '3.13'
freezegun==1.5.1 ; python_version >= '3.13'
geoip2==2.9.0
gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' and python_version < '3.13' # (Noble)
gevent==24.11.1 ; sys_platform != 'win32' and python_version >= '3.13' # (Trixie)
greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' and python_version < '3.13' # (Noble)
greenlet==3.1.1 ; sys_platform != 'win32' and python_version >= '3.13' # (Trixie)
idna==3.7 ; python_version >= '3.12'
Jinja2==3.1.6 ; python_version > '3.10'
libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package
lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean)
lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches)
MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
num2words==0.5.13 ; python_version >= '3.12'
ofxparse==0.21
openpyxl==3.1.2 ; python_version >= '3.12'
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
Pillow==10.3.0 ; python_version >= '3.12' and python_version < '3.13' # (Noble) Mostly to have a wheel package
Pillow==11.1.0 ; python_version >= '3.13' # (Noble) Mostly to have a wheel package
polib==1.1.1
psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
psycopg2==2.9.9 ; python_version >= '3.12' and python_version < '3.13' # (Noble)
psycopg2==2.9.10 ; python_version >= '3.13' # (Trixie)
pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches
PyPDF2==2.12.1 ; python_version > '3.10'
pyserial==3.5
python-dateutil==2.8.2 ; python_version >= '3.11'
python-magic==0.4.27; sys_platform != 'win32' and python_version >= '3.12' # (noble)
python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package
python-stdnum==1.19 ; python_version >= '3.11'
pytz # no version pinning to avoid OS perturbations
pyusb==1.2.1
qrcode==7.4.2 ; python_version >= '3.11'
reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
requests==2.32.0 ; python_version >= '3.11' # (Noble)
rjsmin==1.2.0 ; python_version >= '3.11'
urllib3==2.2.2 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
vobject==0.9.6.1
Werkzeug==3.0.6 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
xlrd==2.0.1 ; python_version >= '3.12'
XlsxWriter==3.1.9 ; python_version >= '3.12'
xlwt==1.3.0
zeep==4.2.1 ; python_version >= '3.11' and python_version < '3.13'
zeep==4.3.1 ; python_version >= '3.13'
zope.event==6.0
zope.interface==8.0
setuptools==78.1.1

# Not part of official requirements, but used by some addons
# colorama==0.3.9
gdata==2.0.18
html5lib==1.1
odfpy==1.4.1
pyinotify==0.9.6
simplejson==3.20.1


# Migration tools
# marabunta==0.13.0
-e git+https://github.com/camptocamp/marabunta@master#egg=marabunta
-e git+https://github.com/camptocamp/anthem@master#egg=anthem

# Library dependency
argh==0.31.3
atomicwrites==1.4.1
attrs==25.3.0
beautifulsoup4==4.13.5
future==1.0.0
mccabe==0.7.0
more-itertools==10.8.0
pbr==7.0.1
pexpect==4.9.0
ptyprocess==0.7.0
pycairo==1.28.0
pycodestyle==2.14.0
pyflakes==3.4.0
rl-renderPM==4.0.3
reportlab==4.1.0
unicodecsv==0.14.1
wrapt==1.17.3
48 changes: 48 additions & 0 deletions 19.0/extra_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Extra python dependencies
algoliasearch==4.26.0
Adyen==13.4.0
cachetools==6.2.0
cerberus==1.3.7
boto3==1.40.30
factur-x==3.8
invoice2data==0.4.5
mailjet-rest==1.5.1
openupgradelib==3.11.1
paramiko==4.0.0
parse-accept-language==0.1.2
paypalrestsdk==1.13.3
phonenumbers==9.0.13
pyquerystring==1.1
pyOpenSSL==25.2.0
pyquerystring==1.1
pysimplesoap==1.16.2
requests-mock==1.12.1
slugify==0.0.1
stripe==12.5.1
unidecode==1.4.0
vcrpy==7.0.0

# Library dependency
asn1crypto==1.5.1
bcrypt==4.3.0
botocore==1.40.30
cffi==2.0.0
cryptography==45.0.7
dateparser==1.2.2
idna==3.10
jmespath==1.0.1
multidict==6.6.4
pdfminer.six==20250506
pyasn1==0.6.1
pycparser==2.23
pycryptodome==3.23.0
PyNaCl==1.6.0
pytesseract==0.3.13
regex==2025.9.1
s3transfer==0.14.0
tzlocal==5.3.1
Unidecode==1.4.0
yarl==1.20.1

#Extra for enterprise
pdfminer==20191125
8 changes: 8 additions & 0 deletions 19.0/src_requirements.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# 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
Loading