Skip to content

Commit 123a4e7

Browse files
authored
feat: add version 18.0 (camptocamp#297)
1 parent 66a2a5a commit 123a4e7

File tree

7 files changed

+279
-3
lines changed

7 files changed

+279
-3
lines changed

.github/workflows/build.yaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,10 @@ jobs:
2424
runs-on: ubuntu-latest
2525
strategy:
2626
matrix:
27-
odoo_serie: ["11.0","12.0","13.0","14.0","15.0","16.0", "17.0"]
27+
odoo_serie: ["11.0","12.0","13.0","14.0","15.0","16.0", "17.0", "18.0"]
2828

2929
steps:
3030
- uses: actions/checkout@v4
31-
with:
32-
ref: dev-4.5.X
3331

3432
- name: Set up Docker Buildx
3533
id: buildx

18.0/Dockerfile

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
FROM python:3.12-slim-bookworm
2+
MAINTAINER Camptocamp
3+
4+
# create the working directory and a place to set the logs (if wanted)
5+
RUN mkdir -p /odoo /var/log/odoo
6+
7+
COPY ./base_requirements.txt /odoo
8+
COPY ./install /install
9+
10+
# Moved because there was a bug while installing `odoo-autodiscover`. There is
11+
# an accent in the contributor name
12+
ENV LANG=C.UTF-8 \
13+
LC_ALL=C.UTF-8
14+
15+
# build and dev packages
16+
ENV BUILD_PACKAGE \
17+
build-essential \
18+
gcc \
19+
libevent-dev \
20+
libfreetype6-dev \
21+
libxml2-dev \
22+
libxslt1-dev \
23+
libsasl2-dev \
24+
libldap2-dev \
25+
libssl-dev \
26+
libjpeg-dev \
27+
libpng-dev \
28+
zlib1g-dev \
29+
git
30+
31+
# Install some deps, lessc and less-plugin-clean-css, and wkhtmltopdf
32+
# wkhtml-buster is kept as in official image, no deb available for bullseye
33+
RUN set -x; \
34+
sh -c /install/package_odoo.sh \
35+
&& /install/setup-pip.sh \
36+
&& /install/postgres.sh \
37+
&& /install/kwkhtml_client.sh \
38+
&& /install/kwkhtml_client_force_python3.sh \
39+
&& /install/dev_package.sh \
40+
&& python3 -m pip install --force-reinstall pip \
41+
&& pip install -r /odoo/base_requirements.txt --ignore-installed \
42+
&& /install/purge_dev_package_and_cache.sh
43+
44+
# grab gosu for easy step-down from root and dockerize to generate template and
45+
# wait on postgres
46+
RUN /install/gosu.sh && /install/dockerize.sh
47+
48+
COPY ./src_requirements.txt /odoo
49+
COPY ./bin /odoo-bin
50+
COPY ./templates /templates
51+
COPY ./before-migrate-entrypoint.d /before-migrate-entrypoint.d
52+
COPY ./start-entrypoint.d /start-entrypoint.d
53+
COPY ./MANIFEST.in /odoo
54+
55+
VOLUME ["/data/odoo", "/var/log/odoo"]
56+
57+
# Expose Odoo services
58+
EXPOSE 8069 8072
59+
60+
ENV ODOO_VERSION=18.0 \
61+
PATH=/odoo-bin:$PATH \
62+
LANG=C.UTF-8 \
63+
LC_ALL=C.UTF-8 \
64+
DB_HOST=db \
65+
DB_PORT=5432 \
66+
DB_NAME=odoodb \
67+
DB_USER=odoo \
68+
DB_PASSWORD=odoo \
69+
ODOO_BASE_URL=http://localhost:8069 \
70+
ODOO_REPORT_URL=http://localhost:8069 \
71+
# the place where you put the data of your project (csv, ...)
72+
ODOO_DATA_PATH=/odoo/data \
73+
DEMO=False \
74+
ADDONS_PATH=/odoo/local-src,/odoo/src/addons \
75+
OPENERP_SERVER=/etc/odoo.cfg
76+
77+
ENTRYPOINT ["docker-entrypoint.sh"]
78+
CMD ["odoo"]

18.0/MANIFEST.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
recursive-include odoo/data *

18.0/base_requirements.txt

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
# The officially supported versions of the following packages are their
2+
# python3-* equivalent distributed in Ubuntu 24.04 and Debian 12
3+
asn1crypto==1.5.1 ; python_version >= '3.11'
4+
Babel==2.10.3 ; python_version >= '3.11'
5+
cbor2==5.6.2 ; python_version >= '3.12'
6+
chardet==5.2.0 ; python_version >= '3.11'
7+
cryptography==42.0.8 ; python_version >= '3.12' # (Noble) min 41.0.7, pinning 42.0.8 for security fixes
8+
decorator==5.1.1 ; python_version >= '3.11'
9+
docutils==0.20.1 ; python_version >= '3.11'
10+
freezegun==1.2.1 ; python_version >= '3.11'
11+
geoip2==2.9.0
12+
gevent==24.2.1 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
13+
greenlet==3.0.3 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble)
14+
idna==3.7 ; python_version >= '3.12'
15+
Jinja2==3.1.3 ; python_version > '3.10'
16+
libsass==0.22.0 ; python_version >= '3.11' # (Noble) Mostly to have a wheel package
17+
lxml==5.2.1; python_version >= '3.12' # (Noble - removed html clean)
18+
lxml-html-clean; python_version >= '3.12' # (Noble - removed from lxml, unpinned for futur security patches)
19+
MarkupSafe==2.1.5 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
20+
num2words==0.5.13 ; python_version >= '3.12'
21+
ofxparse==0.21
22+
openpyxl==3.1.2 ; python_version >= '3.12'
23+
passlib==1.7.4 # min version = 1.7.2 (Focal with security backports)
24+
Pillow==10.3.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
25+
polib==1.1.1
26+
psutil==5.9.4 ; python_version > '3.10' and python_version < '3.12'
27+
psutil==5.9.8 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
28+
psycopg2==2.9.9 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
29+
pyopenssl==24.1.0 ; python_version >= '3.12' # (Noble) min 23.2.0, pinned for compatibility with cryptography==42.0.8 and security patches
30+
PyPDF2==2.12.1 ; python_version > '3.10'
31+
pyserial==3.5
32+
python-dateutil==2.8.2 ; python_version >= '3.11'
33+
python-ldap==3.4.4 ; sys_platform != 'win32' and python_version >= '3.12' # (Noble) Mostly to have a wheel package
34+
python-stdnum==1.19 ; python_version >= '3.11'
35+
pytz # no version pinning to avoid OS perturbations
36+
pyusb==1.2.1
37+
qrcode==7.4.2 ; python_version >= '3.11'
38+
reportlab==4.1.0 ; python_version >= '3.12' # (Noble) Mostly to have a wheel package
39+
requests==2.32.0 ; python_version >= '3.11' # (Noble)
40+
rjsmin==1.2.0 ; python_version >= '3.11'
41+
urllib3==2.0.7 ; python_version >= '3.12' # (Noble) Compatibility with cryptography
42+
vobject==0.9.6.1
43+
Werkzeug==3.0.3 ; python_version >= '3.12' # (Noble) Avoid deprecation warnings
44+
xlrd==2.0.1 ; python_version >= '3.12'
45+
XlsxWriter==3.1.9 ; python_version >= '3.12'
46+
xlwt==1.3.0
47+
zeep==4.2.1 ; python_version >= '3.11'
48+
49+
50+
51+
52+
53+
54+
setuptools==73.0.1
55+
56+
# Not part of official requirements, but used by some addons
57+
# colorama==0.3.9
58+
gdata==2.0.18
59+
html5lib==1.1
60+
odfpy==1.4.1
61+
pyinotify==0.9.6
62+
simplejson==3.19.3
63+
64+
65+
# Migration tools
66+
marabunta==0.12.0
67+
-e git+https://github.com/camptocamp/anthem@master#egg=anthem
68+
69+
# test / lint
70+
# those libs and their dependencies are unpinned
71+
# to always test with the last version of it
72+
flake8
73+
pytest==8.3.2
74+
pluggy
75+
coverage
76+
pytest-odoo>=0.4.7
77+
pytest-cov>=2.10.0
78+
watchdog
79+
80+
# Library dependency
81+
argh==0.31.3
82+
atomicwrites==1.4.1
83+
attrs==24.2.0
84+
beautifulsoup4==4.12.3
85+
future==1.0.0
86+
mccabe==0.7.0
87+
more-itertools==10.4.0
88+
pbr==6.0.0
89+
pexpect==4.9.0
90+
ptyprocess==0.7.0
91+
py==1.11.0
92+
pycodestyle==2.12.1
93+
pyflakes==3.2.0
94+
unicodecsv==0.14.1
95+
wrapt==1.16.0

18.0/extra_requirements.txt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Extra python dependencies
2+
algoliasearch==4.1.1
3+
Adyen==12.3.0
4+
cachetools==5.5.0
5+
cerberus==1.3.5
6+
boto3==1.35.6
7+
factur-x==3.1
8+
invoice2data==0.4.5
9+
mailjet-rest==1.3.4
10+
openupgradelib==3.6.1
11+
paramiko==3.4.1
12+
parse-accept-language==0.1.2
13+
paypalrestsdk==1.13.3
14+
phonenumbers==8.13.44
15+
pyquerystring==1.1
16+
pyOpenSSL==24.2.1
17+
pyquerystring==1.1
18+
pysimplesoap==1.16.2
19+
requests-mock==1.12.1
20+
slugify==0.0.1
21+
stripe==10.8.0
22+
unidecode==1.3.8
23+
vcrpy==6.0.1
24+
25+
# Library dependency
26+
asn1crypto==1.5.1
27+
bcrypt==4.2.0
28+
botocore==1.35.6
29+
cffi==1.17.0
30+
cryptography==43.0.0
31+
dateparser==1.2.0
32+
idna==3.8
33+
jmespath==1.0.1
34+
multidict==6.0.5
35+
pdfminer.six==20240706
36+
pyasn1==0.6.0
37+
pycparser==2.22
38+
pycryptodome==3.20.0
39+
PyNaCl==1.5.0
40+
pytesseract==0.3.13
41+
regex==2024.7.24
42+
s3transfer==0.10.2
43+
tzlocal==5.2
44+
Unidecode==1.3.8
45+
yarl==1.9.4

18.0/src_requirements.txt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Requirements for the project itself and for Odoo.
2+
# When we install Odoo with -e, odoo.py is available in the PATH and
3+
# 'openerp' in the PYTHONPATH
4+
#
5+
# They are installed only after all the project's files have been copied
6+
# into the image (with ONBUILD)
7+
-e .
8+
-e src

18.0/templates/odoo.cfg.tmpl

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
[options]
2+
addons_path = {{ .Env.ADDONS_PATH }}
3+
data_dir = /data/odoo
4+
auto_reload = False
5+
db_host = {{ .Env.DB_HOST }}
6+
db_name = {{ .Env.DB_NAME }}
7+
db_user = {{ .Env.DB_USER }}
8+
db_password = {{ .Env.DB_PASSWORD }}
9+
db_sslmode = {{ default .Env.DB_SSLMODE "prefer" }}
10+
dbfilter = ^{{ default .Env.DB_NAME "odoodb" }}$
11+
list_db = {{ default .Env.LIST_DB "False" }}
12+
admin_passwd = {{ default .Env.ADMIN_PASSWD "" }}
13+
db_maxconn = {{ default .Env.DB_MAXCONN "64" }}
14+
limit_memory_soft = {{ default .Env.LIMIT_MEMORY_SOFT "2147483648" }}
15+
limit_memory_hard = {{ default .Env.LIMIT_MEMORY_HARD "2684354560" }}
16+
limit_request = {{ default .Env.LIMIT_REQUEST "8192" }}
17+
limit_time_cpu = {{ default .Env.LIMIT_TIME_CPU "60" }}
18+
limit_time_real = {{ default .Env.LIMIT_TIME_REAL "120" }}
19+
limit_time_real_cron = {{ default .Env.LIMIT_TIME_REAL_CRON "120" }}
20+
log_handler = {{ default .Env.LOG_HANDLER "':INFO'" }}
21+
log_level = {{ default .Env.LOG_LEVEL "info" }}
22+
max_cron_threads = {{ default .Env.MAX_CRON_THREADS "2" }}
23+
workers = {{ default .Env.WORKERS "4" }}
24+
logfile = {{ default .Env.LOGFILE "None" }}
25+
log_db = {{ default .Env.LOG_DB "False" }}
26+
logrotate = True
27+
syslog = {{ default .Env.SYSLOG "False" }}
28+
running_env = {{ default .Env.RUNNING_ENV "dev" }}
29+
without_demo = {{ default .Env.WITHOUT_DEMO "True" }}
30+
server_wide_modules = {{ default .Env.SERVER_WIDE_MODULES "" }}
31+
; db_sslmode =
32+
; We can activate proxy_mode even if we are not behind a proxy, because
33+
; it is used only if HTTP_X_FORWARDED_HOST is set in environ
34+
proxy_mode = True
35+
; csv_internal_sep = ,
36+
; db_template = template1
37+
; debug_mode = False
38+
; email_from = False
39+
; http_port = 8069
40+
; http_enable = True
41+
; http_interface =
42+
; longpolling_port = 8072
43+
; osv_memory_age_limit = 1.0
44+
; osv_memory_count_limit = False
45+
; smtp_password = False
46+
; smtp_port = 25
47+
; smtp_server = localhost
48+
; smtp_ssl = False
49+
; smtp_user = False
50+
unaccent = {{ default .Env.UNACCENT "False" }}
51+
{{ default .Env.ADDITIONAL_ODOO_RC "" }}

0 commit comments

Comments
 (0)