[IMP] support multi version odoo on same workspace

- oficially support odoo 18 instead of odoo 16
- support postgis/postgresql 18 into docker
- change version erplibre 1.6.0
- support private environment and support local git repo manifest
- support switch odoo version
- support docker for each version
- update os installation
- upgrade python requirement
- separate virtual environment for erplibre and odoo
This commit is contained in:
Mathieu Benoit 2025-08-07 06:28:34 -04:00
parent de9779cfc2
commit 93617b1a65
78 changed files with 8109 additions and 4838 deletions

View file

@ -1 +1 @@
1.5.0
1.6.0

7
.gitignore vendored
View file

@ -12,16 +12,17 @@ config.conf
coverage*
.repo
addons
!addons/
addons/*
addons*/*
!script/addons
addons.*
odoo*/addons/addons
odoo*/addons
odoo*/odoo
doc/itpp*
doc/odoo*
script/OCA*
odoo
odoo*/OCA_OpenUpgrade
odoo*/odoo_documentation-user
image_db
@ -46,5 +47,5 @@ requirements.txt
requirement/ignore_requirements.txt
screenshots
screencasts
script/todo/todo_override.json
private/todo/todo_override_private.json
.erplibre.error.txt

View file

@ -43,7 +43,7 @@ endif
-include ./conf/make.todo.Makefile
# Include private Makefile
-include ./conf/make.private.Makefile
-include ./private/make.private.Makefile
# Example for update
.PHONY: custom_run_example

View file

@ -57,7 +57,7 @@ cd ERPLibre
Follow the instruction on the following script, it will try to detect your environment.
```bash
./script/todo/todo.py
./install.sh
```
### Manually

View file

@ -49,6 +49,14 @@ docker_exec_erplibre_repo_show_status:
./script/docker/docker_repo_show_status.sh
# build docker
.PHONY: docker_build_odoo_18
docker_build_odoo_18:
./script/docker/docker_build.sh --odoo_18
.PHONY: docker_build_odoo_17
docker_build_odoo_17:
./script/docker/docker_build.sh --odoo_17
.PHONY: docker_build_odoo_16
docker_build_odoo_16:
./script/docker/docker_build.sh --odoo_16
@ -57,6 +65,10 @@ docker_build_odoo_16:
docker_build_odoo_16_clean:
./script/docker/docker_build.sh --odoo_16 --no-cache
.PHONY: docker_build_odoo_15
docker_build_odoo_15:
./script/docker/docker_build.sh --odoo_15
.PHONY: docker_build_odoo_14
docker_build_odoo_14:
./script/docker/docker_build.sh --odoo_14
@ -65,6 +77,10 @@ docker_build_odoo_14:
docker_build_odoo_14_clean:
./script/docker/docker_build.sh --odoo_14 --no-cache
.PHONY: docker_build_odoo_13
docker_build_odoo_13:
./script/docker/docker_build.sh --odoo_13
.PHONY: docker_build_odoo_12
docker_build_odoo_12:
./script/docker/docker_build.sh --odoo_12

View file

@ -20,6 +20,11 @@ switch_odoo_18:
./script/version/update_env_version.py --erplibre_version odoo18.0_python3.12.10 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_18_update
switch_odoo_18_update:
./script/version/update_env_version.py --erplibre_version odoo18.0_python3.12.10 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_17
install_odoo_17:
./script/version/update_env_version.py --erplibre_version odoo17.0_python3.10.18 --install_dev
@ -29,6 +34,11 @@ switch_odoo_17:
./script/version/update_env_version.py --erplibre_version odoo17.0_python3.10.18 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_17_update
switch_odoo_17_update:
./script/version/update_env_version.py --erplibre_version odoo17.0_python3.10.18 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_16
install_odoo_16:
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.18 --install_dev
@ -38,6 +48,11 @@ switch_odoo_16:
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.18 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_16_update
switch_odoo_16_update:
./script/version/update_env_version.py --erplibre_version odoo16.0_python3.10.18 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_15
install_odoo_15:
./script/version/update_env_version.py --erplibre_version odoo15.0_python3.8.20 --install_dev
@ -47,6 +62,11 @@ switch_odoo_15:
./script/version/update_env_version.py --erplibre_version odoo15.0_python3.8.20 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_15_update
switch_odoo_15_update:
./script/version/update_env_version.py --erplibre_version odoo15.0_python3.8.20 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_14
install_odoo_14:
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --install_dev
@ -56,6 +76,11 @@ switch_odoo_14:
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_14_update
switch_odoo_14_update:
./script/version/update_env_version.py --erplibre_version odoo14.0_python3.8.20 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_13
install_odoo_13:
./script/version/update_env_version.py --erplibre_version odoo13.0_python3.7.17 --install_dev
@ -65,6 +90,11 @@ switch_odoo_13:
./script/version/update_env_version.py --erplibre_version odoo13.0_python3.7.17 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_13_update
switch_odoo_13_update:
./script/version/update_env_version.py --erplibre_version odoo13.0_python3.7.17 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_12
install_odoo_12:
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --install_dev
@ -74,6 +104,11 @@ switch_odoo_12:
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --switch
./script/make.sh config_gen_all
.PHONY: switch_odoo_12_update
switch_odoo_12_update:
./script/version/update_env_version.py --erplibre_version odoo12.0_python3.7.17 --switch --switch_update
./script/make.sh config_gen_all
.PHONY: install_odoo_all_version
install_odoo_all_version:
./script/make.sh install_odoo_18

View file

@ -462,7 +462,6 @@
"web_search_with_and",
"web_listview_range_select",
"web_dialog_size",
"password_security",
"web_refresher",
"date_range",
"partner_contact_access_link",
@ -492,7 +491,6 @@
"web_search_with_and",
"web_listview_range_select",
"web_dialog_size",
"password_security",
"web_refresher",
"date_range",
"partner_contact_access_link",
@ -578,7 +576,6 @@
"web_search_with_and",
"web_listview_range_select",
"web_dialog_size",
"password_security",
"web_refresher",
"date_range",
"partner_contact_access_link",
@ -703,7 +700,6 @@
"partner_firstname",
"web_search_with_and",
"web_dialog_size",
"password_security",
"web_refresher",
"date_range",
"partner_contact_access_link",
@ -722,13 +718,14 @@
"auth_user_case_insensitive",
"disable_odoo_online",
"remove_odoo_enterprise",
"web_responsive",
"web_dark_mode",
"web_theme_classic",
"muk_web_theme",
"web_timeline",
"server_action_mass_edit",
"partner_firstname",
"web_search_with_and",
"web_dialog_size",
"password_security",
"web_refresher",
"date_range",
"partner_contact_access_link",

View file

@ -1,7 +1,6 @@
version: "3.3"
services:
ERPLibre:
image: technolibre/erplibre:1.5.0_odoo_16.0_91a7d1b
image: technolibre/erplibre:1.6.0_odoo_18.0_4f4f563
ports:
- 8069:8069
- 8071:8071
@ -22,23 +21,25 @@ services:
#command: odoo --workers 2 --proxy-mode
# For production ready
#command: odoo --workers 2 --proxy-mode --no-database-list
# Increase max memory
#command: odoo --limit-memory-hard=0 --limit-memory-soft=0
command: odoo
volumes:
# See the volume section at the end of the file
- erplibre_data_dir:/home/odoo/.local/share/Odoo
- ./addons/addons:/ERPLibre/addons/addons
- ./odoo18.0/addons/addons:/ERPLibre/odoo18.0/addons/addons
- erplibre_conf:/etc/odoo
restart: always
db:
image: postgis/postgis:12-3.1-alpine
image: postgis/postgis:18-3.6-alpine
environment:
POSTGRES_PASSWORD: mysecretpassword
POSTGRES_USER: odoo
POSTGRES_DB: postgres
PGDATA: /var/lib/postgresql/data/pgdata
PGDATA: /var/lib/postgresql/pgdata
volumes:
- erplibre-db-data:/var/lib/postgresql/data/pgdata
- erplibre-db-data:/var/lib/postgresql/pgdata
restart: always
# We configure volume without specific destination to let docker manage it. To configure it through docker use (read related documentation before continuing) :

View file

@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1
ARG PYTHON_VERSION=3.10.14
ARG PYTHON_VERSION=3.12.10
ARG DEBIAN_NAME=bookworm
FROM python:${PYTHON_VERSION}-slim-${DEBIAN_NAME}
#MAINTAINER TechnoLibre <docker@technolibre.ca>
@ -17,7 +17,8 @@ ENV LANG="C.UTF-8" \
PYENV_SHELL="bash"
ENV ODOO_PREFIX /ERPLibre
ENV ODOO_EXEC_BIN $ODOO_PREFIX/odoo/odoo-bin
ENV ODOO_VERSION 18.0
ENV ODOO_EXEC_BIN "${ODOO_PREFIX}/odoo${ODOO_VERSION}/odoo/odoo-bin"
ARG URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb
ARG SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2
@ -73,6 +74,9 @@ RUN apt-get update \
libffi-dev \
uuid-dev \
portaudio19-dev \
libcups2-dev \
shfmt \
xmlsec1 \
swig \
&& curl -o wkhtmltox.deb -sSL https://${URL_WKHTMLTOX}/ \
&& echo "${SHA1SUM_WKTHMLTOX} wkhtmltox.deb" | sha1sum -c - \

View file

@ -39,7 +39,9 @@ RUN cd $ODOO_PREFIX && \
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
python -m venv .venv.erplibre
python -m venv .venv.erplibre && \
source ./.venv.erplibre/bin/activate && \
pip3 install -r requirement/erplibre_require-ments.txt
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
@ -49,10 +51,12 @@ RUN cd $ODOO_PREFIX && \
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
echo "${ERPLIBRE_VERSION}" && \
source ./.venv.erplibre/bin/activate && \
./script/version/update_env_version.py --erplibre_version "${ERPLIBRE_VERSION}" --partial_install
RUN cd $ODOO_PREFIX && ls ./manifest -la && \
ls -lha /ERPLibre && \
source ./.venv.erplibre/bin/activate && \
./script/manifest/update_manifest_local_dev.sh
RUN apt update && \
@ -63,25 +67,25 @@ RUN apt update && \
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
echo "${ERPLIBRE_VERSION}" && \
./.venv.$(cat ".erplibre-version" | xargs)/bin/pip install --upgrade pip && git branch && ls . -lha && \
./.venv.$(cat ".erplibre-version" | xargs)/bin/pip install "poetry==${POETRY_VERSION}" && \
./.venv.$(cat ".erplibre-version" | xargs)/bin/poetry --version && \
./.venv.$(cat ".erplibre-version" | xargs)/bin/poetry install
source ./.venv.$(cat ".erplibre-version" | xargs)/bin/activate && \
pip3 install --upgrade pip && git branch && ls . -lha && \
pip3 install "poetry==${POETRY_VERSION}" && \
poetry --version && \
poetry install --no-root -v
# Install local npm
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
npm install
# Create link to addons
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
ln -s "addons.odoo${ODOO_VERSION}" addons
mkdir -p "/ERPLibre/odoo${ODOO_VERSION}/addons/addons"
RUN cd $ODOO_PREFIX && \
ls -lha /ERPLibre && \
head /etc/odoo/odoo.conf && \
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
./docker/repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/odoo${ODOO_VERSION}/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf && \
head /etc/odoo/odoo.conf
RUN cp /etc/odoo/odoo.conf /odoo.conf

View file

@ -26,7 +26,7 @@ services:
volumes:
# See the volume section at the end of the file
- erplibre_data_dir:/home/odoo/.local/share/Odoo
- ./addons/addons:/ERPLibre/addons/addons
- ./addons/addons:/ERPLibre/odoo12.0/addons/addons
- ./private:/ERPLibre/private
- erplibre_conf:/etc/odoo
restart: always

View file

@ -26,7 +26,7 @@ services:
volumes:
# See the volume section at the end of the file
- erplibre_data_dir:/home/odoo/.local/share/Odoo
- ./addons/addons:/ERPLibre/addons/addons
- ./addons/addons:/ERPLibre/odoo14.0/addons/addons
- ./private:/ERPLibre/private
- erplibre_conf:/etc/odoo
restart: always

View file

@ -26,7 +26,7 @@ services:
volumes:
# See the volume section at the end of the file
- erplibre_data_dir:/home/odoo/.local/share/Odoo
- ./addons/addons:/ERPLibre/addons/addons
- ./addons/addons:/ERPLibre/odoo16.0/addons/addons
- ./private:/ERPLibre/private
- erplibre_conf:/etc/odoo
restart: always

View file

@ -0,0 +1,51 @@
services:
ERPLibre:
image: technolibre/erplibre:1.6.0_odoo_18.0_4f4f563
ports:
- 8069:8069
- 8071:8071
- 8072:8072
environment:
HOST: db
PASSWORD: mysecretpassword
USER: odoo
POSTGRES_DB: postgres
STOP_BEFORE_INIT: "False"
DB_NAME: ""
UPDATE_ALL_DB: "False"
depends_on:
- db
# not behind a proxy
#command: odoo --workers 0
# behind a proxy
#command: odoo --workers 2 --proxy-mode
# For production ready
#command: odoo --workers 2 --proxy-mode --no-database-list
# Increase max memory
#command: odoo --limit-memory-hard=0 --limit-memory-soft=0
command: odoo
volumes:
# See the volume section at the end of the file
- erplibre_data_dir:/home/odoo/.local/share/Odoo
- ./addons/addons:/ERPLibre/odoo18.0/addons/addons
- erplibre_conf:/etc/odoo
restart: always
db:
image: postgis/postgis:18-3.6-alpine
environment:
POSTGRES_PASSWORD: mysecretpassword
POSTGRES_USER: odoo
POSTGRES_DB: postgres
PGDATA: /var/lib/postgresql/pgdata
volumes:
- erplibre-db-data:/var/lib/postgresql/pgdata
restart: always
# We configure volume without specific destination to let docker manage it. To configure it through docker use (read related documentation before continuing) :
# - docker volume --help
# - docker-compose down --help
volumes:
erplibre_data_dir:
erplibre_conf:
erplibre-db-data:

View file

@ -1,50 +1,48 @@
#!/bin/bash
set -e
if [[ "$ENV" == "dev" ]] && [ ! -z ${CURRENT_UID} ]
then
export HOME=$ODOO_PREFIX
cd $HOME
if [[ "$ENV" == "dev" ]] && [ ! -z ${CURRENT_UID} ]; then
export HOME=$ODOO_PREFIX
cd $HOME
# As it's only possible to fetch git repos manifest from an git url, we create one using git-daemon.
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
GIT_PID=$!
echo "my repo" $(git rev-parse --abbrev-ref HEAD)
repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --abbrev-ref HEAD) -m default.dev.xml
# As it's only possible to fetch git repos manifest from an git url, we create one using git-daemon.
git daemon --base-path=. --export-all --reuseaddr --informative-errors --verbose &
GIT_PID=$!
echo "my repo" $(git rev-parse --abbrev-ref HEAD)
repo init -u git://127.0.0.1:9418/ -b $(git rev-parse --abbrev-ref HEAD) -m default.dev.xml
repo sync -c -j $(nproc --all)
repo sync -c -j $(nproc --all)
# After sync, terminate the git checkout. We don't need graceful kill as we don't do commit on the git repo during the operation.
kill -9 $GIT_PID
# After sync, terminate the git checkout. We don't need graceful kill as we don't do commit on the git repo during the operation.
kill -9 $GIT_PID
ls $HOME/odoo/odoo-bin
# $? give the posix return value of the last command. 0 == success
# then IS_ODOO_FILE_EXIST : 0 == YES
IS_ODOO_FILE_EXIST=$?
ls $HOME/odoo$(cat ".odoo-version" | xargs)/odoo/odoo-bin
# $? give the posix return value of the last command. 0 == success
# then IS_ODOO_FILE_EXIST : 0 == YES
IS_ODOO_FILE_EXIST=$?
if [ "$IS_ODOO_FILE_EXIST" -ne "0" ]; then
echo "The file $HOME/odoo/odoo-bin doesnt exist. Verify entrypoint.sh";
exit 1;
fi
# Add the odoo bins code on $PATH
echo PATH=$HOME/odoo/:$PATH
# Configure an alias to use "odoo-bin" as "odoo".
alias odoo=odoo-bin
repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons $ODOO_RC $ODOO_PREFIX/odoo/odoo.conf && head $ODOO_PREFIX/odoo/odoo.conf
export ODOO_RC=$ODOO_PREFIX/odoo/odoo.conf
elif [[ "$ENV" == "dev" ]] && [ -z ${CURRENT_UID} ]
then
echo 'Please run as follows : CURRENT_UID=$(id -u):$(id -g) docker compose up'
if [ "$IS_ODOO_FILE_EXIST" -ne "0" ]; then
echo "The file $HOME/odoo$(cat ".odoo-version" | xargs)/odoo/odoo-bin doesnt exist. Verify entrypoint.sh"
exit 1
fi
# Add the odoo bins code on $PATH
echo PATH=$HOME/odoo$(cat ".odoo-version" | xargs)/odoo/:$PATH
# Configure an alias to use "odoo-bin" as "odoo".
alias odoo=odoo-bin
repo_manifest_gen_org_prefix_path.py $ODOO_PREFIX/addons $ODOO_RC $ODOO_PREFIX/odoo/odoo.conf && head $ODOO_PREFIX/odoo/odoo.conf
export ODOO_RC=$ODOO_PREFIX/odoo/odoo.conf
elif [[ "$ENV" == "dev" ]] && [ -z ${CURRENT_UID} ]; then
echo 'Please run as follows : CURRENT_UID=$(id -u):$(id -g) docker compose up'
exit 1
fi
# Fix volumes of odoo.conf if not exist
if [ ! -f "/etc/odoo/odoo.conf" ]; then
cp /odoo.conf /etc/odoo/odoo.conf
cp /odoo.conf /etc/odoo/odoo.conf
fi
# set the postgres database host, port, user and password according to the environment
@ -56,52 +54,56 @@ fi
DB_ARGS=()
function check_config() {
param="$1"
value="$2"
if grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC" ; then
value=$(grep -E "^\s*\b${param}\b\s*=" "$ODOO_RC" |cut -d " " -f3|sed 's/["\n\r]//g')
fi;
DB_ARGS+=("--${param}")
DB_ARGS+=("${value}")
param="$1"
value="$2"
if grep -q -E "^\s*\b${param}\b\s*=" "$ODOO_RC"; then
value=$(grep -E "^\s*\b${param}\b\s*=" "$ODOO_RC" | cut -d " " -f3 | sed 's/["\n\r]//g')
fi
DB_ARGS+=("--${param}")
DB_ARGS+=("${value}")
}
check_config "db_host" "$HOST"
check_config "db_port" "$PORT"
check_config "db_user" "$USER"
check_config "db_password" "$PASSWORD"
cd /ERPLibre
source .venv.$(cat ".erplibre-version" | xargs)/bin/activate
case "$1" in
-- | odoo)
shift
if [[ "$1" == "scaffold" ]] ; then
exec odoo "$@" || exec odoo-bin "$@"
else
cd $ODOO_PREFIX
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
sleep 999999
fi
/ERPLibre/.venv.$(cat ".erplibre-version" | xargs)/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
# --stop-after-init
exec ./.venv.$(cat ".erplibre-version" | xargs)/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
else
exec ./.venv.$(cat ".erplibre-version" | xargs)/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf
fi
fi
;;
-*)
cd $ODOO_PREFIX
if [[ "${STOP_BEFORE_INIT}" == "True" ]] ; then
sleep 999999
fi
/ERPLibre/.venv.$(cat ".erplibre-version" | xargs)/bin/python ./docker/wait-for-psql.py ${DB_ARGS[@]} --timeout=30
if [[ "${UPDATE_ALL_DB}" == "True" ]] ; then
exec ./.venv.$(cat ".erplibre-version" | xargs)/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
else
exec ./.venv.$(cat ".erplibre-version" | xargs)/bin/python $ODOO_EXEC_BIN "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf
fi
;;
*)
exec "$@"
-- | odoo)
shift
if [[ "$1" == "scaffold" ]]; then
exec odoo "$@" || exec odoo-bin "$@"
else
cd $ODOO_PREFIX
if [[ "${STOP_BEFORE_INIT}" == "True" ]]; then
sleep 999999
fi
python3 ./docker/wait-for-psql.py "${DB_ARGS[@]}" --timeout=30
if [[ "${UPDATE_ALL_DB}" == "True" ]]; then
# --stop-after-init
python3 "$ODOO_EXEC_BIN" "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
else
python3 "$ODOO_EXEC_BIN" "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf
fi
fi
;;
-*)
cd $ODOO_PREFIX
if [[ "${STOP_BEFORE_INIT}" == "True" ]]; then
sleep 999999
fi
python3 ./docker/wait-for-psql.py "${DB_ARGS[@]}" --timeout=30
if [[ "${UPDATE_ALL_DB}" == "True" ]]; then
python3 "$ODOO_EXEC_BIN" "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf -u all -d "${DB_NAME}"
else
python3 "$ODOO_EXEC_BIN" "$@" "${DB_ARGS[@]}" -c /etc/odoo/odoo.conf
fi
;;
*)
exec "$@"
;;
esac
exit 1

View file

@ -25,9 +25,13 @@ dstConfigPath = args.dstConfigPath
addonsDirs = [abspath(join(addonsBaseDir, f)) for f in listdir(addonsBaseDir) if
isdir(join(addonsBaseDir, f))]
with open(".odoo-version", "r") as f:
odoo_version = f.readline().strip()
str_odoo_version = f"odoo{odoo_version}"
# addonsDirs.insert(0, "/usr/lib/python3/dist-packages/odoo/addons/")
addonsDirs.insert(0, "/ERPLibre/addons/addons")
addonsDirs.insert(0, "/ERPLibre/odoo/addons/")
addonsDirs.insert(0, f"/ERPLibre/{str_odoo_version}/addons/addons")
addonsDirs.insert(0, f"/ERPLibre/{str_odoo_version}/odoo/addons")
config = configparser.ConfigParser()

View file

@ -1,11 +1,14 @@
#!/usr/bin/env bash
ERPLIBRE_VERSION="1.6.0"
ERPLIBRE_VERSION=$(cat ".erplibre-semver-version" | xargs)
EL_USER="erplibre"
EL_HOME="/${EL_USER}"
EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
EL_HOME_ODOO="${EL_HOME_ERPLIBRE}/odoo$(cat ".odoo-version" | xargs)/odoo"
#EL_USER="erplibre"
EL_USER="${USER}"
#EL_HOME="/${EL_USER}"
EL_HOME="${HOME}"
#EL_HOME_ERPLIBRE="${EL_HOME}/erplibre"
EL_HOME_ERPLIBRE="${PWD}"
EL_HOME_ODOO="${EL_HOME_ERPLIBRE}"/odoo$(cat ".odoo-version" | xargs)/odoo
EL_ODOO_VERSION=$(cat ".odoo-version" | xargs)
EL_POETRY_VERSION=$(cat ".poetry-version" | xargs)
EL_PYTHON_ODOO_VERSION=$(cat ".python-odoo-version" | xargs)
@ -19,7 +22,8 @@ EL_PORT="8069"
EL_LONGPOLLING_PORT="8072"
# set the superadmin password
EL_SUPERADMIN="admin"
EL_CONFIG="${EL_USER}"
# The configuration systemctl service will be erplibre_dirname
EL_CONFIG="erplibre_${PWD##*/}"
EL_MINIMAL_ADDONS="False"
# Set this to True if you want to install Nginx!
EL_INSTALL_NGINX="False"

File diff suppressed because it is too large Load diff

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="12.0"
revision="12.0_dev"
path="odoo12.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo12.0"
/>

View file

@ -3,6 +3,7 @@
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/" />
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/" />
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/" />
<remote name="ERPLibre_origin_TechnoLibre" fetch="https://github.com/ERPLibre/" />
<remote name="Numigi" fetch="https://github.com/Numigi/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/" />
@ -16,6 +17,7 @@
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/" />
<remote name="muk-it" fetch="https://github.com/muk-it/" />
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/" />
<remote name="ERPLibre_origin_novacode-nl" fetch="https://github.com/ERPLibre/" />
<remote name="obayit" fetch="https://github.com/obayit/" />
<remote name="ERPLibre_origin_odoo" fetch="https://github.com/ERPLibre/" />
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/" />
@ -26,360 +28,375 @@
<project
name="OpenHRMS.git"
path="addons.odoo13.0/CybroOdoo_OpenHRMS"
path="odoo13.0/addons/CybroOdoo_OpenHRMS"
remote="CybroOdoo"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="access-addons.git"
path="addons.odoo13.0/itpp-labs_access-addons"
path="odoo13.0/addons/itpp-labs_access-addons"
remote="itpp-labs"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-analytic.git"
path="addons.odoo13.0/OCA_account-analytic"
path="odoo13.0/addons/OCA_account-analytic"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-budgeting.git"
path="addons.odoo13.0/OCA_account-budgeting"
path="odoo13.0/addons/OCA_account-budgeting"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-closing.git"
path="addons.odoo13.0/OCA_account-closing"
path="odoo13.0/addons/OCA_account-closing"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-consolidation.git"
path="addons.odoo13.0/OCA_account-consolidation"
path="odoo13.0/addons/OCA_account-consolidation"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-financial-reporting.git"
path="addons.odoo13.0/OCA_account-financial-reporting"
path="odoo13.0/addons/OCA_account-financial-reporting"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-financial-tools.git"
path="addons.odoo13.0/OCA_account-financial-tools"
path="odoo13.0/addons/OCA_account-financial-tools"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-fiscal-rule.git"
path="addons.odoo13.0/OCA_account-fiscal-rule"
path="odoo13.0/addons/OCA_account-fiscal-rule"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-invoice-reporting.git"
path="addons.odoo13.0/OCA_account-invoice-reporting"
path="odoo13.0/addons/OCA_account-invoice-reporting"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-invoicing.git"
path="addons.odoo13.0/OCA_account-invoicing"
path="odoo13.0/addons/OCA_account-invoicing"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-payment.git"
path="addons.odoo13.0/OCA_account-payment"
path="odoo13.0/addons/OCA_account-payment"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="account-reconcile.git"
path="addons.odoo13.0/OCA_account-reconcile"
path="odoo13.0/addons/OCA_account-reconcile"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="apps-store.git"
path="addons.odoo13.0/OCA_apps-store"
path="odoo13.0/addons/OCA_apps-store"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="bank-payment.git"
path="addons.odoo13.0/OCA_bank-payment"
path="odoo13.0/addons/OCA_bank-payment"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="bank-statement-import.git"
path="addons.odoo13.0/OCA_bank-statement-import"
path="odoo13.0/addons/OCA_bank-statement-import"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="brand.git" path="addons.odoo13.0/OCA_brand" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="brand.git" path="odoo13.0/addons/OCA_brand" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="business-requirement.git"
path="addons.odoo13.0/OCA_business-requirement"
path="odoo13.0/addons/OCA_business-requirement"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="commission.git"
path="addons.odoo13.0/OCA_commission"
path="odoo13.0/addons/OCA_commission"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="community-data-files.git"
path="addons.odoo13.0/OCA_community-data-files"
path="odoo13.0/addons/OCA_community-data-files"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="connector-ecommerce.git"
path="addons.odoo13.0/OCA_connector-ecommerce"
path="odoo13.0/addons/OCA_connector-ecommerce"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="connector-interfaces.git"
path="addons.odoo13.0/OCA_connector-interfaces"
path="odoo13.0/addons/OCA_connector-interfaces"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="connector-jira.git"
path="addons.odoo13.0/OCA_connector-jira"
path="odoo13.0/addons/OCA_connector-jira"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="connector-telephony.git"
path="addons.odoo13.0/OCA_connector-telephony"
path="odoo13.0/addons/OCA_connector-telephony"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="connector.git"
path="addons.odoo13.0/OCA_connector"
path="odoo13.0/addons/OCA_connector"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="contract.git"
path="addons.odoo13.0/OCA_contract"
path="odoo13.0/addons/OCA_contract"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="credit-control.git"
path="addons.odoo13.0/OCA_credit-control"
path="odoo13.0/addons/OCA_credit-control"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="crm.git" path="addons.odoo13.0/OCA_crm" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="crm.git" path="odoo13.0/addons/OCA_crm" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="currency.git"
path="addons.odoo13.0/OCA_currency"
path="odoo13.0/addons/OCA_currency"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="data-protection.git"
path="addons.odoo13.0/OCA_data-protection"
path="odoo13.0/addons/OCA_data-protection"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="ddmrp.git" path="addons.odoo13.0/OCA_ddmrp" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="ddmrp.git" path="odoo13.0/addons/OCA_ddmrp" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="dms.git" path="odoo13.0/addons/OCA_dms" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="delivery-carrier.git"
path="addons.odoo13.0/OCA_delivery-carrier"
path="odoo13.0/addons/OCA_delivery-carrier"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="deltatech.git"
path="addons.odoo13.0/dhongu_deltatech"
path="odoo13.0/addons/dhongu_deltatech"
remote="dhongu"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="design-themes.git"
path="addons.odoo13.0/odoo_design-themes"
path="odoo13.0/addons/odoo_design-themes"
remote="ERPLibre_origin_odoo"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="donation.git"
path="addons.odoo13.0/OCA_donation"
path="odoo13.0/addons/OCA_donation"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="e-commerce.git"
path="addons.odoo13.0/OCA_e-commerce"
path="odoo13.0/addons/OCA_e-commerce"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="edi.git" path="addons.odoo13.0/OCA_edi" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="event.git" path="addons.odoo13.0/OCA_event" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="edi.git" path="odoo13.0/addons/OCA_edi" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="event.git" path="odoo13.0/addons/OCA_event" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="field-service.git"
path="addons.odoo13.0/OCA_field-service"
path="odoo13.0/addons/OCA_field-service"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="fleet.git" path="addons.odoo13.0/OCA_fleet" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="fleet.git" path="odoo13.0/addons/OCA_fleet" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="geospatial.git"
path="addons.odoo13.0/OCA_geospatial"
path="odoo13.0/addons/OCA_geospatial"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="helpdesk.git"
path="addons.odoo13.0/OCA_helpdesk"
path="odoo13.0/addons/OCA_helpdesk"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="hr.git" path="addons.odoo13.0/OCA_hr" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="hr.git" path="odoo13.0/addons/OCA_hr" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="interface-github.git"
path="addons.odoo13.0/OCA_interface-github"
path="odoo13.0/addons/OCA_interface-github"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="knowledge.git"
path="addons.odoo13.0/OCA_knowledge"
path="odoo13.0/addons/OCA_knowledge"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="l10n-canada.git"
path="addons.odoo13.0/OCA_l10n-canada"
path="odoo13.0/addons/OCA_l10n-canada"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="maintenance.git"
path="addons.odoo13.0/OCA_maintenance"
path="odoo13.0/addons/OCA_maintenance"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="management-system.git"
path="addons.odoo13.0/OCA_management-system"
path="odoo13.0/addons/OCA_management-system"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="manufacture.git"
path="addons.odoo13.0/OCA_manufacture"
path="odoo13.0/addons/OCA_manufacture"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="margin-analysis.git"
path="addons.odoo13.0/OCA_margin-analysis"
path="odoo13.0/addons/OCA_margin-analysis"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="medical-fhir.git"
path="addons.odoo13.0/tegin_medical-fhir"
path="odoo13.0/addons/tegin_medical-fhir"
remote="tegin"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="mis-builder.git"
path="addons.odoo13.0/OCA_mis-builder"
path="odoo13.0/addons/OCA_mis-builder"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="multi-company.git"
path="addons.odoo13.0/OCA_multi-company"
path="odoo13.0/addons/OCA_multi-company"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<!-- <project name="odoo-addons.git" path="addons.odoo13.0/ajepe_odoo-addons" remote="ajepe" revision="13.0" groups="addons,odoo13.0" />-->
<!-- <project name="odoo-base-addons.git" path="addons.odoo13.0/Numigi_odoo-base-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-addons.git" path="odoo13.0/addons/ajepe_odoo-addons" remote="ajepe" revision="13.0" groups="addons,odoo13.0" />-->
<!-- <project name="odoo-base-addons.git" path="odoo13.0/addons/Numigi_odoo-base-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<project
name="odoo-cloud-platform.git"
path="addons.odoo13.0/camptocamp_odoo-cloud-platform"
path="odoo13.0/addons/camptocamp_odoo-cloud-platform"
remote="camptocamp"
revision="13.0"
groups="addons,odoo13.0"
/>
<!-- <project name="odoo-entertainment-addons.git" path="addons.odoo13.0/Numigi_odoo-entertainment-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<project
name="odoo-code-generator-template.git"
path="odoo13.0/addons/TechnoLibre_odoo-code-generator-template"
remote="ERPLibre_origin_TechnoLibre"
revision="13.0"
groups="addons,odoo13.0,code_generator,image_db"
/>
<project
name="odoo-code-generator.git"
path="odoo13.0/addons/TechnoLibre_odoo-code-generator"
remote="ERPLibre_origin_TechnoLibre"
revision="13.0"
groups="addons,odoo13.0,code_generator,image_db"
/>
<!-- <project name="odoo-entertainment-addons.git" path="odoo13.0/addons/Numigi_odoo-entertainment-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<project
name="odoo-formio.git"
path="addons.odoo13.0/novacode-nl_odoo-formio"
remote="novacode-nl"
path="odoo13.0/addons/novacode-nl_odoo-formio"
remote="ERPLibre_origin_novacode-nl"
revision="13.0"
groups="addons,odoo13.0"
/>
<!-- <project name="odoo-git-addons.git" path="addons.odoo13.0/Numigi_odoo-git-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-hr-addons.git" path="addons.odoo13.0/Numigi_odoo-hr-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-partner-addons.git" path="addons.odoo13.0/Numigi_odoo-partner-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-product-addons.git" path="addons.odoo13.0/Numigi_odoo-product-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-project-addons.git" path="addons.odoo13.0/Numigi_odoo-project-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-purchase-addons.git" path="addons.odoo13.0/Numigi_odoo-purchase-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-stock-addons.git" path="addons.odoo13.0/Numigi_odoo-stock-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-survey-addons.git" path="addons.odoo13.0/Numigi_odoo-survey-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-timesheet-addons.git" path="addons.odoo13.0/Numigi_odoo-timesheet-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-web-addons.git" path="addons.odoo13.0/Numigi_odoo-web-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-git-addons.git" path="odoo13.0/addons/Numigi_odoo-git-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-hr-addons.git" path="odoo13.0/addons/Numigi_odoo-hr-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-partner-addons.git" path="odoo13.0/addons/Numigi_odoo-partner-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-product-addons.git" path="odoo13.0/addons/Numigi_odoo-product-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-project-addons.git" path="odoo13.0/addons/Numigi_odoo-project-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-purchase-addons.git" path="odoo13.0/addons/Numigi_odoo-purchase-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-stock-addons.git" path="odoo13.0/addons/Numigi_odoo-stock-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-survey-addons.git" path="odoo13.0/addons/Numigi_odoo-survey-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-timesheet-addons.git" path="odoo13.0/addons/Numigi_odoo-timesheet-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo-web-addons.git" path="odoo13.0/addons/Numigi_odoo-web-addons" remote="Numigi" revision="13.0" groups="addons,odoo13.0"/>-->
<project
name="odoo.git"
path="odoo13.0/odoo"
@ -388,242 +405,242 @@
revision="ERPLibre/13.0"
groups="odoo,odoo13.0"
/>
<!-- <project name="odoo_addons.git" path="addons.odoo13.0/Smile-SA_odoo_addons" remote="ERPLibre_origin_Smile-SA" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo_dhtmlxgantt.git" path="addons.odoo13.0/obayit_odoo_dhtmlxgantt" remote="obayit" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo_addons.git" path="odoo13.0/addons/Smile-SA_odoo_addons" remote="ERPLibre_origin_Smile-SA" revision="13.0" groups="addons,odoo13.0"/>-->
<!-- <project name="odoo_dhtmlxgantt.git" path="odoo13.0/addons/obayit_odoo_dhtmlxgantt" remote="obayit" revision="13.0" groups="addons,odoo13.0"/>-->
<project
name="odooapps.git"
path="addons.odoo13.0/odoomates_odooapps"
path="odoo13.0/addons/odoomates_odooapps"
remote="odoomates"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="odooplm.git"
path="addons.odoo13.0/OmniaGit_odooplm"
path="odoo13.0/addons/OmniaGit_odooplm"
remote="OmniaGit"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="openeducat_erp.git"
path="addons.odoo13.0/openeducat_openeducat_erp"
path="odoo13.0/addons/openeducat_openeducat_erp"
remote="openeducat"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="operating-unit.git"
path="addons.odoo13.0/OCA_operating-unit"
path="odoo13.0/addons/OCA_operating-unit"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="partner-contact.git"
path="addons.odoo13.0/OCA_partner-contact"
path="odoo13.0/addons/OCA_partner-contact"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="pos-addons.git"
path="addons.odoo13.0/itpp-labs_pos-addons"
path="odoo13.0/addons/itpp-labs_pos-addons"
remote="itpp-labs"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="pos.git" path="addons.odoo13.0/OCA_pos" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="pos.git" path="odoo13.0/addons/OCA_pos" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="product-attribute.git"
path="addons.odoo13.0/OCA_product-attribute"
path="odoo13.0/addons/OCA_product-attribute"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="product-pack.git"
path="addons.odoo13.0/OCA_product-pack"
path="odoo13.0/addons/OCA_product-pack"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="product-variant.git"
path="addons.odoo13.0/OCA_product-variant"
path="odoo13.0/addons/OCA_product-variant"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="project-reporting.git"
path="addons.odoo13.0/OCA_project-reporting"
path="odoo13.0/addons/OCA_project-reporting"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="project.git"
path="addons.odoo13.0/OCA_project"
path="odoo13.0/addons/OCA_project"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="purchase-workflow.git"
path="addons.odoo13.0/OCA_purchase-workflow"
path="odoo13.0/addons/OCA_purchase-workflow"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="queue.git" path="addons.odoo13.0/OCA_queue" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="queue.git" path="odoo13.0/addons/OCA_queue" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="reporting-engine.git"
path="addons.odoo13.0/OCA_reporting-engine"
path="odoo13.0/addons/OCA_reporting-engine"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="rma.git" path="addons.odoo13.0/OCA_rma" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="rma.git" path="odoo13.0/addons/OCA_rma" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="saas-addons.git"
path="addons.odoo13.0/it-projects-llc_saas-addons"
path="odoo13.0/addons/it-projects-llc_saas-addons"
remote="it-projects-llc"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="sale-reporting.git"
path="addons.odoo13.0/OCA_sale-reporting"
path="odoo13.0/addons/OCA_sale-reporting"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="sale-workflow.git"
path="addons.odoo13.0/OCA_sale-workflow"
path="odoo13.0/addons/OCA_sale-workflow"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-auth.git"
path="addons.odoo13.0/OCA_server-auth"
path="odoo13.0/addons/OCA_server-auth"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-backend.git"
path="addons.odoo13.0/OCA_server-backend"
path="odoo13.0/addons/OCA_server-backend"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-brand.git"
path="addons.odoo13.0/OCA_server-brand"
path="odoo13.0/addons/OCA_server-brand"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-env.git"
path="addons.odoo13.0/OCA_server-env"
path="odoo13.0/addons/OCA_server-env"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-tools.git"
path="addons.odoo13.0/OCA_server-tools"
path="odoo13.0/addons/OCA_server-tools"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="server-ux.git"
path="addons.odoo13.0/OCA_server-ux"
path="odoo13.0/addons/OCA_server-ux"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="social.git"
path="addons.odoo13.0/OCA_social"
path="odoo13.0/addons/OCA_social"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="stock-logistics-warehouse.git"
path="addons.odoo13.0/OCA_stock-logistics-warehouse"
path="odoo13.0/addons/OCA_stock-logistics-warehouse"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="storage.git"
path="addons.odoo13.0/OCA_storage"
path="odoo13.0/addons/OCA_storage"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="timesheet.git"
path="addons.odoo13.0/OCA_timesheet"
path="odoo13.0/addons/OCA_timesheet"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="vertical-association.git"
path="addons.odoo13.0/OCA_vertical-association"
path="odoo13.0/addons/OCA_vertical-association"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="vertical-hotel.git"
path="addons.odoo13.0/OCA_vertical-hotel"
path="odoo13.0/addons/OCA_vertical-hotel"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="vertical-isp.git"
path="addons.odoo13.0/OCA_vertical-isp"
path="odoo13.0/addons/OCA_vertical-isp"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="vertical-travel.git"
path="addons.odoo13.0/OCA_vertical-travel"
path="odoo13.0/addons/OCA_vertical-travel"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="web.git" path="addons.odoo13.0/OCA_web" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="web.git" path="odoo13.0/addons/OCA_web" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project
name="website-addons.git"
path="addons.odoo13.0/itpp-labs_website-addons"
path="odoo13.0/addons/itpp-labs_website-addons"
remote="itpp-labs"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="website-cms.git"
path="addons.odoo13.0/OCA_website-cms"
path="odoo13.0/addons/OCA_website-cms"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project
name="website.git"
path="addons.odoo13.0/OCA_website"
path="odoo13.0/addons/OCA_website"
remote="OCA"
revision="13.0"
groups="addons,odoo13.0"
/>
<project name="wms.git" path="addons.odoo13.0/OCA_wms" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
<project name="wms.git" path="odoo13.0/addons/OCA_wms" remote="OCA" revision="13.0" groups="addons,odoo13.0" />
</manifest>

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="13.0"
revision="13.0_dev"
path="odoo13.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo13.0"
/>

View file

@ -2,8 +2,11 @@
<manifest>
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/" />
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_MathBenTech" fetch="https://github.com/ERPLibre/" />
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/" />
<remote name="ERPLibre_origin_TechnoLibre" fetch="https://github.com/ERPLibre/" />
<remote name="Numigi" fetch="https://github.com/Numigi/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/" />
<remote name="ERPLibre_origin_Smile-SA" fetch="https://github.com/ERPLibre/" />
@ -17,6 +20,7 @@
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/" />
<remote name="muk-it" fetch="https://github.com/muk-it/" />
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/" />
<remote name="ERPLibre_origin_novacode-nl" fetch="https://github.com/ERPLibre/" />
<remote name="obayit" fetch="https://github.com/obayit/" />
<remote name="ERPLibre_origin_odoo" fetch="https://github.com/ERPLibre/" />
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/" />
@ -27,448 +31,470 @@
<project
name="OpenHRMS.git"
path="addons.odoo14.0/CybroOdoo_OpenHRMS"
path="odoo14.0/addons/CybroOdoo_OpenHRMS"
remote="CybroOdoo"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="access-addons.git"
path="addons.odoo14.0/itpp-labs_access-addons"
path="odoo14.0/addons/itpp-labs_access-addons"
remote="itpp-labs"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-analytic.git"
path="addons.odoo14.0/OCA_account-analytic"
path="odoo14.0/addons/OCA_account-analytic"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-budgeting.git"
path="addons.odoo14.0/OCA_account-budgeting"
path="odoo14.0/addons/OCA_account-budgeting"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-closing.git"
path="addons.odoo14.0/OCA_account-closing"
path="odoo14.0/addons/OCA_account-closing"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-consolidation.git"
path="addons.odoo14.0/OCA_account-consolidation"
path="odoo14.0/addons/OCA_account-consolidation"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-financial-reporting.git"
path="addons.odoo14.0/OCA_account-financial-reporting"
path="odoo14.0/addons/OCA_account-financial-reporting"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-financial-tools.git"
path="addons.odoo14.0/OCA_account-financial-tools"
path="odoo14.0/addons/OCA_account-financial-tools"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-fiscal-rule.git"
path="addons.odoo14.0/OCA_account-fiscal-rule"
path="odoo14.0/addons/OCA_account-fiscal-rule"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-invoice-reporting.git"
path="addons.odoo14.0/OCA_account-invoice-reporting"
path="odoo14.0/addons/OCA_account-invoice-reporting"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-invoicing.git"
path="addons.odoo14.0/OCA_account-invoicing"
path="odoo14.0/addons/OCA_account-invoicing"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-payment.git"
path="addons.odoo14.0/OCA_account-payment"
path="odoo14.0/addons/OCA_account-payment"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="account-reconcile.git"
path="addons.odoo14.0/OCA_account-reconcile"
path="odoo14.0/addons/OCA_account-reconcile"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="apps-store.git"
path="addons.odoo14.0/OCA_apps-store"
path="odoo14.0/addons/OCA_apps-store"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="bank-payment.git"
path="addons.odoo14.0/OCA_bank-payment"
path="odoo14.0/addons/OCA_bank-payment"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="bank-statement-import.git"
path="addons.odoo14.0/OCA_bank-statement-import"
path="odoo14.0/addons/OCA_bank-statement-import"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="brand.git" path="addons.odoo14.0/OCA_brand" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="brand.git" path="odoo14.0/addons/OCA_brand" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="business-requirement.git"
path="addons.odoo14.0/OCA_business-requirement"
path="odoo14.0/addons/OCA_business-requirement"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="cetmix-tower.git"
path="addons.odoo14.0/cetmix_cetmix-tower"
path="odoo14.0/addons/cetmix_cetmix-tower"
remote="cetmix"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="commission.git"
path="addons.odoo14.0/OCA_commission"
path="odoo14.0/addons/OCA_commission"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="community-data-files.git"
path="addons.odoo14.0/OCA_community-data-files"
path="odoo14.0/addons/OCA_community-data-files"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="connector-ecommerce.git"
path="addons.odoo14.0/OCA_connector-ecommerce"
path="odoo14.0/addons/OCA_connector-ecommerce"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="connector-interfaces.git"
path="addons.odoo14.0/OCA_connector-interfaces"
path="odoo14.0/addons/OCA_connector-interfaces"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="connector-jira.git"
path="addons.odoo14.0/OCA_connector-jira"
path="odoo14.0/addons/OCA_connector-jira"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="connector-telephony.git"
path="addons.odoo14.0/OCA_connector-telephony"
path="odoo14.0/addons/OCA_connector-telephony"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="connector.git"
path="addons.odoo14.0/OCA_connector"
path="odoo14.0/addons/OCA_connector"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="contract.git"
path="addons.odoo14.0/OCA_contract"
path="odoo14.0/addons/OCA_contract"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="credit-control.git"
path="addons.odoo14.0/OCA_credit-control"
path="odoo14.0/addons/OCA_credit-control"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="crm.git" path="addons.odoo14.0/OCA_crm" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="crm.git" path="odoo14.0/addons/OCA_crm" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="currency.git"
path="addons.odoo14.0/OCA_currency"
path="odoo14.0/addons/OCA_currency"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="data-protection.git"
path="addons.odoo14.0/OCA_data-protection"
path="odoo14.0/addons/OCA_data-protection"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="ddmrp.git" path="addons.odoo14.0/OCA_ddmrp" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="ddmrp.git" path="odoo14.0/addons/OCA_ddmrp" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="dms.git" path="odoo14.0/addons/OCA_dms" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="delivery-carrier.git"
path="addons.odoo14.0/OCA_delivery-carrier"
path="odoo14.0/addons/OCA_delivery-carrier"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="deltatech.git"
path="addons.odoo14.0/dhongu_deltatech"
path="odoo14.0/addons/dhongu_deltatech"
remote="dhongu"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="design-themes.git"
path="addons.odoo14.0/odoo_design-themes"
path="odoo14.0/addons/odoo_design-themes"
remote="ERPLibre_origin_odoo"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="development.git"
path="odoo14.0/addons/MathBenTech_development"
remote="ERPLibre_origin_MathBenTech"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="donation.git"
path="addons.odoo14.0/OCA_donation"
path="odoo14.0/addons/OCA_donation"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="e-commerce.git"
path="addons.odoo14.0/OCA_e-commerce"
path="odoo14.0/addons/OCA_e-commerce"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="edi.git" path="addons.odoo14.0/OCA_edi" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="event.git" path="addons.odoo14.0/OCA_event" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="edi.git" path="odoo14.0/addons/OCA_edi" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="event.git" path="odoo14.0/addons/OCA_event" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="field-service.git"
path="addons.odoo14.0/OCA_field-service"
path="odoo14.0/addons/OCA_field-service"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="fleet.git" path="addons.odoo14.0/OCA_fleet" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="fleet.git" path="odoo14.0/addons/OCA_fleet" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="geospatial.git"
path="addons.odoo14.0/OCA_geospatial"
path="odoo14.0/addons/OCA_geospatial"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="helpdesk.git"
path="addons.odoo14.0/OCA_helpdesk"
path="odoo14.0/addons/OCA_helpdesk"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project name="hr.git" path="addons.odoo14.0/OCA_hr" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="hr.git" path="odoo14.0/addons/OCA_hr" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="interface-github.git"
path="addons.odoo14.0/OCA_interface-github"
path="odoo14.0/addons/OCA_interface-github"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="knowledge.git"
path="addons.odoo14.0/OCA_knowledge"
path="odoo14.0/addons/OCA_knowledge"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="l10n-canada.git"
path="addons.odoo14.0/OCA_l10n-canada"
path="odoo14.0/addons/OCA_l10n-canada"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="maintenance.git"
path="addons.odoo14.0/OCA_maintenance"
path="odoo14.0/addons/OCA_maintenance"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="management-system.git"
path="addons.odoo14.0/OCA_management-system"
path="odoo14.0/addons/OCA_management-system"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="manufacture.git"
path="addons.odoo14.0/OCA_manufacture"
path="odoo14.0/addons/OCA_manufacture"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="margin-analysis.git"
path="addons.odoo14.0/OCA_margin-analysis"
path="odoo14.0/addons/OCA_margin-analysis"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="medical-fhir.git"
path="addons.odoo14.0/tegin_medical-fhir"
path="odoo14.0/addons/tegin_medical-fhir"
remote="tegin"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="mis-builder.git"
path="addons.odoo14.0/OCA_mis-builder"
path="odoo14.0/addons/OCA_mis-builder"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="multi-company.git"
path="addons.odoo14.0/OCA_multi-company"
path="odoo14.0/addons/OCA_multi-company"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="muk_web.git"
path="addons.odoo14.0/muk-it_muk_web"
path="odoo14.0/addons/muk-it_muk_web"
remote="muk-it"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-addons.git"
path="addons.odoo14.0/ajepe_odoo-addons"
path="odoo14.0/addons/ajepe_odoo-addons"
remote="ajepe"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-base-addons.git"
path="addons.odoo14.0/Numigi_odoo-base-addons"
path="odoo14.0/addons/Numigi_odoo-base-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-cloud-platform.git"
path="addons.odoo14.0/camptocamp_odoo-cloud-platform"
path="odoo14.0/addons/camptocamp_odoo-cloud-platform"
remote="camptocamp"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-code-generator-template.git"
path="odoo14.0/addons/TechnoLibre_odoo-code-generator-template"
remote="ERPLibre_origin_TechnoLibre"
revision="14.0"
groups="addons,odoo14.0,code_generator,image_db"
/>
<project
name="odoo-code-generator.git"
path="odoo14.0/addons/TechnoLibre_odoo-code-generator"
remote="ERPLibre_origin_TechnoLibre"
revision="14.0"
groups="addons,odoo14.0,code_generator,image_db"
/>
<project
name="odoo-entertainment-addons.git"
path="addons.odoo14.0/Numigi_odoo-entertainment-addons"
path="odoo14.0/addons/Numigi_odoo-entertainment-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-formio.git"
path="addons.odoo14.0/novacode-nl_odoo-formio"
remote="novacode-nl"
path="odoo14.0/addons/novacode-nl_odoo-formio"
remote="ERPLibre_origin_novacode-nl"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-git-addons.git"
path="addons.odoo14.0/Numigi_odoo-git-addons"
path="odoo14.0/addons/Numigi_odoo-git-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-hr-addons.git"
path="addons.odoo14.0/Numigi_odoo-hr-addons"
path="odoo14.0/addons/Numigi_odoo-hr-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-partner-addons.git"
path="addons.odoo14.0/Numigi_odoo-partner-addons"
path="odoo14.0/addons/Numigi_odoo-partner-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-product-addons.git"
path="addons.odoo14.0/Numigi_odoo-product-addons"
path="odoo14.0/addons/Numigi_odoo-product-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-project-addons.git"
path="addons.odoo14.0/Numigi_odoo-project-addons"
path="odoo14.0/addons/Numigi_odoo-project-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-purchase-addons.git"
path="addons.odoo14.0/Numigi_odoo-purchase-addons"
path="odoo14.0/addons/Numigi_odoo-purchase-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-stock-addons.git"
path="addons.odoo14.0/Numigi_odoo-stock-addons"
path="odoo14.0/addons/Numigi_odoo-stock-addons"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="odoo-survey-addons.git"
path="addons.odoo14.0/Numigi_odoo-survey-addons"
path="odoo14.0/addons/Numigi_odoo-survey-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-timesheet-addons.git"
path="addons.odoo14.0/Numigi_odoo-timesheet-addons"
path="odoo14.0/addons/Numigi_odoo-timesheet-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odoo-web-addons.git"
path="addons.odoo14.0/Numigi_odoo-web-addons"
path="odoo14.0/addons/Numigi_odoo-web-addons"
remote="Numigi"
revision="14.0"
groups="addons,odoo14.0"
@ -483,273 +509,273 @@
/>
<project
name="odoo_addons.git"
path="addons.odoo14.0/Smile-SA_odoo_addons"
path="odoo14.0/addons/Smile-SA_odoo_addons"
remote="ERPLibre_origin_Smile-SA"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="odoo_dhtmlxgantt.git"
path="addons.odoo14.0/obayit_odoo_dhtmlxgantt"
path="odoo14.0/addons/obayit_odoo_dhtmlxgantt"
remote="obayit"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odooapps.git"
path="addons.odoo14.0/odoomates_odooapps"
path="odoo14.0/addons/odoomates_odooapps"
remote="odoomates"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="odooplm.git"
path="addons.odoo14.0/OmniaGit_odooplm"
path="odoo14.0/addons/OmniaGit_odooplm"
remote="OmniaGit"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="openeducat_erp.git"
path="addons.odoo14.0/openeducat_openeducat_erp"
path="odoo14.0/addons/openeducat_openeducat_erp"
remote="openeducat"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="operating-unit.git"
path="addons.odoo14.0/OCA_operating-unit"
path="odoo14.0/addons/OCA_operating-unit"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="partner-contact.git"
path="addons.odoo14.0/OCA_partner-contact"
path="odoo14.0/addons/OCA_partner-contact"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="pos-addons.git"
path="addons.odoo14.0/itpp-labs_pos-addons"
path="odoo14.0/addons/itpp-labs_pos-addons"
remote="itpp-labs"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="pos.git" path="addons.odoo14.0/OCA_pos" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="pos.git" path="odoo14.0/addons/OCA_pos" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="product-attribute.git"
path="addons.odoo14.0/OCA_product-attribute"
path="odoo14.0/addons/OCA_product-attribute"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="product-configurator.git"
path="addons.odoo14.0/OCA_product-configurator"
path="odoo14.0/addons/OCA_product-configurator"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="product-pack.git"
path="addons.odoo14.0/OCA_product-pack"
path="odoo14.0/addons/OCA_product-pack"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="product-variant.git"
path="addons.odoo14.0/OCA_product-variant"
path="odoo14.0/addons/OCA_product-variant"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="project-reporting.git"
path="addons.odoo14.0/OCA_project-reporting"
path="odoo14.0/addons/OCA_project-reporting"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="project-agile.git"
path="addons.odoo14.0/OCA_project-agile"
remote="ERPLibre"
path="odoo14.0/addons/OCA_project-agile"
remote="ERPLibre_origin_OCA"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="project.git"
path="addons.odoo14.0/OCA_project"
path="odoo14.0/addons/OCA_project"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="purchase-workflow.git"
path="addons.odoo14.0/OCA_purchase-workflow"
path="odoo14.0/addons/OCA_purchase-workflow"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="queue.git" path="addons.odoo14.0/OCA_queue" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="queue.git" path="odoo14.0/addons/OCA_queue" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="reporting-engine.git"
path="addons.odoo14.0/OCA_reporting-engine"
path="odoo14.0/addons/OCA_reporting-engine"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="rma.git" path="addons.odoo14.0/OCA_rma" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="rma.git" path="odoo14.0/addons/OCA_rma" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="saas-addons.git"
path="addons.odoo14.0/it-projects-llc_saas-addons"
path="odoo14.0/addons/it-projects-llc_saas-addons"
remote="it-projects-llc"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="sale-reporting.git"
path="addons.odoo14.0/OCA_sale-reporting"
path="odoo14.0/addons/OCA_sale-reporting"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="sale-workflow.git"
path="addons.odoo14.0/OCA_sale-workflow"
path="odoo14.0/addons/OCA_sale-workflow"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="server-auth.git"
path="addons.odoo14.0/OCA_server-auth"
path="odoo14.0/addons/OCA_server-auth"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="server-backend.git"
path="addons.odoo14.0/OCA_server-backend"
path="odoo14.0/addons/OCA_server-backend"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="server-brand.git"
path="addons.odoo14.0/OCA_server-brand"
path="odoo14.0/addons/OCA_server-brand"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="server-env.git"
path="addons.odoo14.0/OCA_server-env"
path="odoo14.0/addons/OCA_server-env"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="server-tools.git"
path="addons.odoo14.0/OCA_server-tools"
path="odoo14.0/addons/OCA_server-tools"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="server-ux.git"
path="addons.odoo14.0/OCA_server-ux"
path="odoo14.0/addons/OCA_server-ux"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="social.git"
path="addons.odoo14.0/OCA_social"
path="odoo14.0/addons/OCA_social"
remote="ERPLibre"
revision="14.0_dev"
groups="addons,odoo14.0"
/>
<project
name="survey.git"
path="addons.odoo14.0/OCA_survey"
path="odoo14.0/addons/OCA_survey"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="stock-logistics-warehouse.git"
path="addons.odoo14.0/OCA_stock-logistics-warehouse"
path="odoo14.0/addons/OCA_stock-logistics-warehouse"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="storage.git"
path="addons.odoo14.0/OCA_storage"
path="odoo14.0/addons/OCA_storage"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="timesheet.git"
path="addons.odoo14.0/OCA_timesheet"
path="odoo14.0/addons/OCA_timesheet"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="vertical-association.git"
path="addons.odoo14.0/OCA_vertical-association"
path="odoo14.0/addons/OCA_vertical-association"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="vertical-hotel.git"
path="addons.odoo14.0/OCA_vertical-hotel"
path="odoo14.0/addons/OCA_vertical-hotel"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="vertical-isp.git"
path="addons.odoo14.0/OCA_vertical-isp"
path="odoo14.0/addons/OCA_vertical-isp"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="vertical-travel.git"
path="addons.odoo14.0/OCA_vertical-travel"
path="odoo14.0/addons/OCA_vertical-travel"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="web.git" path="addons.odoo14.0/OCA_web" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="web.git" path="odoo14.0/addons/OCA_web" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project
name="website-addons.git"
path="addons.odoo14.0/itpp-labs_website-addons"
path="odoo14.0/addons/itpp-labs_website-addons"
remote="itpp-labs"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="website-cms.git"
path="addons.odoo14.0/OCA_website-cms"
path="odoo14.0/addons/OCA_website-cms"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project
name="website.git"
path="addons.odoo14.0/OCA_website"
path="odoo14.0/addons/OCA_website"
remote="OCA"
revision="14.0"
groups="addons,odoo14.0"
/>
<project name="wms.git" path="addons.odoo14.0/OCA_wms" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
<project name="wms.git" path="odoo14.0/addons/OCA_wms" remote="OCA" revision="14.0" groups="addons,odoo14.0" />
</manifest>

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="14.0"
revision="14.0_dev"
path="odoo14.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo14.0"
/>

View file

@ -3,6 +3,7 @@
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/" />
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/" />
<remote name="MathBenTech" fetch="https://github.com/MathBenTech/" />
<remote name="ERPLibre_origin_TechnoLibre" fetch="https://github.com/ERPLibre/" />
<remote name="Numigi" fetch="https://github.com/Numigi/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
@ -18,382 +19,399 @@
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/" />
<remote name="muk-it" fetch="https://github.com/muk-it/" />
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/" />
<remote name="ERPLibre_origin_novacode-nl" fetch="https://github.com/ERPLibre/" />
<remote name="obayit" fetch="https://github.com/obayit/" />
<remote name="ERPLibre_origin_odoo" fetch="https://github.com/ERPLibre/" />
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/" />
<remote name="odoomates" fetch="https://github.com/odoomates/" />
<remote name="ERPLibre_origin_odoomates" fetch="https://github.com/erplibre/" />
<remote name="openeducat" fetch="https://github.com/openeducat/" />
<remote name="pledra" fetch="https://github.com/pledra/" />
<remote name="tegin" fetch="https://github.com/tegin/" />
<project
name="OpenHRMS.git"
path="addons.odoo15.0/CybroOdoo_OpenHRMS"
path="odoo15.0/addons/CybroOdoo_OpenHRMS"
remote="CybroOdoo"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="access-addons.git"
path="addons.odoo15.0/itpp-labs_access-addons"
path="odoo15.0/addons/itpp-labs_access-addons"
remote="itpp-labs"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-analytic.git"
path="addons.odoo15.0/OCA_account-analytic"
path="odoo15.0/addons/OCA_account-analytic"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-budgeting.git"
path="addons.odoo15.0/OCA_account-budgeting"
path="odoo15.0/addons/OCA_account-budgeting"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-closing.git"
path="addons.odoo15.0/OCA_account-closing"
path="odoo15.0/addons/OCA_account-closing"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-consolidation.git"
path="addons.odoo15.0/OCA_account-consolidation"
path="odoo15.0/addons/OCA_account-consolidation"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-financial-reporting.git"
path="addons.odoo15.0/OCA_account-financial-reporting"
path="odoo15.0/addons/OCA_account-financial-reporting"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-financial-tools.git"
path="addons.odoo15.0/OCA_account-financial-tools"
path="odoo15.0/addons/OCA_account-financial-tools"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-fiscal-rule.git"
path="addons.odoo15.0/OCA_account-fiscal-rule"
path="odoo15.0/addons/OCA_account-fiscal-rule"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-invoice-reporting.git"
path="addons.odoo15.0/OCA_account-invoice-reporting"
path="odoo15.0/addons/OCA_account-invoice-reporting"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-invoicing.git"
path="addons.odoo15.0/OCA_account-invoicing"
path="odoo15.0/addons/OCA_account-invoicing"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-payment.git"
path="addons.odoo15.0/OCA_account-payment"
path="odoo15.0/addons/OCA_account-payment"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="account-reconcile.git"
path="addons.odoo15.0/OCA_account-reconcile"
path="odoo15.0/addons/OCA_account-reconcile"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="apps-store.git"
path="addons.odoo15.0/OCA_apps-store"
path="odoo15.0/addons/OCA_apps-store"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="bank-payment.git"
path="addons.odoo15.0/OCA_bank-payment"
path="odoo15.0/addons/OCA_bank-payment"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="bank-statement-import.git"
path="addons.odoo15.0/OCA_bank-statement-import"
path="odoo15.0/addons/OCA_bank-statement-import"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="brand.git" path="addons.odoo15.0/OCA_brand" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="brand.git" path="odoo15.0/addons/OCA_brand" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="business-requirement.git"
path="addons.odoo15.0/OCA_business-requirement"
path="odoo15.0/addons/OCA_business-requirement"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<!-- <project name="cetmix-tower.git" path="addons.odoo15.0/cetmix_cetmix-tower" remote="cetmix" revision="15.0" groups="addons,odoo15.0" />-->
<!-- <project name="cetmix-tower.git" path="odoo15.0/addons/cetmix_cetmix-tower" remote="cetmix" revision="15.0" groups="addons,odoo15.0" />-->
<project
name="commission.git"
path="addons.odoo15.0/OCA_commission"
path="odoo15.0/addons/OCA_commission"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="community-data-files.git"
path="addons.odoo15.0/OCA_community-data-files"
path="odoo15.0/addons/OCA_community-data-files"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="connector-ecommerce.git"
path="addons.odoo15.0/OCA_connector-ecommerce"
path="odoo15.0/addons/OCA_connector-ecommerce"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="connector-interfaces.git"
path="addons.odoo15.0/OCA_connector-interfaces"
path="odoo15.0/addons/OCA_connector-interfaces"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="connector-jira.git"
path="addons.odoo15.0/OCA_connector-jira"
path="odoo15.0/addons/OCA_connector-jira"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="connector-telephony.git"
path="addons.odoo15.0/OCA_connector-telephony"
path="odoo15.0/addons/OCA_connector-telephony"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="connector.git"
path="addons.odoo15.0/OCA_connector"
path="odoo15.0/addons/OCA_connector"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="contract.git"
path="addons.odoo15.0/OCA_contract"
path="odoo15.0/addons/OCA_contract"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="credit-control.git"
path="addons.odoo15.0/OCA_credit-control"
path="odoo15.0/addons/OCA_credit-control"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="crm.git" path="addons.odoo15.0/OCA_crm" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="crm.git" path="odoo15.0/addons/OCA_crm" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="currency.git"
path="addons.odoo15.0/OCA_currency"
path="odoo15.0/addons/OCA_currency"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="data-protection.git"
path="addons.odoo15.0/OCA_data-protection"
path="odoo15.0/addons/OCA_data-protection"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="ddmrp.git" path="addons.odoo15.0/OCA_ddmrp" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="ddmrp.git" path="odoo15.0/addons/OCA_ddmrp" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="dms.git" path="odoo15.0/addons/OCA_dms" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="delivery-carrier.git"
path="addons.odoo15.0/OCA_delivery-carrier"
path="odoo15.0/addons/OCA_delivery-carrier"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="deltatech.git"
path="addons.odoo15.0/dhongu_deltatech"
path="odoo15.0/addons/dhongu_deltatech"
remote="dhongu"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="design-themes.git"
path="addons.odoo15.0/odoo_design-themes"
path="odoo15.0/addons/odoo_design-themes"
remote="ERPLibre_origin_odoo"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="donation.git"
path="addons.odoo15.0/OCA_donation"
path="odoo15.0/addons/OCA_donation"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="e-commerce.git"
path="addons.odoo15.0/OCA_e-commerce"
path="odoo15.0/addons/OCA_e-commerce"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="edi.git" path="addons.odoo15.0/OCA_edi" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="event.git" path="addons.odoo15.0/OCA_event" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="edi.git" path="odoo15.0/addons/OCA_edi" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="event.git" path="odoo15.0/addons/OCA_event" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="field-service.git"
path="addons.odoo15.0/OCA_field-service"
path="odoo15.0/addons/OCA_field-service"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="fleet.git" path="addons.odoo15.0/OCA_fleet" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="fleet.git" path="odoo15.0/addons/OCA_fleet" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="geospatial.git"
path="addons.odoo15.0/OCA_geospatial"
path="odoo15.0/addons/OCA_geospatial"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="helpdesk.git"
path="addons.odoo15.0/OCA_helpdesk"
path="odoo15.0/addons/OCA_helpdesk"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="hr.git" path="addons.odoo15.0/OCA_hr" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="hr.git" path="odoo15.0/addons/OCA_hr" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="interface-github.git"
path="addons.odoo15.0/OCA_interface-github"
path="odoo15.0/addons/OCA_interface-github"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="knowledge.git"
path="addons.odoo15.0/OCA_knowledge"
path="odoo15.0/addons/OCA_knowledge"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="l10n-canada.git"
path="addons.odoo15.0/OCA_l10n-canada"
path="odoo15.0/addons/OCA_l10n-canada"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="maintenance.git"
path="addons.odoo15.0/OCA_maintenance"
path="odoo15.0/addons/OCA_maintenance"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="management-system.git"
path="addons.odoo15.0/OCA_management-system"
path="odoo15.0/addons/OCA_management-system"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="manufacture.git"
path="addons.odoo15.0/OCA_manufacture"
path="odoo15.0/addons/OCA_manufacture"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="margin-analysis.git"
path="addons.odoo15.0/OCA_margin-analysis"
path="odoo15.0/addons/OCA_margin-analysis"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<!-- <project name="medical-fhir.git" path="addons.odoo15.0/tegin_medical-fhir" remote="tegin" revision="15.0" groups="addons,odoo15.0" />-->
<!-- <project name="medical-fhir.git" path="odoo15.0/addons/tegin_medical-fhir" remote="tegin" revision="15.0" groups="addons,odoo15.0" />-->
<project
name="mis-builder.git"
path="addons.odoo15.0/OCA_mis-builder"
path="odoo15.0/addons/OCA_mis-builder"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="multi-company.git"
path="addons.odoo15.0/OCA_multi-company"
path="odoo15.0/addons/OCA_multi-company"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="muk_web.git"
path="addons.odoo15.0/muk-it_muk_web"
path="odoo15.0/addons/muk-it_muk_web"
remote="muk-it"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="odoo-addons.git"
path="addons.odoo15.0/ajepe_odoo-addons"
path="odoo15.0/addons/ajepe_odoo-addons"
remote="ajepe"
revision="15.0"
groups="addons,odoo15.0"
/>
<!-- <project-->
<!-- name="odoo-base-addons.git"-->
<!-- path="addons.odoo15.0/Numigi_odoo-base-addons"-->
<!-- path="odoo15.0/addons/Numigi_odoo-base-addons"-->
<!-- remote="Numigi"-->
<!-- revision="15.0"-->
<!-- groups="addons,odoo15.0"-->
<!-- />-->
<project
name="odoo-cloud-platform.git"
path="addons.odoo15.0/camptocamp_odoo-cloud-platform"
path="odoo15.0/addons/camptocamp_odoo-cloud-platform"
remote="camptocamp"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="odoo-code-generator-template.git"
path="odoo15.0/addons/TechnoLibre_odoo-code-generator-template"
remote="ERPLibre_origin_TechnoLibre"
revision="15.0"
groups="addons,odoo15.0,code_generator,image_db"
/>
<project
name="odoo-code-generator.git"
path="odoo15.0/addons/TechnoLibre_odoo-code-generator"
remote="ERPLibre_origin_TechnoLibre"
revision="15.0"
groups="addons,odoo15.0,code_generator,image_db"
/>
<!-- <project-->
<!-- name="odoo-entertainment-addons.git"-->
<!-- path="addons.odoo15.0/Numigi_odoo-entertainment-addons"-->
<!-- path="odoo15.0/addons/Numigi_odoo-entertainment-addons"-->
<!-- remote="Numigi"-->
<!-- revision="15.0"-->
<!-- groups="addons,odoo15.0"-->
<!-- />-->
<project
name="odoo-formio.git"
path="addons.odoo15.0/novacode-nl_odoo-formio"
remote="novacode-nl"
path="odoo15.0/addons/novacode-nl_odoo-formio"
remote="ERPLibre_origin_novacode-nl"
revision="15.0"
groups="addons,odoo15.0"
/>
<!-- <project name="odoo-git-addons.git" path="addons.odoo15.0/Numigi_odoo-git-addons" remote="Numigi" revision="15.0" groups="addons,odoo15.0" />-->
<!-- <project name="odoo-hr-addons.git" path="addons.odoo15.0/Numigi_odoo-hr-addons" remote="Numigi" revision="15.0" groups="addons,odoo15.0" />-->
<!-- <project name="odoo-git-addons.git" path="odoo15.0/addons/Numigi_odoo-git-addons" remote="Numigi" revision="15.0" groups="addons,odoo15.0" />-->
<!-- <project name="odoo-hr-addons.git" path="odoo15.0/addons/Numigi_odoo-hr-addons" remote="Numigi" revision="15.0" groups="addons,odoo15.0" />-->
<project
name="odoo.git"
path="odoo15.0/odoo"
@ -404,273 +422,273 @@
/>
<!-- <project-->
<!-- name="odoo_addons.git"-->
<!-- path="addons.odoo15.0/Smile-SA_odoo_addons"-->
<!-- path="odoo15.0/addons/Smile-SA_odoo_addons"-->
<!-- remote="ERPLibre_origin_Smile-SA"-->
<!-- revision="15.0"-->
<!-- groups="addons,odoo15.0"-->
<!-- />-->
<!-- <project-->
<!-- name="odoo_dhtmlxgantt.git"-->
<!-- path="addons.odoo15.0/obayit_odoo_dhtmlxgantt"-->
<!-- path="odoo15.0/addons/obayit_odoo_dhtmlxgantt"-->
<!-- remote="obayit"-->
<!-- revision="15.0"-->
<!-- groups="addons,odoo15.0"-->
<!-- />-->
<project
name="odooapps.git"
path="addons.odoo15.0/odoomates_odooapps"
remote="odoomates"
revision="15.0"
path="odoo15.0/addons/odoomates_odooapps"
remote="ERPLibre_origin_odoomates"
revision="15.0_dev"
groups="addons,odoo15.0"
/>
<project
name="odooplm.git"
path="addons.odoo15.0/OmniaGit_odooplm"
path="odoo15.0/addons/OmniaGit_odooplm"
remote="OmniaGit"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="openeducat_erp.git"
path="addons.odoo15.0/openeducat_openeducat_erp"
path="odoo15.0/addons/openeducat_openeducat_erp"
remote="openeducat"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="operating-unit.git"
path="addons.odoo15.0/OCA_operating-unit"
path="odoo15.0/addons/OCA_operating-unit"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="partner-contact.git"
path="addons.odoo15.0/OCA_partner-contact"
path="odoo15.0/addons/OCA_partner-contact"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="pos-addons.git"
path="addons.odoo15.0/itpp-labs_pos-addons"
path="odoo15.0/addons/itpp-labs_pos-addons"
remote="itpp-labs"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="pos.git" path="addons.odoo15.0/OCA_pos" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="pos.git" path="odoo15.0/addons/OCA_pos" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="product-attribute.git"
path="addons.odoo15.0/OCA_product-attribute"
path="odoo15.0/addons/OCA_product-attribute"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="product-configurator.git"
path="addons.odoo15.0/OCA_product-configurator"
path="odoo15.0/addons/OCA_product-configurator"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="product-pack.git"
path="addons.odoo15.0/OCA_product-pack"
path="odoo15.0/addons/OCA_product-pack"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="product-variant.git"
path="addons.odoo15.0/OCA_product-variant"
path="odoo15.0/addons/OCA_product-variant"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="project-reporting.git"
path="addons.odoo15.0/OCA_project-reporting"
path="odoo15.0/addons/OCA_project-reporting"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="project-agile.git"
path="addons.odoo15.0/OCA_project-agile"
remote="OCA"
revision="15.0"
path="odoo15.0/addons/OCA_project-agile"
remote="ERPLibre_origin_OCA"
revision="15.0_dev"
groups="addons,odoo15.0"
/>
<project
name="project.git"
path="addons.odoo15.0/OCA_project"
path="odoo15.0/addons/OCA_project"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="purchase-workflow.git"
path="addons.odoo15.0/OCA_purchase-workflow"
path="odoo15.0/addons/OCA_purchase-workflow"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="queue.git" path="addons.odoo15.0/OCA_queue" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="queue.git" path="odoo15.0/addons/OCA_queue" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="reporting-engine.git"
path="addons.odoo15.0/OCA_reporting-engine"
path="odoo15.0/addons/OCA_reporting-engine"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="rma.git" path="addons.odoo15.0/OCA_rma" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="rma.git" path="odoo15.0/addons/OCA_rma" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project
name="saas-addons.git"
path="addons.odoo15.0/it-projects-llc_saas-addons"
path="odoo15.0/addons/it-projects-llc_saas-addons"
remote="it-projects-llc"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="sale-reporting.git"
path="addons.odoo15.0/OCA_sale-reporting"
path="odoo15.0/addons/OCA_sale-reporting"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="sale-workflow.git"
path="addons.odoo15.0/OCA_sale-workflow"
path="odoo15.0/addons/OCA_sale-workflow"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="server-auth.git"
path="addons.odoo15.0/OCA_server-auth"
path="odoo15.0/addons/OCA_server-auth"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="server-backend.git"
path="addons.odoo15.0/OCA_server-backend"
path="odoo15.0/addons/OCA_server-backend"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="server-brand.git"
path="addons.odoo15.0/OCA_server-brand"
path="odoo15.0/addons/OCA_server-brand"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="server-env.git"
path="addons.odoo15.0/OCA_server-env"
path="odoo15.0/addons/OCA_server-env"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="server-tools.git"
path="addons.odoo15.0/OCA_server-tools"
path="odoo15.0/addons/OCA_server-tools"
remote="ERPLibre_origin_OCA"
revision="15.0_dev"
groups="addons,odoo15.0"
/>
<project
name="server-ux.git"
path="addons.odoo15.0/OCA_server-ux"
path="odoo15.0/addons/OCA_server-ux"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="social.git"
path="addons.odoo15.0/OCA_social"
path="odoo15.0/addons/OCA_social"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="survey.git"
path="addons.odoo15.0/OCA_survey"
path="odoo15.0/addons/OCA_survey"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="stock-logistics-warehouse.git"
path="addons.odoo15.0/OCA_stock-logistics-warehouse"
path="odoo15.0/addons/OCA_stock-logistics-warehouse"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="storage.git"
path="addons.odoo15.0/OCA_storage"
path="odoo15.0/addons/OCA_storage"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="timesheet.git"
path="addons.odoo15.0/OCA_timesheet"
path="odoo15.0/addons/OCA_timesheet"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="vertical-association.git"
path="addons.odoo15.0/OCA_vertical-association"
path="odoo15.0/addons/OCA_vertical-association"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="vertical-hotel.git"
path="addons.odoo15.0/OCA_vertical-hotel"
path="odoo15.0/addons/OCA_vertical-hotel"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="vertical-isp.git"
path="addons.odoo15.0/OCA_vertical-isp"
path="odoo15.0/addons/OCA_vertical-isp"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="vertical-travel.git"
path="addons.odoo15.0/OCA_vertical-travel"
path="odoo15.0/addons/OCA_vertical-travel"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="web.git" path="addons.odoo15.0/OCA_web" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="web.git" path="odoo15.0/addons/OCA_web" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<!-- <project-->
<!-- name="website-addons.git"-->
<!-- path="addons.odoo15.0/itpp-labs_website-addons"-->
<!-- path="odoo15.0/addons/itpp-labs_website-addons"-->
<!-- remote="itpp-labs"-->
<!-- revision="15.0"-->
<!-- groups="addons,odoo15.0"-->
<!-- />-->
<project
name="website-cms.git"
path="addons.odoo15.0/OCA_website-cms"
path="odoo15.0/addons/OCA_website-cms"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project
name="website.git"
path="addons.odoo15.0/OCA_website"
path="odoo15.0/addons/OCA_website"
remote="OCA"
revision="15.0"
groups="addons,odoo15.0"
/>
<project name="wms.git" path="addons.odoo15.0/OCA_wms" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
<project name="wms.git" path="odoo15.0/addons/OCA_wms" remote="OCA" revision="15.0" groups="addons,odoo15.0" />
</manifest>

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="15.0"
revision="15.0_dev"
path="odoo15.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo15.0"
/>

File diff suppressed because it is too large Load diff

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="16.0"
revision="16.0_dev"
path="odoo16.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo16.0"
/>

View file

@ -3,6 +3,7 @@
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/" />
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_MathBenTech" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_TechnoLibre" fetch="https://github.com/ERPLibre/" />
<remote name="Numigi" fetch="https://github.com/Numigi/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/" />
@ -16,6 +17,7 @@
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/" />
<remote name="muk-it" fetch="https://github.com/muk-it/" />
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/" />
<remote name="ERPLibre_origin_novacode-nl" fetch="https://github.com/ERPLibre/" />
<remote name="obayit" fetch="https://github.com/obayit/" />
<remote name="ERPLibre_origin_odoo" fetch="https://github.com/ERPLibre/" />
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/" />
@ -26,14 +28,14 @@
<project
name="OpenHRMS.git"
path="addons.odoo17.0/CybroOdoo_OpenHRMS"
path="odoo17.0/addons/CybroOdoo_OpenHRMS"
remote="CybroOdoo"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="CybroAddons.git"
path="addons.odoo17.0/CybroOdoo_CybroAddons"
path="odoo17.0/addons/CybroOdoo_CybroAddons"
remote="CybroOdoo"
clone-depth="1"
revision="17.0"
@ -41,372 +43,394 @@
/>
<project
name="account-analytic.git"
path="addons.odoo17.0/OCA_account-analytic"
path="odoo17.0/addons/OCA_account-analytic"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-budgeting.git"
path="addons.odoo17.0/OCA_account-budgeting"
path="odoo17.0/addons/OCA_account-budgeting"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-closing.git"
path="addons.odoo17.0/OCA_account-closing"
path="odoo17.0/addons/OCA_account-closing"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-consolidation.git"
path="addons.odoo17.0/OCA_account-consolidation"
path="odoo17.0/addons/OCA_account-consolidation"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-financial-reporting.git"
path="addons.odoo17.0/OCA_account-financial-reporting"
path="odoo17.0/addons/OCA_account-financial-reporting"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-financial-tools.git"
path="addons.odoo17.0/OCA_account-financial-tools"
path="odoo17.0/addons/OCA_account-financial-tools"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-fiscal-rule.git"
path="addons.odoo17.0/OCA_account-fiscal-rule"
path="odoo17.0/addons/OCA_account-fiscal-rule"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-invoice-reporting.git"
path="addons.odoo17.0/OCA_account-invoice-reporting"
path="odoo17.0/addons/OCA_account-invoice-reporting"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-invoicing.git"
path="addons.odoo17.0/OCA_account-invoicing"
path="odoo17.0/addons/OCA_account-invoicing"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-payment.git"
path="addons.odoo17.0/OCA_account-payment"
path="odoo17.0/addons/OCA_account-payment"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="account-reconcile.git"
path="addons.odoo17.0/OCA_account-reconcile"
path="odoo17.0/addons/OCA_account-reconcile"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="apps-store.git"
path="addons.odoo17.0/OCA_apps-store"
path="odoo17.0/addons/OCA_apps-store"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="bank-payment.git"
path="addons.odoo17.0/OCA_bank-payment"
path="odoo17.0/addons/OCA_bank-payment"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="bank-statement-import.git"
path="addons.odoo17.0/OCA_bank-statement-import"
path="odoo17.0/addons/OCA_bank-statement-import"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="brand.git" path="addons.odoo17.0/OCA_brand" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="brand.git" path="odoo17.0/addons/OCA_brand" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="business-requirement.git"
path="addons.odoo17.0/OCA_business-requirement"
path="odoo17.0/addons/OCA_business-requirement"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="commission.git"
path="addons.odoo17.0/OCA_commission"
path="odoo17.0/addons/OCA_commission"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="calendar.git"
path="addons.odoo17.0/OCA_calendar"
path="odoo17.0/addons/OCA_calendar"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="cetmix-tower.git"
path="addons.odoo17.0/cetmix_cetmix-tower"
path="odoo17.0/addons/cetmix_cetmix-tower"
remote="cetmix"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="community-data-files.git"
path="addons.odoo17.0/OCA_community-data-files"
path="odoo17.0/addons/OCA_community-data-files"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="connector-ecommerce.git"
path="addons.odoo17.0/OCA_connector-ecommerce"
path="odoo17.0/addons/OCA_connector-ecommerce"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="connector-interfaces.git"
path="addons.odoo17.0/OCA_connector-interfaces"
path="odoo17.0/addons/OCA_connector-interfaces"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="connector-jira.git"
path="addons.odoo17.0/OCA_connector-jira"
path="odoo17.0/addons/OCA_connector-jira"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="connector-telephony.git"
path="addons.odoo17.0/OCA_connector-telephony"
path="odoo17.0/addons/OCA_connector-telephony"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="connector.git"
path="addons.odoo17.0/OCA_connector"
path="odoo17.0/addons/OCA_connector"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="contract.git"
path="addons.odoo17.0/OCA_contract"
path="odoo17.0/addons/OCA_contract"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="credit-control.git"
path="addons.odoo17.0/OCA_credit-control"
path="odoo17.0/addons/OCA_credit-control"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="crm.git" path="addons.odoo17.0/OCA_crm" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="crm.git" path="odoo17.0/addons/OCA_crm" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="currency.git"
path="addons.odoo17.0/OCA_currency"
path="odoo17.0/addons/OCA_currency"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="data-protection.git"
path="addons.odoo17.0/OCA_data-protection"
path="odoo17.0/addons/OCA_data-protection"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="ddmrp.git" path="addons.odoo17.0/OCA_ddmrp" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="ddmrp.git" path="odoo17.0/addons/OCA_ddmrp" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="dms.git" path="odoo17.0/addons/OCA_dms" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="delivery-carrier.git"
path="addons.odoo17.0/OCA_delivery-carrier"
path="odoo17.0/addons/OCA_delivery-carrier"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="deltatech.git"
path="addons.odoo17.0/dhongu_deltatech"
path="odoo17.0/addons/dhongu_deltatech"
remote="dhongu"
revision="17.0"
groups="addons,odoo17.0"
/>
<!-- <project-->
<!-- name="development.git"-->
<!-- path="addons.odoo17.0/MathBenTech_development"-->
<!-- remote="ERPLibre_origin_MathBenTech"-->
<!-- revision="17.0"-->
<!-- groups="addons,base,odoo17.0"-->
<!-- />-->
<project
name="development.git"
revision="17.0"
path="odoo17.0/addons/MathBenTech_development"
remote="ERPLibre_origin_MathBenTech"
groups="addons,base,odoo17.0"
/>
<project
name="donation.git"
path="addons.odoo17.0/OCA_donation"
path="odoo17.0/addons/OCA_donation"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="e-commerce.git"
path="addons.odoo17.0/OCA_e-commerce"
path="odoo17.0/addons/OCA_e-commerce"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="edi.git" path="addons.odoo17.0/OCA_edi" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<!-- <project-->
<!-- name="erplibre_addons.git"-->
<!-- path="addons.odoo17.0/ERPLibre_erplibre_addons"-->
<!-- remote="ERPLibre"-->
<!-- revision="17.0"-->
<!-- groups="addons,base,odoo17.0"-->
<!-- />-->
<project name="event.git" path="addons.odoo17.0/OCA_event" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="edi.git" path="odoo17.0/addons/OCA_edi" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="erplibre_addons.git"
path="odoo17.0/addons/ERPLibre_erplibre_addons"
remote="ERPLibre"
revision="17.0"
groups="addons,base,odoo17.0"
/>
<project name="event.git" path="odoo17.0/addons/OCA_event" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="field-service.git"
path="addons.odoo17.0/OCA_field-service"
path="odoo17.0/addons/OCA_field-service"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="fleet.git" path="addons.odoo17.0/OCA_fleet" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="fleet.git" path="odoo17.0/addons/OCA_fleet" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="geospatial.git"
path="addons.odoo17.0/OCA_geospatial"
path="odoo17.0/addons/OCA_geospatial"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="helpdesk.git"
path="addons.odoo17.0/OCA_helpdesk"
path="odoo17.0/addons/OCA_helpdesk"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="hr.git" path="addons.odoo17.0/OCA_hr" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="hr.git" path="odoo17.0/addons/OCA_hr" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="hr-holidays.git"
path="addons.odoo17.0/OCA_hr-holidays"
path="odoo17.0/addons/OCA_hr-holidays"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="interface-github.git"
path="addons.odoo17.0/OCA_interface-github"
path="odoo17.0/addons/OCA_interface-github"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="knowledge.git"
path="addons.odoo17.0/OCA_knowledge"
path="odoo17.0/addons/OCA_knowledge"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="l10n-canada.git"
path="addons.odoo17.0/OCA_l10n-canada"
path="odoo17.0/addons/OCA_l10n-canada"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="maintenance.git"
path="addons.odoo17.0/OCA_maintenance"
path="odoo17.0/addons/OCA_maintenance"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="management-system.git"
path="addons.odoo17.0/OCA_management-system"
path="odoo17.0/addons/OCA_management-system"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="manufacture.git"
path="addons.odoo17.0/OCA_manufacture"
path="odoo17.0/addons/OCA_manufacture"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="margin-analysis.git"
path="addons.odoo17.0/OCA_margin-analysis"
path="odoo17.0/addons/OCA_margin-analysis"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<!-- <project-->
<!-- name="medical-fhir.git"-->
<!-- path="addons.odoo17.0/tegin_medical-fhir"-->
<!-- remote="tegin"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<!-- <project-->
<!-- name="medical-fhir.git"-->
<!-- path="odoo17.0/addons/tegin_medical-fhir"-->
<!-- remote="tegin"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<project
name="mis-builder.git"
path="addons.odoo17.0/OCA_mis-builder"
path="odoo17.0/addons/OCA_mis-builder"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="multi-company.git"
path="addons.odoo17.0/OCA_multi-company"
path="odoo17.0/addons/OCA_multi-company"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<!-- <project-->
<!-- name="muk_web.git"-->
<!-- path="addons.odoo17.0/muk-it_muk_web"-->
<!-- remote="muk-it"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<!-- <project-->
<!-- name="odoo-business-spending-management-quebec-canada.git"-->
<!-- path="addons.odoo17.0/MathBenTech_odoo-business-spending-management-quebec-canada"-->
<!-- remote="ERPLibre_origin_MathBenTech"-->
<!-- revision="17.0"-->
<!-- groups="addons,base,odoo17.0"-->
<!-- />-->
<!-- <project-->
<!-- name="muk_web.git"-->
<!-- path="odoo17.0/addons/muk-it_muk_web"-->
<!-- remote="muk-it"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<!-- <project-->
<!-- name="odoo-business-spending-management-quebec-canada.git"-->
<!-- path="odoo17.0/addons/MathBenTech_odoo-business-spending-management-quebec-canada"-->
<!-- remote="ERPLibre_origin_MathBenTech"-->
<!-- revision="17.0"-->
<!-- groups="addons,base,odoo17.0"-->
<!-- />-->
<project
name="odoo-cloud-platform.git"
path="addons.odoo17.0/camptocamp_odoo-cloud-platform"
path="odoo17.0/addons/camptocamp_odoo-cloud-platform"
remote="camptocamp"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="odoo-code-generator-template.git"
path="odoo17.0/addons/TechnoLibre_odoo-code-generator-template"
remote="ERPLibre_origin_TechnoLibre"
revision="17.0"
groups="addons,odoo17.0,code_generator,image_db"
/>
<project
name="odoo-code-generator.git"
path="odoo17.0/addons/TechnoLibre_odoo-code-generator"
remote="ERPLibre_origin_TechnoLibre"
revision="17.0"
groups="addons,odoo17.0,code_generator,image_db"
/>
<project
name="odoo-formio.git"
path="addons.odoo17.0/novacode-nl_odoo-formio"
remote="novacode-nl"
path="odoo17.0/addons/novacode-nl_odoo-formio"
remote="ERPLibre_origin_novacode-nl"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="odoo-modules.git"
path="odoo17.0/addons/muk-it_odoo-modules"
remote="muk-it"
revision="17.0"
groups="addons,odoo17.0"
/>
@ -420,260 +444,253 @@
/>
<project
name="odooapps.git"
path="addons.odoo17.0/odoomates_odooapps"
path="odoo17.0/addons/odoomates_odooapps"
remote="odoomates"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="odooplm.git"
path="addons.odoo17.0/OmniaGit_odooplm"
path="odoo17.0/addons/OmniaGit_odooplm"
remote="OmniaGit"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="openeducat_erp.git"
path="addons.odoo17.0/openeducat_openeducat_erp"
path="odoo17.0/addons/openeducat_openeducat_erp"
remote="openeducat"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="OpenUpgrade.git"
path="script/OCA_OpenUpgrade"
remote="OCA"
clone-depth="10"
revision="17.0"
groups="migration"
/>
<project
name="operating-unit.git"
path="addons.odoo17.0/OCA_operating-unit"
path="odoo17.0/addons/OCA_operating-unit"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="partner-contact.git"
path="addons.odoo17.0/OCA_partner-contact"
path="odoo17.0/addons/OCA_partner-contact"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="pos.git" path="addons.odoo17.0/OCA_pos" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="pos.git" path="odoo17.0/addons/OCA_pos" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="product-attribute.git"
path="addons.odoo17.0/OCA_product-attribute"
path="odoo17.0/addons/OCA_product-attribute"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="product-configurator.git"
path="addons.odoo17.0/OCA_product-configurator"
path="odoo17.0/addons/OCA_product-configurator"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="product-pack.git"
path="addons.odoo17.0/OCA_product-pack"
path="odoo17.0/addons/OCA_product-pack"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="product-variant.git"
path="addons.odoo17.0/OCA_product-variant"
path="odoo17.0/addons/OCA_product-variant"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="project-reporting.git"
path="addons.odoo17.0/OCA_project-reporting"
path="odoo17.0/addons/OCA_project-reporting"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="project-agile.git"
path="addons.odoo17.0/OCA_project-agile"
path="odoo17.0/addons/OCA_project-agile"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="project.git"
path="addons.odoo17.0/OCA_project"
path="odoo17.0/addons/OCA_project"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="purchase-workflow.git"
path="addons.odoo17.0/OCA_purchase-workflow"
path="odoo17.0/addons/OCA_purchase-workflow"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="queue.git" path="addons.odoo17.0/OCA_queue" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="queue.git" path="odoo17.0/addons/OCA_queue" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="reporting-engine.git"
path="addons.odoo17.0/OCA_reporting-engine"
path="odoo17.0/addons/OCA_reporting-engine"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="rma.git" path="addons.odoo17.0/OCA_rma" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<!-- <project-->
<!-- name="saas-addons.git"-->
<!-- path="addons.odoo17.0/it-projects-llc_saas-addons"-->
<!-- remote="it-projects-llc"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<project name="rma.git" path="odoo17.0/addons/OCA_rma" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<!-- <project-->
<!-- name="saas-addons.git"-->
<!-- path="odoo17.0/addons/it-projects-llc_saas-addons"-->
<!-- remote="it-projects-llc"-->
<!-- revision="17.0"-->
<!-- groups="addons,odoo17.0"-->
<!-- />-->
<project
name="sale-reporting.git"
path="addons.odoo17.0/OCA_sale-reporting"
path="odoo17.0/addons/OCA_sale-reporting"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="sale-workflow.git"
path="addons.odoo17.0/OCA_sale-workflow"
path="odoo17.0/addons/OCA_sale-workflow"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-auth.git"
path="addons.odoo17.0/OCA_server-auth"
path="odoo17.0/addons/OCA_server-auth"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-backend.git"
path="addons.odoo17.0/OCA_server-backend"
path="odoo17.0/addons/OCA_server-backend"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-brand.git"
path="addons.odoo17.0/OCA_server-brand"
path="odoo17.0/addons/OCA_server-brand"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-env.git"
path="addons.odoo17.0/OCA_server-env"
path="odoo17.0/addons/OCA_server-env"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-tools.git"
path="addons.odoo17.0/OCA_server-tools"
path="odoo17.0/addons/OCA_server-tools"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="server-ux.git"
path="addons.odoo17.0/OCA_server-ux"
path="odoo17.0/addons/OCA_server-ux"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="sign.git" revision="17.0" path="odoo17.0/addons/OCA_sign" remote="OCA" groups="addons,odoo17.0" />
<project
name="shift-planning.git"
path="addons.odoo17.0/OCA_shift-planning"
path="odoo17.0/addons/OCA_shift-planning"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="social.git"
path="addons.odoo17.0/OCA_social"
path="odoo17.0/addons/OCA_social"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="survey.git"
path="addons.odoo17.0/OCA_survey"
path="odoo17.0/addons/OCA_survey"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="stock-logistics-warehouse.git"
path="addons.odoo17.0/OCA_stock-logistics-warehouse"
path="odoo17.0/addons/OCA_stock-logistics-warehouse"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="storage.git"
path="addons.odoo17.0/OCA_storage"
path="odoo17.0/addons/OCA_storage"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="timesheet.git"
path="addons.odoo17.0/OCA_timesheet"
path="odoo17.0/addons/OCA_timesheet"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="vertical-association.git"
path="addons.odoo17.0/OCA_vertical-association"
path="odoo17.0/addons/OCA_vertical-association"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="vertical-hotel.git"
path="addons.odoo17.0/OCA_vertical-hotel"
path="odoo17.0/addons/OCA_vertical-hotel"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="vertical-isp.git"
path="addons.odoo17.0/OCA_vertical-isp"
path="odoo17.0/addons/OCA_vertical-isp"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="vertical-travel.git"
path="addons.odoo17.0/OCA_vertical-travel"
path="odoo17.0/addons/OCA_vertical-travel"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="web.git" path="addons.odoo17.0/OCA_web" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="web.git" path="odoo17.0/addons/OCA_web" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project
name="website-cms.git"
path="addons.odoo17.0/OCA_website-cms"
path="odoo17.0/addons/OCA_website-cms"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project
name="website.git"
path="addons.odoo17.0/OCA_website"
path="odoo17.0/addons/OCA_website"
remote="OCA"
revision="17.0"
groups="addons,odoo17.0"
/>
<project name="wms.git" path="addons.odoo17.0/OCA_wms" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
<project name="wms.git" path="odoo17.0/addons/OCA_wms" remote="OCA" revision="17.0" groups="addons,odoo17.0" />
</manifest>

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="17.0"
revision="17.0_dev"
path="odoo17.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo17.0"
/>

View file

@ -3,11 +3,16 @@
<remote name="CybroOdoo" fetch="https://github.com/CybroOdoo/" />
<remote name="ERPLibre" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_MathBenTech" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_CybroOdoo" fetch="https://github.com/ERPLibre/" />
<remote name="ERPLibre_origin_TechnoLibre" fetch="https://github.com/ERPLibre/" />
<remote name="Numigi" fetch="https://github.com/Numigi/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="OmniaGit" fetch="https://github.com/OmniaGit/" />
<remote name="TechnoLibre" fetch="https://github.com/TechnoLibre/" />
<remote name="ajepe" fetch="https://github.com/ajepe/" />
<remote name="bemade" fetch="https://git.bemade.org/bemade/" />
<remote name="ERPLibre_origin_bemade" fetch="https://eregion.chezlepro.ca/TechnoLibre/" />
<remote name="camptocamp" fetch="https://github.com/camptocamp/" />
<remote name="cetmix" fetch="https://github.com/cetmix/" />
<remote name="dhongu" fetch="https://github.com/dhongu/" />
@ -15,7 +20,9 @@
<remote name="itpp-labs" fetch="https://github.com/itpp-labs/" />
<remote name="kinjal-sorathiya" fetch="https://github.com/kinjal-sorathiya/" />
<remote name="muk-it" fetch="https://github.com/muk-it/" />
<remote name="TechnoLibre_origin_muk-it" fetch="https://github.com/TechnoLibre/" />
<remote name="novacode-nl" fetch="https://github.com/novacode-nl/" />
<remote name="ERPLibre_origin_novacode-nl" fetch="https://github.com/ERPLibre/" />
<remote name="obayit" fetch="https://github.com/obayit/" />
<remote name="ERPLibre_origin_odoo" fetch="https://github.com/ERPLibre/" />
<remote name="odooaktiv" fetch="https://github.com/odooaktiv/" />
@ -27,383 +34,412 @@
<project
name="OpenHRMS.git"
revision="18.0"
path="addons.odoo18.0/CybroOdoo_OpenHRMS"
path="odoo18.0/addons/CybroOdoo_OpenHRMS"
remote="CybroOdoo"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="CybroAddons.git"-->
<!-- revision="18.0" path="addons.odoo18.0/CybroOdoo_CybroAddons"-->
<!-- remote="ERPLibre"-->
<!-- clone-depth="1"-->
<!-- revision="18.0_dev"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project
name="CybroAddons.git"
path="odoo18.0/addons/CybroOdoo_CybroAddons"
remote="ERPLibre_origin_CybroOdoo"
clone-depth="1"
revision="18.0_dev"
groups="addons,odoo18.0"
/>
<project
name="account-analytic.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-analytic"
path="odoo18.0/addons/OCA_account-analytic"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-budgeting.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-budgeting"
remote="OCA"
revision="18.0-mig-account_budget_oca"
path="odoo18.0/addons/OCA_account-budgeting"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<project
name="account-closing.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-closing"
path="odoo18.0/addons/OCA_account-closing"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-consolidation.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-consolidation"
path="odoo18.0/addons/OCA_account-consolidation"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-financial-reporting.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-financial-reporting"
path="odoo18.0/addons/OCA_account-financial-reporting"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-financial-tools.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-financial-tools"
path="odoo18.0/addons/OCA_account-financial-tools"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-fiscal-rule.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-fiscal-rule"
path="odoo18.0/addons/OCA_account-fiscal-rule"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-invoice-reporting.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-invoice-reporting"
path="odoo18.0/addons/OCA_account-invoice-reporting"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-invoicing.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-invoicing"
path="odoo18.0/addons/OCA_account-invoicing"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-payment.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-payment"
path="odoo18.0/addons/OCA_account-payment"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="account-reconcile.git"
revision="18.0"
path="addons.odoo18.0/OCA_account-reconcile"
path="odoo18.0/addons/OCA_account-reconcile"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="apps-store.git"
revision="18.0"
path="addons.odoo18.0/OCA_apps-store"
path="odoo18.0/addons/OCA_apps-store"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="bank-payment.git"
revision="18.0"
path="addons.odoo18.0/OCA_bank-payment"
path="odoo18.0/addons/OCA_bank-payment"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="bank-statement-import.git"
revision="18.0"
path="addons.odoo18.0/OCA_bank-statement-import"
path="odoo18.0/addons/OCA_bank-statement-import"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="bank-payment-alternative.git"
revision="18.0"
path="addons.odoo18.0/OCA_bank-payment-alternative"
path="odoo18.0/addons/OCA_bank-payment-alternative"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="brand.git" revision="18.0" path="addons.odoo18.0/OCA_brand" remote="OCA" groups="addons,odoo18.0" />
<project
name="bemade-addons.git"
revision="18.0_dev"
path="odoo18.0/addons/bemade_bemade-addons"
remote="ERPLibre_origin_bemade"
groups="addons,odoo18.0"
/>
<project name="brand.git" revision="18.0" path="odoo18.0/addons/OCA_brand" remote="OCA" groups="addons,odoo18.0" />
<project
name="business-requirement.git"
revision="18.0"
path="addons.odoo18.0/OCA_business-requirement"
path="odoo18.0/addons/OCA_business-requirement"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="commission.git"
revision="18.0"
path="addons.odoo18.0/OCA_commission"
path="odoo18.0/addons/OCA_commission"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="calendar.git"
revision="18.0"
path="addons.odoo18.0/OCA_calendar"
path="odoo18.0/addons/OCA_calendar"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project name="cetmix-tower.git" revision="18.0" path="addons.odoo18.0/cetmix_cetmix-tower" remote="cetmix" groups="addons,odoo18.0" />-->
<!-- <project name="cetmix-tower.git" revision="18.0" path="odoo18.0/addons/cetmix_cetmix-tower" remote="cetmix" groups="addons,odoo18.0" />-->
<project
name="community-data-files.git"
revision="18.0"
path="addons.odoo18.0/OCA_community-data-files"
path="odoo18.0/addons/OCA_community-data-files"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="connector-ecommerce.git"
revision="18.0"
path="addons.odoo18.0/OCA_connector-ecommerce"
path="odoo18.0/addons/OCA_connector-ecommerce"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="connector-interfaces.git"
revision="18.0"
path="addons.odoo18.0/OCA_connector-interfaces"
path="odoo18.0/addons/OCA_connector-interfaces"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="connector-jira.git"
revision="18.0"
path="addons.odoo18.0/OCA_connector-jira"
path="odoo18.0/addons/OCA_connector-jira"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="connector-telephony.git"
revision="18.0"
path="addons.odoo18.0/OCA_connector-telephony"
path="odoo18.0/addons/OCA_connector-telephony"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="connector.git"
revision="18.0"
path="addons.odoo18.0/OCA_connector"
path="odoo18.0/addons/OCA_connector"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="contract.git"
revision="18.0"
path="addons.odoo18.0/OCA_contract"
path="odoo18.0/addons/OCA_contract"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="credit-control.git"
revision="18.0"
path="addons.odoo18.0/OCA_credit-control"
path="odoo18.0/addons/OCA_credit-control"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="crowdfunding.git"
revision="18.0"
path="addons.odoo18.0/OCA_crowdfunding"
path="odoo18.0/addons/OCA_crowdfunding"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="crm.git" revision="18.0" path="addons.odoo18.0/OCA_crm" remote="OCA" groups="addons,odoo18.0" />
<project name="crm.git" revision="18.0" path="odoo18.0/addons/OCA_crm" remote="OCA" groups="addons,odoo18.0" />
<project
name="currency.git"
revision="18.0"
path="addons.odoo18.0/OCA_currency"
path="odoo18.0/addons/OCA_currency"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="data-protection.git"
revision="18.0"
path="addons.odoo18.0/OCA_data-protection"
path="odoo18.0/addons/OCA_data-protection"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="ddmrp.git" revision="18.0" path="addons.odoo18.0/OCA_ddmrp" remote="OCA" groups="addons,odoo18.0" />
<project name="dms.git" revision="18.0" path="addons.odoo18.0/OCA_dms" remote="OCA" groups="addons,odoo18.0" />
<project name="ddmrp.git" revision="18.0" path="odoo18.0/addons/OCA_ddmrp" remote="OCA" groups="addons,odoo18.0" />
<project name="dms.git" revision="18.0" path="odoo18.0/addons/OCA_dms" remote="OCA" groups="addons,odoo18.0" />
<project
name="delivery-carrier.git"
revision="18.0"
path="addons.odoo18.0/OCA_delivery-carrier"
path="odoo18.0/addons/OCA_delivery-carrier"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="deltatech.git"
revision="18.0"
path="addons.odoo18.0/dhongu_deltatech"
path="odoo18.0/addons/dhongu_deltatech"
remote="dhongu"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="development.git"-->
<!-- revision="18.0" path="addons.odoo18.0/MathBenTech_development"-->
<!-- remote="ERPLibre_origin_MathBenTech"-->
<!-- groups="addons,base,odoo18.0"-->
<!-- />-->
<project
name="development.git"
revision="18.0"
path="odoo18.0/addons/MathBenTech_development"
remote="ERPLibre_origin_MathBenTech"
groups="addons,base,odoo18.0"
/>
<project
name="donation.git"
revision="18.0"
path="addons.odoo18.0/OCA_donation"
path="odoo18.0/addons/OCA_donation"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="e-commerce.git"
revision="18.0"
path="addons.odoo18.0/OCA_e-commerce"
path="odoo18.0/addons/OCA_e-commerce"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="edi.git" revision="18.0" path="addons.odoo18.0/OCA_edi" remote="OCA" groups="addons,odoo18.0" />
<!-- <project-->
<!-- name="erplibre_addons.git"-->
<!-- revision="18.0" path="addons.odoo18.0/ERPLibre_erplibre_addons"-->
<!-- remote="ERPLibre"-->
<!-- groups="addons,base,odoo18.0"-->
<!-- />-->
<project name="event.git" revision="18.0" path="addons.odoo18.0/OCA_event" remote="OCA" groups="addons,odoo18.0" />
<project name="edi.git" revision="18.0" path="odoo18.0/addons/OCA_edi" remote="OCA" groups="addons,odoo18.0" />
<project
name="erplibre_addons.git"
revision="18.0"
path="odoo18.0/addons/ERPLibre_erplibre_addons"
remote="ERPLibre"
groups="addons,base,odoo18.0"
/>
<project name="event.git" revision="18.0" path="odoo18.0/addons/OCA_event" remote="OCA" groups="addons,odoo18.0" />
<project
name="field-service.git"
revision="18.0"
path="addons.odoo18.0/OCA_field-service"
path="odoo18.0/addons/OCA_field-service"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="fleet.git" revision="18.0" path="addons.odoo18.0/OCA_fleet" remote="OCA" groups="addons,odoo18.0" />
<project name="fleet.git" revision="18.0" path="odoo18.0/addons/OCA_fleet" remote="OCA" groups="addons,odoo18.0" />
<project
name="geospatial.git"
revision="18.0"
path="addons.odoo18.0/OCA_geospatial"
path="odoo18.0/addons/OCA_geospatial"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="helpdesk.git"
revision="18.0"
path="addons.odoo18.0/OCA_helpdesk"
remote="OCA"
revision="18.0_dev"
path="odoo18.0/addons/OCA_helpdesk"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<project name="hr.git" revision="18.0" path="addons.odoo18.0/OCA_hr" remote="OCA" groups="addons,odoo18.0" />
<project name="hr.git" revision="18.0" path="odoo18.0/addons/OCA_hr" remote="OCA" groups="addons,odoo18.0" />
<project
name="hr-holidays.git"
revision="18.0"
path="addons.odoo18.0/OCA_hr-holidays"
path="odoo18.0/addons/OCA_hr-holidays"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="interface-github.git"
revision="18.0"
path="addons.odoo18.0/OCA_interface-github"
path="odoo18.0/addons/OCA_interface-github"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="knowledge.git"
revision="18.0"
path="addons.odoo18.0/OCA_knowledge"
path="odoo18.0/addons/OCA_knowledge"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="l10n-canada.git"
revision="18.0"
path="addons.odoo18.0/OCA_l10n-canada"
path="odoo18.0/addons/OCA_l10n-canada"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="maintenance.git"
revision="18.0"
path="addons.odoo18.0/OCA_maintenance"
path="odoo18.0/addons/OCA_maintenance"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="mail.git" revision="18.0" path="addons.odoo18.0/OCA_mail" remote="OCA" groups="addons,odoo18.0" />
<project name="mail.git" revision="18.0" path="odoo18.0/addons/OCA_mail" remote="OCA" groups="addons,odoo18.0" />
<project
name="management-system.git"
revision="18.0"
path="addons.odoo18.0/OCA_management-system"
path="odoo18.0/addons/OCA_management-system"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="manufacture.git"
revision="18.0"
path="addons.odoo18.0/OCA_manufacture"
path="odoo18.0/addons/OCA_manufacture"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="margin-analysis.git"
revision="18.0"
path="addons.odoo18.0/OCA_margin-analysis"
path="odoo18.0/addons/OCA_margin-analysis"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project name="medical-fhir.git" revision="18.0" path="addons.odoo18.0/tegin_medical-fhir" remote="tegin" groups="addons,odoo18.0" />-->
<!-- <project name="medical-fhir.git" revision="18.0" path="odoo18.0/addons/tegin_medical-fhir" remote="tegin" groups="addons,odoo18.0" />-->
<project
name="mis-builder.git"
revision="18.0"
path="addons.odoo18.0/OCA_mis-builder"
path="odoo18.0/addons/OCA_mis-builder"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="multi-company.git"
revision="18.0"
path="addons.odoo18.0/OCA_multi-company"
path="odoo18.0/addons/OCA_multi-company"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project name="muk_web.git" revision="18.0" path="addons.odoo18.0/muk-it_muk_web" remote="muk-it" groups="addons,odoo18.0" />-->
<!-- <project name="muk_web.git" revision="18.0" path="odoo18.0/addons/muk-it_muk_web" remote="muk-it" groups="addons,odoo18.0" />-->
<!-- <project-->
<!-- name="odoo-business-spending-management-quebec-canada.git"-->
<!-- revision="18.0" path="addons.odoo18.0/MathBenTech_odoo-business-spending-management-quebec-canada"-->
<!-- revision="18.0" path="odoo18.0/addons/MathBenTech_odoo-business-spending-management-quebec-canada"-->
<!-- remote="ERPLibre_origin_MathBenTech"-->
<!-- groups="addons,base,odoo18.0"-->
<!-- />-->
<project
name="odoo-cloud-platform.git"
revision="18.0"
path="addons.odoo18.0/camptocamp_odoo-cloud-platform"
path="odoo18.0/addons/camptocamp_odoo-cloud-platform"
remote="camptocamp"
groups="addons,odoo18.0"
/>
<project
name="odoo-code-generator-template.git"
path="odoo18.0/addons/TechnoLibre_odoo-code-generator-template"
remote="ERPLibre_origin_TechnoLibre"
revision="18.0"
groups="addons,odoo18.0,code_generator,image_db"
/>
<project
name="odoo-code-generator.git"
path="odoo18.0/addons/TechnoLibre_odoo-code-generator"
remote="ERPLibre_origin_TechnoLibre"
revision="18.0"
groups="addons,odoo18.0,code_generator,image_db"
/>
<project
name="odoo-formio.git"
revision="18.0"
path="addons.odoo18.0/novacode-nl_odoo-formio"
remote="novacode-nl"
path="odoo18.0/addons/novacode-nl_odoo-formio"
remote="ERPLibre_origin_novacode-nl"
groups="addons,odoo18.0"
/>
<project
name="muk-it_odoo-modules.git"
path="odoo18.0/addons/muk-it_odoo-modules"
remote="TechnoLibre_origin_muk-it"
revision="18.0"
groups="addons,odoo18.0"
/>
<project
@ -417,258 +453,271 @@
<project
name="odooapps.git"
revision="18.0"
path="addons.odoo18.0/odoomates_odooapps"
path="odoo18.0/addons/odoomates_odooapps"
remote="odoomates"
groups="addons,odoo18.0"
/>
<project
name="odooplm.git"
revision="18.0"
path="addons.odoo18.0/OmniaGit_odooplm"
path="odoo18.0/addons/OmniaGit_odooplm"
remote="OmniaGit"
groups="addons,odoo18.0"
/>
<project
name="openeducat_erp.git"
revision="18.0"
path="addons.odoo18.0/openeducat_openeducat_erp"
path="odoo18.0/addons/openeducat_openeducat_erp"
remote="openeducat"
groups="addons,odoo18.0"
/>
<project
name="operating-unit.git"
revision="18.0"
path="addons.odoo18.0/OCA_operating-unit"
path="odoo18.0/addons/OCA_operating-unit"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="partner-contact.git"
revision="18.0"
path="addons.odoo18.0/OCA_partner-contact"
path="odoo18.0/addons/OCA_partner-contact"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="pos.git" revision="18.0" path="addons.odoo18.0/OCA_pos" remote="OCA" groups="addons,odoo18.0" />
<project name="pos.git" revision="18.0" path="odoo18.0/addons/OCA_pos" remote="OCA" groups="addons,odoo18.0" />
<project
name="product-attribute.git"
revision="18.0"
path="addons.odoo18.0/OCA_product-attribute"
path="odoo18.0/addons/OCA_product-attribute"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="product-configurator.git"
revision="18.0"
path="addons.odoo18.0/OCA_product-configurator"
path="odoo18.0/addons/OCA_product-configurator"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="product-pack.git"
revision="18.0"
path="addons.odoo18.0/OCA_product-pack"
path="odoo18.0/addons/OCA_product-pack"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="product-variant.git"
revision="18.0"
path="addons.odoo18.0/OCA_product-variant"
path="odoo18.0/addons/OCA_product-variant"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="project-reporting.git"
revision="18.0"
path="addons.odoo18.0/OCA_project-reporting"
path="odoo18.0/addons/OCA_project-reporting"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="project-agile.git"
revision="18.0"
path="addons.odoo18.0/OCA_project-agile"
path="odoo18.0/addons/OCA_project-agile"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="project.git"
revision="18.0"
path="addons.odoo18.0/OCA_project"
remote="OCA"
revision="18.0_dev"
path="odoo18.0/addons/OCA_project"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<project
name="purchase-workflow.git"
revision="18.0"
path="addons.odoo18.0/OCA_purchase-workflow"
path="odoo18.0/addons/OCA_purchase-workflow"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="queue.git" revision="18.0" path="addons.odoo18.0/OCA_queue" remote="OCA" groups="addons,odoo18.0" />
<project name="queue.git" revision="18.0" path="odoo18.0/addons/OCA_queue" remote="OCA" groups="addons,odoo18.0" />
<project
name="reporting-engine.git"
revision="18.0"
path="addons.odoo18.0/OCA_reporting-engine"
path="odoo18.0/addons/OCA_reporting-engine"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="rma.git" revision="18.0" path="addons.odoo18.0/OCA_rma" remote="OCA" groups="addons,odoo18.0" />
<project name="rma.git" revision="18.0" path="odoo18.0/addons/OCA_rma" remote="OCA" groups="addons,odoo18.0" />
<!-- <project-->
<!-- name="saas-addons.git"-->
<!-- revision="18.0" path="addons.odoo18.0/it-projects-llc_saas-addons"-->
<!-- revision="18.0" path="odoo18.0/addons/it-projects-llc_saas-addons"-->
<!-- remote="it-projects-llc"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project
name="sale-reporting.git"
revision="18.0"
path="addons.odoo18.0/OCA_sale-reporting"
path="odoo18.0/addons/OCA_sale-reporting"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="sale-workflow.git"
revision="18.0"
path="addons.odoo18.0/OCA_sale-workflow"
path="odoo18.0/addons/OCA_sale-workflow"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="server-auth.git"
revision="18.0"
path="addons.odoo18.0/OCA_server-auth"
path="odoo18.0/addons/OCA_server-auth"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="server-backend.git"
revision="18.0"
path="addons.odoo18.0/OCA_server-backend"
path="odoo18.0/addons/OCA_server-backend"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="server-brand.git"
revision="18.0"
path="addons.odoo18.0/OCA_server-brand"
path="odoo18.0/addons/OCA_server-brand"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="server-env.git"
revision="18.0"
path="addons.odoo18.0/OCA_server-env"
path="odoo18.0/addons/OCA_server-env"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="server-tools.git"-->
<!-- revision="18.0" path="addons.odoo18.0/OCA_server-tools"-->
<!-- remote="ERPLibre"-->
<!-- revision="ERPLibre/18.0"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project
name="server-tools.git"
revision="18.0_dev"
path="odoo18.0/addons/OCA_server-tools"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<project
name="server-ux.git"
revision="18.0"
path="addons.odoo18.0/OCA_server-ux"
remote="OCA"
revision="18.0_fix_base_tier_validation_message_repetition"
path="odoo18.0/addons/OCA_server-ux"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="shift-planning.git"-->
<!-- revision="18.0" path="addons.odoo18.0/OCA_shift-planning"-->
<!-- revision="18.0" path="odoo18.0/addons/OCA_shift-planning"-->
<!-- remote="ERPLibre"-->
<!-- revision="18.0_dev"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project name="sign.git" revision="18.0" path="odoo18.0/addons/OCA_sign" remote="OCA" groups="addons,odoo18.0" />
<project
name="social.git"
name="spreadsheet.git"
revision="18.0"
path="addons.odoo18.0/OCA_social"
path="odoo18.0/addons/OCA_spreadsheet"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="social.git"
revision="18.0"
path="odoo18.0/addons/OCA_social"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="survey.git"
revision="18.0"
path="odoo18.0/addons/OCA_survey"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="survey.git"-->
<!-- revision="18.0" path="addons.odoo18.0/OCA_survey"-->
<!-- remote="ERPLibre"-->
<!-- revision="18.0_dev"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project
name="stock-logistics-putaway.git"
revision="18.0"
path="addons.odoo18.0/OCA_stock-logistics-putaway"
path="odoo18.0/addons/OCA_stock-logistics-putaway"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="stock-logistics-warehouse.git"
revision="18.0"
path="addons.odoo18.0/OCA_stock-logistics-warehouse"
path="odoo18.0/addons/OCA_stock-logistics-warehouse"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="storage.git"
revision="18.0"
path="addons.odoo18.0/OCA_storage"
path="odoo18.0/addons/OCA_storage"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="timesheet.git"
revision="18.0"
path="odoo18.0/addons/OCA_timesheet"
remote="OCA"
groups="addons,odoo18.0"
/>
<!-- <project-->
<!-- name="timesheet.git"-->
<!-- revision="18.0" path="addons.odoo18.0/OCA_timesheet"-->
<!-- remote="ERPLibre"-->
<!-- revision="18.0_dev"-->
<!-- groups="addons,odoo18.0"-->
<!-- />-->
<project
name="vertical-association.git"
revision="18.0"
path="addons.odoo18.0/OCA_vertical-association"
path="odoo18.0/addons/OCA_vertical-association"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="vertical-hotel.git"
revision="18.0"
path="addons.odoo18.0/OCA_vertical-hotel"
path="odoo18.0/addons/OCA_vertical-hotel"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="vertical-isp.git"
revision="18.0"
path="addons.odoo18.0/OCA_vertical-isp"
path="odoo18.0/addons/OCA_vertical-isp"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="vertical-travel.git"
revision="18.0"
path="addons.odoo18.0/OCA_vertical-travel"
path="odoo18.0/addons/OCA_vertical-travel"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="web.git" revision="18.0" path="addons.odoo18.0/OCA_web" remote="OCA" groups="addons,odoo18.0" />
<project
name="web.git"
revision="18.0_dev"
path="odoo18.0/addons/OCA_web"
remote="ERPLibre_origin_OCA"
groups="addons,odoo18.0"
/>
<project
name="website-cms.git"
revision="18.0"
path="addons.odoo18.0/OCA_website-cms"
path="odoo18.0/addons/OCA_website-cms"
remote="OCA"
groups="addons,odoo18.0"
/>
<project
name="website.git"
revision="18.0"
path="addons.odoo18.0/OCA_website"
path="odoo18.0/addons/OCA_website"
remote="OCA"
groups="addons,odoo18.0"
/>
<project name="wms.git" revision="18.0" path="addons.odoo18.0/OCA_wms" remote="OCA" groups="addons,odoo18.0" />
<project name="wms.git" revision="18.0" path="odoo18.0/addons/OCA_wms" remote="OCA" groups="addons,odoo18.0" />
</manifest>

View file

@ -2,11 +2,12 @@
<manifest>
<remote name="odoo" fetch="https://github.com/odoo/" />
<remote name="OCA" fetch="https://github.com/OCA/" />
<remote name="ERPLibre_origin_OCA" fetch="https://github.com/ERPLibre/" />
<project
name="OpenUpgrade.git"
revision="18.0"
revision="18.0_dev"
path="odoo18.0/OCA_OpenUpgrade"
remote="OCA"
remote="ERPLibre_origin_OCA"
clone-depth="10"
groups="migration,odoo18.0"
/>

View file

@ -23,10 +23,14 @@ aioshutil
openai
humanize
requests
urwid
dateutil
# Force upgrade package to fix Ubuntu 25.04
virtualenv==20.30.0
# For logical test and quality
git+https://github.com/psf/black.git@24.8.0
pre-commit
pre-commit
odoo-module-migrator

View file

@ -21,3 +21,4 @@ suds-jurko
vatnumber
dns
pypiwin32
rfc6266_parser

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -232,13 +232,13 @@ files = [
[[package]]
name = "asn1crypto"
version = "1.4.0"
version = "1.5.1"
description = "Fast ASN.1 parser and serializer with definitions for private keys, public keys, certificates, CRL, OCSP, CMS, PKCS#3, PKCS#7, PKCS#8, PKCS#12, PKCS#5, X.509 and TSP"
optional = false
python-versions = "*"
files = [
{file = "asn1crypto-1.4.0-py2.py3-none-any.whl", hash = "sha256:4bcdf33c861c7d40bdcd74d8e4dd7661aac320fcdf40b9a3f95b4ee12fde2fa8"},
{file = "asn1crypto-1.4.0.tar.gz", hash = "sha256:f4f6e119474e58e04a2b1af817eb585b4fd72bdd89b998624712b5c99be7641c"},
{file = "asn1crypto-1.5.1-py2.py3-none-any.whl", hash = "sha256:db4e40728b728508912cbb3d44f19ce188f218e9eba635821bb4b68564f8fd67"},
{file = "asn1crypto-1.5.1.tar.gz", hash = "sha256:13ae38502be632115abf8a24cbe5f4da52e3b5231990aff31123c805306ccb9c"},
]
[[package]]
@ -723,41 +723,15 @@ files = [
[package.dependencies]
numpy = "*"
[[package]]
name = "cbor2"
version = "5.4.2"
description = "Pure Python CBOR (de)serializer with extensive tag support"
optional = false
python-versions = ">=3.6"
files = [
{file = "cbor2-5.4.2-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:0153635a78e62d70f26f5b3469cb8de822420eda69c996304fb3d0dc1a53d7f3"},
{file = "cbor2-5.4.2-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70fb47a4bca70ae2d1b2b6c9d5ed6c898494739966653f7c84737f795b26d754"},
{file = "cbor2-5.4.2-cp36-cp36m-win_amd64.whl", hash = "sha256:10f178697e66eaae51534c3ef9acce1abf2f747e63c841e8702b9453c5bc4cfe"},
{file = "cbor2-5.4.2-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:4c112b21fad53b2d936ef2d55c698641a6d49025c1a9cf73db3ef24684514db1"},
{file = "cbor2-5.4.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:93baf1ee33a305acf8f1391fed4e63ea2e837b561294fd6275ce8785acb795fa"},
{file = "cbor2-5.4.2-cp37-cp37m-win_amd64.whl", hash = "sha256:d9f64241bb30439f6ebde74101683e9dceecab95afe105560ac9d0e54d1b3c2e"},
{file = "cbor2-5.4.2-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:2757a7b624478d3b6707adf8ab7aef03d81fdaca6bea981b2323069660b9360f"},
{file = "cbor2-5.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:32c1d00d8ad1a89f2358bf444fd43cacc3ca61f3c3feb1a2f2b2bea8ba4853d2"},
{file = "cbor2-5.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:79c10306d9128258dea110c01abbe9c58c48ee2ffcf995f982fb063f1a82e2ee"},
{file = "cbor2-5.4.2-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0e27c52abdccadadab858437f6d98d5e8711aa84f0af7417dd1404d16127db7f"},
{file = "cbor2-5.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aec8f415f039ab3be6cb58861c21bd2202f5c0ad6537b31956da532ea74ad"},
{file = "cbor2-5.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:310c7d7925f7aa6cb90791606be17c164bbf3b28d4d17047b5d19d303f2fe817"},
{file = "cbor2-5.4.2.tar.gz", hash = "sha256:e283e70b55a049ff364cc5e648fde587e4d9b0e87e4b2664c69e639135e6b3b8"},
]
[package.extras]
doc = ["sphinx-autodoc-typehints (>=1.2.0)", "sphinx-rtd-theme"]
test = ["pytest", "pytest-cov"]
[[package]]
name = "certifi"
version = "2025.7.14"
version = "2025.8.3"
description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.7"
files = [
{file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"},
{file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"},
{file = "certifi-2025.8.3-py3-none-any.whl", hash = "sha256:f6c12493cfb1b06ba2ff328595af9350c65d6644968e5d3a2ffd78699af217a5"},
{file = "certifi-2025.8.3.tar.gz", hash = "sha256:e564105f78ded564e3ae7c923924435e1daa7463faeab5bb932bc53ffae63407"},
]
[[package]]
@ -1875,21 +1849,6 @@ six = "*"
i18n = ["Babel (>=0.8)"]
plugin = ["setuptools (>=0.6a2)"]
[[package]]
name = "geoip2"
version = "2.9.0"
description = "MaxMind GeoIP2 API"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*"
files = [
{file = "geoip2-2.9.0-py2.py3-none-any.whl", hash = "sha256:a37ddac2d200ffb97c736da8b8ba9d5d8dc47da6ec0f162a461b681ecac53a14"},
{file = "geoip2-2.9.0.tar.gz", hash = "sha256:f7ffe9d258e71a42cf622ce6350d976de1d0312b9f2fbce3975c7d838b57ecf0"},
]
[package.dependencies]
maxminddb = ">=1.4.0"
requests = ">=2.9"
[[package]]
name = "geojson"
version = "2.5.0"
@ -2804,94 +2763,6 @@ pillow = ">=6.2.0"
pyparsing = ">=2.3.1"
python-dateutil = ">=2.7"
[[package]]
name = "maxminddb"
version = "2.6.3"
description = "Reader for the MaxMind DB format"
optional = false
python-versions = ">=3.8"
files = [
{file = "maxminddb-2.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d69c5493c81f11bca90961b4dfa028c031aa8e7bb156653edf242a03dfc51561"},
{file = "maxminddb-2.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:6cc002099c9e1637309df772789a36db9a4601c4623dd1ace8145d057358c20b"},
{file = "maxminddb-2.6.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ef41bfe15692fe15e1799d600366a0faa3673a0d7d7dbe6a305ec3a5b6f07708"},
{file = "maxminddb-2.6.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46bdc8dc528a2f64ef34182bf40084e05410344d40097c1e93554d732dfb0e15"},
{file = "maxminddb-2.6.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:98258a295149aadf96ed8d667468722b248fe47bb991891ad01cfa8cb9e9684a"},
{file = "maxminddb-2.6.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0dd55d2498d287b6cfd6b857deed9070e53c4b22a1acd69615e88dec92d95fb3"},
{file = "maxminddb-2.6.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:e38a449890a976365da1f2c927ac076838aa2715b464593080075a18ae4e0dc8"},
{file = "maxminddb-2.6.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:a70d46337c9497a5b3329d9c7fa7f45be33243ffad04924b8f06ffe41a136279"},
{file = "maxminddb-2.6.3-cp310-cp310-win32.whl", hash = "sha256:45da7549c952f88da39c9f440cb3fa2abbd7472571597699467641af88512730"},
{file = "maxminddb-2.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:6c977da32cc72784980da1928a79d38b3e9fe83faa9a40ea9bae598a6bf2f7bb"},
{file = "maxminddb-2.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:27ba5e22bd09fe324f0a4c5ed97e73c1c7c3ab7e3bae4e1e6fcaa15f175b9f5a"},
{file = "maxminddb-2.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa36f1ca12fd3a37ad758afd0666457a749b2c4b16db0eb3f8c953f55ae6325d"},
{file = "maxminddb-2.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:83d2324788a31a28bbb38b0dbdece5826f56db4df6e1538cf6f4b72f6a3da66c"},
{file = "maxminddb-2.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d4bac2b7b7609bed8dcf6beef1ef4a1e411e9e39c311070ffc2ace80d6de6444"},
{file = "maxminddb-2.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8868580f34b483d5b74edd4270db417e211906d57fb13bbeeb11ea8d5cd01829"},
{file = "maxminddb-2.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b29cea50b191784e2242227e0fac5bc985972b3849f97fe96c7f37fb7a7426d7"},
{file = "maxminddb-2.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:4d470fc4f9c5ed8854a945dc5ea56b2f0644a5c3e5872d0e579d66a5a9238d7f"},
{file = "maxminddb-2.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2849357de35bfed0011ad1ff14a83c946273ae8c75a8867612d22f559df70e7d"},
{file = "maxminddb-2.6.3-cp311-cp311-win32.whl", hash = "sha256:39254e173af7b0018c1508c2dd68ecda0c043032176140cfe917587e2d082f42"},
{file = "maxminddb-2.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:489c5ae835198a228380b83cc537a5ffb1911f1579d7545baf097e4a8eefcd9a"},
{file = "maxminddb-2.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:2b0fef825b23df047876d2056cbb69fb8d8e4b965f744f674be75e16fb86a52e"},
{file = "maxminddb-2.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:a38faf03db15cc285009c0ddaacd04071b84ebd8ff7d773f700c7def695a291c"},
{file = "maxminddb-2.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:edab18a50470031fc8447bcd9285c9f5f952abef2b6db5579fe50665bdcda941"},
{file = "maxminddb-2.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:415dd5de87adc7640d3da2a8e7cf19a313c1a715cb84a3433f0e3b2d27665319"},
{file = "maxminddb-2.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d78a02b70ededb3ba7317c24266217d7b68283e3be04cad0c34ee446a0217ee0"},
{file = "maxminddb-2.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:4b80275603bba6a95ed69d859d184dfa60bfd8e83cd4c8b722d7f7eaa9d95f8f"},
{file = "maxminddb-2.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:a6868438d1771c0bd0bbc95d84480c1ae04df72a85879e1ada42762250a00f59"},
{file = "maxminddb-2.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:efd875d43c4207fb90e10d582e4394d8a04f7b55c83c4d6bc0593a7be450e04f"},
{file = "maxminddb-2.6.3-cp312-cp312-win32.whl", hash = "sha256:aadb9d12e887a1f52e8214e539e5d78338356fad4ef2a51931f6f7dbe56c2228"},
{file = "maxminddb-2.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:7d6024d1e40244b5549c5e6063af109399a2f89503a24916b5139c4d0657f1c8"},
{file = "maxminddb-2.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9580b2cd017185db07baacd9d629ca01f3fe6f236528681c88a0209725376e9c"},
{file = "maxminddb-2.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:47828bed767b82c219ba7aa65f0cb03d7f7443d7270259ce931e133a40691d34"},
{file = "maxminddb-2.6.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:77112cb1a2e381de42c443d1bf222c58b9da203183bb2008dd370c3d2a587a4e"},
{file = "maxminddb-2.6.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:448d062e95242e3088df85fe7ed3f2890a9f4aea924bde336e9ff5d2337ca5fd"},
{file = "maxminddb-2.6.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a59d72bf373c61da156fd43e2be6da802f68370a50a2205de84ee76916e05f9f"},
{file = "maxminddb-2.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e867852037a8a26a24cfcf31b697dce63d488e1617af244c2895568d8f6c7a31"},
{file = "maxminddb-2.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:5a1586260eac831d61c2665b26ca1ae3ad00caca57c8031346767f4527025311"},
{file = "maxminddb-2.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6eb23f842a72ab3096f9f9b1c292f4feb55a8d758567cb6d77637c2257a3187c"},
{file = "maxminddb-2.6.3-cp313-cp313-win32.whl", hash = "sha256:acf46e20709a27d2b519669888e3f53a37bc4204b98a0c690664c48ff8cb1364"},
{file = "maxminddb-2.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:3015afb00e6168837938dbe5fda40ace37442c22b292ccee27c1690fbf6078ed"},
{file = "maxminddb-2.6.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9d913971187326e59be8a63068128b6439f6717b13c7c451e6d9e1723286d9ff"},
{file = "maxminddb-2.6.3-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:89afed255ac3652db7f91d8f6b278a4c490c47283ddbff5589c22cfdef4b8453"},
{file = "maxminddb-2.6.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:01b143a38ae38c71ebc9028d67bbcb05c1b954e0f3a28c508eaee46833807903"},
{file = "maxminddb-2.6.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:deebf098c79ce031069fec1d7202cba0e766b3f12adbb631d16223174994724a"},
{file = "maxminddb-2.6.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f49eefddad781e088969188c606b7988a7da27592590f6c4cc2b64fd2a85ff28"},
{file = "maxminddb-2.6.3-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:da584edc3e4465f5417a48602ed7e2bee4f2a7a2b43fcf2c40728cfc9f9fd5aa"},
{file = "maxminddb-2.6.3-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:e5a8cfe71db548aa9a520a3f7e92430b6b7900affadef3b0c83c530c759dd12f"},
{file = "maxminddb-2.6.3-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:daa20961ad0fb550038c02dbf76a04e1c1958a3b899fa14a7c412aed67380812"},
{file = "maxminddb-2.6.3-cp38-cp38-win32.whl", hash = "sha256:6480ca47db4d8d09296c268e8ff4e6f4c1d455773a67233c9f899dfa6af3e6c6"},
{file = "maxminddb-2.6.3-cp38-cp38-win_amd64.whl", hash = "sha256:0348c8dadef9493dbcd45f032ae271c7fd2216ed4bb4bab0aff371ffc522f871"},
{file = "maxminddb-2.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1bc2edcef76ce54d4df04f58aec98f4df0377f37aae2217587bfecd663ed5c66"},
{file = "maxminddb-2.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1f0b78c40a12588e9e0ca0ffe5306b6dea028dcd21f2c120d1ceb328a3307a98"},
{file = "maxminddb-2.6.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f06e9c908a9270e882f0d23f041a9674680a7a110412b453f902d22323f86d38"},
{file = "maxminddb-2.6.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46096646c284835c8a580ec2ccbf0d6d5398191531fa543bb0437983c75cb7ba"},
{file = "maxminddb-2.6.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0d82fbddf3a88e6aa6181bd16bc08a6939d6353f97f143eeddec16bc5394e361"},
{file = "maxminddb-2.6.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:6136dc8ad8c8f7e95a7d84174a990c1b47d5e641e3a3a8ae67d7bde625342dbb"},
{file = "maxminddb-2.6.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:01773fee182cc36f6d38c277936accf7c85b8f4c20d13bb630666f6b3f087ad8"},
{file = "maxminddb-2.6.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:890dd845e371f67edef7b19a2866191d9fff85faf88f4b4c416a0aaa37204416"},
{file = "maxminddb-2.6.3-cp39-cp39-win32.whl", hash = "sha256:4e0865069ef76b4f3eb862c042b107088171cbf43fea3dcaae0dd7253effe6e3"},
{file = "maxminddb-2.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3209d7a4b2f50d4b28a1d886d95b19094cdc840208e69dbbc40cae2c1cc65b"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b4729936fedb4793d9162b92d6de63e267e388c8938e19e700120b6df6a6ae6c"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:6887315de47f3a9840df19f498a4e68723c160c9448d276c3ef454531555778e"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34943b4b724a35ef63ec40dcf894a100575d233b23b6cd4f8224017ea1195265"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2d25acb42ef8829e8e3491b6b3b4ced9dbb4eea6c4ec24afdc4028051e7b8803"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a23c7c88f9df0727a3e56f2385ec19fb5f61bb46dcbebb6ddc5c948cf0b73b0a"},
{file = "maxminddb-2.6.3-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:85763c19246dce43044be58cb9119579c2efd0b85a7b79d865b741a698866488"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:7c5d15a0546821a7e9104b71ca701c01462390d0a1bee5cad75f583cf26c400b"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:de8415538d778ae4f4bb40e2cee9581e2d5c860abdbdbba1458953f5b314a6b0"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:81340e52c743cdc3c0f4a9f45f9cf4e3c2ae87bf4bbb34613c5059a5b829eb65"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0b140c1db0c218f485b033b51a086d98d57f55f4a4c2b1cb72fe6a5e1e57359a"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8ec674a2c2e4b47ab9f582460670a5c1d7725b1cbf16e6cbb94de1ae51ee9edf"},
{file = "maxminddb-2.6.3-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:e28622fd7c4ccd298c3f630161d0801182eb38038ca01319693a70264de40b89"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b09bb7bb98418a620b1ec1881d1594c02e715a68cdc925781de1e79b39cefe77"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:a6597599cde3916730d69b023045e6c22ff1c076d9cad7fb63641d36d01e3e93"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e7e6d5f3c1aa6350303edab8f0dd471e616d69b5d47ff5ecbf2c7c82998b9c6"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:536a39fb917a44b1cd037da624e3d11d49898b5579dfc00c4d7103a057dc51ab"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9ebd373a4ef69218bfbce93e9b97f583cfe681b28d4e32e0d64f76ded148fba"},
{file = "maxminddb-2.6.3-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:e441478922c2d311b8bc96f35d6e78306802774149fc20d07d96cc5c3b57dd02"},
{file = "maxminddb-2.6.3.tar.gz", hash = "sha256:d2c3806baa7aa047aa1bac7419e7e353db435f88f09d51106a84dbacf645d254"},
]
[[package]]
name = "mccabe"
version = "0.7.0"
@ -3449,13 +3320,13 @@ full = ["XLMMacroDeobfuscator"]
[[package]]
name = "openai"
version = "1.97.1"
version = "1.99.6"
description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
files = [
{file = "openai-1.97.1-py3-none-any.whl", hash = "sha256:4e96bbdf672ec3d44968c9ea39d2c375891db1acc1794668d8149d5fa6000606"},
{file = "openai-1.97.1.tar.gz", hash = "sha256:a744b27ae624e3d4135225da9b1c89c107a2a7e5bc4c93e5b7b5214772ce7a4e"},
{file = "openai-1.99.6-py3-none-any.whl", hash = "sha256:e40d44b2989588c45ce13819598788b77b8fb80ba2f7ae95ce90d14e46f1bd26"},
{file = "openai-1.99.6.tar.gz", hash = "sha256:f48f4239b938ef187062f3d5199a05b69711d8b600b9a9b6a3853cd271799183"},
]
[package.dependencies]
@ -3476,13 +3347,13 @@ voice-helpers = ["numpy (>=2.0.2)", "sounddevice (>=0.5.1)"]
[[package]]
name = "openpyxl"
version = "3.0.9"
version = "3.1.5"
description = "A Python library to read/write Excel 2010 xlsx/xlsm files"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.8"
files = [
{file = "openpyxl-3.0.9-py2.py3-none-any.whl", hash = "sha256:8f3b11bd896a95468a4ab162fc4fcd260d46157155d1f8bfaabb99d88cfcf79f"},
{file = "openpyxl-3.0.9.tar.gz", hash = "sha256:40f568b9829bf9e446acfffce30250ac1fa39035124d55fc024025c41481c90f"},
{file = "openpyxl-3.1.5-py2.py3-none-any.whl", hash = "sha256:5282c12b107bffeef825f4617dc029afaf41d0ea60823bbb665ef3079dc79de2"},
{file = "openpyxl-3.1.5.tar.gz", hash = "sha256:cf0e3cf56142039133628b5acffe8ef0c12bc902d2aadd3e0fe5878dc08d1050"},
]
[package.dependencies]
@ -3627,18 +3498,15 @@ dev = ["Sphinx (==1.2.2)", "black", "coverage (>=7.2.2,<7.3.0)", "flake8", "isor
[[package]]
name = "packaging"
version = "21.3"
version = "25.0"
description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.6"
python-versions = ">=3.8"
files = [
{file = "packaging-21.3-py3-none-any.whl", hash = "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"},
{file = "packaging-21.3.tar.gz", hash = "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb"},
{file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"},
{file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"},
]
[package.dependencies]
pyparsing = ">=2.0.2,<3.0.5 || >3.0.5"
[[package]]
name = "pandas"
version = "1.3.5"
@ -3794,13 +3662,13 @@ pillow = "*"
[[package]]
name = "phonenumbers"
version = "9.0.10"
version = "9.0.11"
description = "Python version of Google's common library for parsing, formatting, storing and validating international phone numbers."
optional = false
python-versions = "*"
files = [
{file = "phonenumbers-9.0.10-py2.py3-none-any.whl", hash = "sha256:13b12d269be1f2b363c9bc2868656a7e2e8b50f1a1cef629c75005da6c374c6b"},
{file = "phonenumbers-9.0.10.tar.gz", hash = "sha256:c2d15a6a9d0534b14a7764f51246ada99563e263f65b80b0251d1a760ac4a1ba"},
{file = "phonenumbers-9.0.11-py2.py3-none-any.whl", hash = "sha256:a8ebb2136f1f14dfdbadb98be01cb71b96f880dea011eb5e0921967fe3a23abf"},
{file = "phonenumbers-9.0.11.tar.gz", hash = "sha256:6573858dcf0a7a2753a071375e154d9fc11791546c699b575af95d2ba7d84a1d"},
]
[[package]]
@ -4439,21 +4307,20 @@ test = ["psutil", "pyopenssl", "pytest", "pytest-xdist", "setuptools"]
[[package]]
name = "pygithub"
version = "2.6.1"
version = "2.7.0"
description = "Use the full Github API v3"
optional = false
python-versions = ">=3.8"
files = [
{file = "PyGithub-2.6.1-py3-none-any.whl", hash = "sha256:6f2fa6d076ccae475f9fc392cc6cdbd54db985d4f69b8833a28397de75ed6ca3"},
{file = "pygithub-2.6.1.tar.gz", hash = "sha256:b5c035392991cca63959e9453286b41b54d83bf2de2daa7d7ff7e4312cebf3bf"},
{file = "pygithub-2.7.0-py3-none-any.whl", hash = "sha256:40ecbfe26dc55cc34ab4b0ffa1d455e6f816ef9a2bc8d6f5ad18ce572f163700"},
{file = "pygithub-2.7.0.tar.gz", hash = "sha256:7cd6eafabb09b5369afba3586d86b1f1ad6f1326d2ff01bc47bb26615dce4cbb"},
]
[package.dependencies]
Deprecated = "*"
pyjwt = {version = ">=2.4.0", extras = ["crypto"]}
pynacl = ">=1.4.0"
requests = ">=2.14.0"
typing-extensions = ">=4.0.0"
typing-extensions = ">=4.5.0"
urllib3 = ">=1.26.0"
[[package]]
@ -4522,25 +4389,27 @@ tests = ["coverage[toml] (==5.0.4)", "pytest (>=6.0.0,<7.0.0)"]
[[package]]
name = "pykcs11"
version = "1.5.17"
version = "1.5.18"
description = "A Full PKCS#11 wrapper for Python"
optional = false
python-versions = "*"
files = [
{file = "PyKCS11-1.5.17-cp310-cp310-win32.whl", hash = "sha256:2edad7e9ff1b7696c93e78e3de3737a80dcf611f6ec660b2d40bbdfe8b4db752"},
{file = "PyKCS11-1.5.17-cp310-cp310-win_amd64.whl", hash = "sha256:e934a728e9bf6136e1b3ef34ccadea3b38e5c55394a0d535f81141444140eab0"},
{file = "PyKCS11-1.5.17-cp311-cp311-win32.whl", hash = "sha256:47ff79a019c1f58f6abd2957000c19e759e6ff7683d0fff9395eb46b60356509"},
{file = "PyKCS11-1.5.17-cp311-cp311-win_amd64.whl", hash = "sha256:60bfa8a336cb921ab9b9bdb592a3fc5ccb5983c5bd464a1e5896490cb3c14fe2"},
{file = "PyKCS11-1.5.17-cp312-cp312-macosx_14_0_x86_64.whl", hash = "sha256:72794bb9f32756cba645263143990e3edcce934704df063d85c87ec561cc3095"},
{file = "PyKCS11-1.5.17-cp312-cp312-win32.whl", hash = "sha256:4417542f90131f2c88f7d347da45eab96fef55e350e1dfc0426cf9f210e5a55f"},
{file = "PyKCS11-1.5.17-cp312-cp312-win_amd64.whl", hash = "sha256:911ab211e02a6676f546dabacefddbe1d91830698e61145090003c87dc1dbee2"},
{file = "PyKCS11-1.5.17-cp37-cp37m-win32.whl", hash = "sha256:6710997ed0f6c9e1c36d2373db76429fe2130c98ff27a891209c9fdd424bc212"},
{file = "PyKCS11-1.5.17-cp37-cp37m-win_amd64.whl", hash = "sha256:6009ea06417546753dd72d43419bf08508bdc79fffcba204db9a8462d694b363"},
{file = "PyKCS11-1.5.17-cp38-cp38-win32.whl", hash = "sha256:df72223865f3e7f56a66d8aee80590d44450f4b2cd3433601bd07e7ffa10dc43"},
{file = "PyKCS11-1.5.17-cp38-cp38-win_amd64.whl", hash = "sha256:9bf9a7fdf0023079bdb00566f437a0640578c85f932e78fbe4a14d98daded582"},
{file = "PyKCS11-1.5.17-cp39-cp39-win32.whl", hash = "sha256:fcafd8b610348f5cdfd267a4c3022b7a4bd54fcc87561b003f2178d9cf937934"},
{file = "PyKCS11-1.5.17-cp39-cp39-win_amd64.whl", hash = "sha256:3b1113cb462fa71df1261241887656bd457300325a909689b4e961d245a335b0"},
{file = "pykcs11-1.5.17.tar.gz", hash = "sha256:7b667e959fa0b6ad0750b03e2081a059cbe9a62789766143e50f90988a338994"},
{file = "PyKCS11-1.5.18-cp310-cp310-win32.whl", hash = "sha256:b1fe9d789cf4905d485b42356740cb8161794c436a7bfe5f939f054f0bd0a8cb"},
{file = "PyKCS11-1.5.18-cp310-cp310-win_amd64.whl", hash = "sha256:704a4bf39e746a6ac04ccec87d90d9304a2b141db382bad4fe4bf7454c3b1cb1"},
{file = "PyKCS11-1.5.18-cp311-cp311-win32.whl", hash = "sha256:e82b21e5fc6fd1d254c7eec782dce1f6b3ec910ddaacdf479542e5255def06b4"},
{file = "PyKCS11-1.5.18-cp311-cp311-win_amd64.whl", hash = "sha256:110b19f3fdf53ae002440edc7e4452aad5758f200f3209afa05db0c9e43da25f"},
{file = "PyKCS11-1.5.18-cp37-cp37m-win32.whl", hash = "sha256:66261a2c16bd730ef19bcfa65b94f9006d968605a21be8da5d2d8c30c0dfc1c9"},
{file = "PyKCS11-1.5.18-cp37-cp37m-win_amd64.whl", hash = "sha256:b87c44c30d330d6fd82f5b94b52fd855f159af92c44a28a8fb2f2c2fb46cf954"},
{file = "PyKCS11-1.5.18-cp38-cp38-win32.whl", hash = "sha256:13bbda2f081613af35dd1ac93291b6ade7097f837bdd2c9d79bf0c6ab39a7717"},
{file = "PyKCS11-1.5.18-cp38-cp38-win_amd64.whl", hash = "sha256:3c46ceb9e834e3306ca2d8a78cdc4d0a90dcb7ecd8a896996b757b3a1e4be817"},
{file = "PyKCS11-1.5.18-cp39-cp39-win32.whl", hash = "sha256:8c80486f1053a61fa95823b79247c72153f2812c5ac3faf6bf3086004be9bd49"},
{file = "PyKCS11-1.5.18-cp39-cp39-win_amd64.whl", hash = "sha256:ea772f4717480e97901677b103dc4e267c0df4023ba0f44721487013283aed29"},
{file = "pykcs11-1.5.18-cp312-cp312-win32.whl", hash = "sha256:505f7c5565934dcace4e4b70404792ae0ae7208e53d5b170d31873064d3d59c4"},
{file = "pykcs11-1.5.18-cp312-cp312-win_amd64.whl", hash = "sha256:5e900551bde66ea470d49ec1e7981f36680c87b74d004278ea8f28e9d53c74d6"},
{file = "pykcs11-1.5.18-cp313-cp313-macosx_15_0_x86_64.whl", hash = "sha256:a180fb431452f4ac5f0d8c8dae7cb664803d7f692465547b7720c820bc3d77ea"},
{file = "pykcs11-1.5.18-cp313-cp313-win32.whl", hash = "sha256:331326adefca73021482b2edc27a7bb896061e0bd65de503787f52818cea3629"},
{file = "pykcs11-1.5.18-cp313-cp313-win_amd64.whl", hash = "sha256:2fb89ff22c03b8358b7329cffad709838697c86cf5c9ca500dffec1a1d1c0589"},
{file = "pykcs11-1.5.18.tar.gz", hash = "sha256:12fd878b369821d80c1be8a140c85e8a0fb1358fcaaba66ca66869213692f227"},
]
[[package]]
@ -4724,13 +4593,13 @@ diagrams = ["jinja2", "railroad-diagrams"]
[[package]]
name = "pypdf"
version = "5.8.0"
version = "5.9.0"
description = "A pure-python PDF library capable of splitting, merging, cropping, and transforming PDF files"
optional = false
python-versions = ">=3.8"
files = [
{file = "pypdf-5.8.0-py3-none-any.whl", hash = "sha256:bfe861285cd2f79cceecefde2d46901e4ee992a9f4b42c56548c4a6e9236a0d1"},
{file = "pypdf-5.8.0.tar.gz", hash = "sha256:f8332f80606913e6f0ce65488a870833c9d99ccdb988c17bb6c166f7c8e140cb"},
{file = "pypdf-5.9.0-py3-none-any.whl", hash = "sha256:be10a4c54202f46d9daceaa8788be07aa8cd5ea8c25c529c50dd509206382c35"},
{file = "pypdf-5.9.0.tar.gz", hash = "sha256:30f67a614d558e495e1fbb157ba58c1de91ffc1718f5e0dfeb82a029233890a1"},
]
[package.dependencies]
@ -5422,28 +5291,6 @@ typing-extensions = {version = ">=4.0.0,<5.0", markers = "python_version < \"3.9
[package.extras]
jupyter = ["ipywidgets (>=7.5.1,<8.0.0)"]
[[package]]
name = "rjsmin"
version = "1.1.0"
description = "Javascript Minifier"
optional = false
python-versions = "*"
files = [
{file = "rjsmin-1.1.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:799890bd07a048892d8d3deb9042dbc20b7f5d0eb7da91e9483c561033b23ce2"},
{file = "rjsmin-1.1.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:211c2fe8298951663bbc02acdffbf714f6793df54bfc50e1c6c9e71b3f2559a3"},
{file = "rjsmin-1.1.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:585e75a84d9199b68056fd4a083d9a61e2a92dfd10ff6d4ce5bdb04bc3bdbfaf"},
{file = "rjsmin-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:e487a7783ac4339e79ec610b98228eb9ac72178973e3dee16eba0e3feef25924"},
{file = "rjsmin-1.1.0-cp34-cp34m-manylinux1_i686.whl", hash = "sha256:0ab825839125eaca57cc59581d72e596e58a7a56fbc0839996b7528f0343a0a8"},
{file = "rjsmin-1.1.0-cp34-cp34m-manylinux1_x86_64.whl", hash = "sha256:6044ca86e917cd5bb2f95e6679a4192cef812122f28ee08c677513de019629b3"},
{file = "rjsmin-1.1.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:ecd29f1b3e66a4c0753105baec262b331bcbceefc22fbe6f7e8bcd2067bcb4d7"},
{file = "rjsmin-1.1.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:975b69754d6a76be47c0bead12367a1ca9220d08e5393f80bab0230d4625d1f4"},
{file = "rjsmin-1.1.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:466fe70cc5647c7c51b3260c7e2e323a98b2b173564247f9c89e977720a0645f"},
{file = "rjsmin-1.1.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:e3908b21ebb584ce74a6ac233bdb5f29485752c9d3be5e50c5484ed74169232c"},
{file = "rjsmin-1.1.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:714329db774a90947e0e2086cdddb80d5e8c4ac1c70c9f92436378dedb8ae345"},
{file = "rjsmin-1.1.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:dd0f4819df4243ffe4c964995794c79ca43943b5b756de84be92b445a652fb86"},
{file = "rjsmin-1.1.0.tar.gz", hash = "sha256:b15dc75c71f65d9493a8c7fa233fdcec823e3f1b88ad84a843ffef49b338ac32"},
]
[[package]]
name = "rsa"
version = "4.9.1"
@ -6475,17 +6322,6 @@ files = [
{file = "xlrd-1.2.0.tar.gz", hash = "sha256:546eb36cee8db40c3eaa46c351e67ffee6eeb5fa2650b71bc4c758a29a1b29b2"},
]
[[package]]
name = "xlsxwriter"
version = "1.1.2"
description = "A Python module for creating Excel XLSX files."
optional = false
python-versions = "*"
files = [
{file = "XlsxWriter-1.1.2-py2.py3-none-any.whl", hash = "sha256:7cc07619760641b67112dbe0df938399d4d915d9b9924bb58eb5c17384d29cc6"},
{file = "XlsxWriter-1.1.2.tar.gz", hash = "sha256:ae22658a0fc5b9e875fa97c213d1ffd617d86dc49bf08be99ebdac814db7bf36"},
]
[[package]]
name = "xlwt"
version = "1.3.0"
@ -6784,4 +6620,4 @@ files = [
[metadata]
lock-version = "2.0"
python-versions = ">=3.8.20,<3.9"
content-hash = "9cf07ce0816af48f5325e9319352d24741271551ecff5ffe18d84d832752b18c"
content-hash = "660feb736151a54776a49b047a9dcf428145a2add97c89dddca2178be2c9d542"

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -20,7 +20,6 @@ authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
[tool.poetry.dependencies]
python = ">=3.7.16,<3.8"
acme = "2.6.0"
agithub = "^2.2.2"
aioshutil = "<1.2"
altair = "5.0.1"
argcomplete = "3.1.1"
@ -29,16 +28,15 @@ astor = "^0.8.1"
azure-identity = "1.15.0"
azure-storage-blob = "12.19.0"
babel = "2.9.1"
beautifulsoup4 = "^4.12.3"
beautifulsoup4 = "^4.13.4"
bokeh = "1.1.0"
boto3 = "1.33.13"
cachetools = ">=2.0.1"
cerberus = "^1.3.5"
cerberus = "^1.3.7"
chardet = "5.0.0"
click = "^8.1.7"
click = "8.1.8"
cloudflare = "3.0.1"
code-writer = "1.1.1"
colorama = "^0.4.6"
configparser = "5.0.2"
coverage = "7.2.7"
cryptography = "39.0.1"
@ -50,21 +48,20 @@ dnspython = "2.3.0"
docutils = "0.17.1"
ebaysdk = "2.1.5"
email-validator = "2.0.0"
emoji = "^2.14.0"
emoji = "^2.14.1"
extract-msg = "0.36.1"
factur-x = "^3.1"
factur-x = "3.6"
feedparser = "6.0.10"
flake8 = "<6.0.0"
formio-data = "^2.1.0"
formio-data = "^2.1.1"
freezegun = "1.2.2"
furo = "2021.2.21b25"
future = "0.18.3"
geojson = "<3.0.0"
gevent = "1.5.0"
gitpython = "3.1.30"
gitpython = "^3.1.45"
giturlparse = "0.10.0"
greenlet = "0.4.14"
gst = "^0.1.0"
html2text = "2016.9.19"
humanize = "4.6.0"
invoice2data = "0.3.5"
@ -73,7 +70,7 @@ isort = "<5.12.0"
jinja2 = "2.11.3"
jira = "2.0.0"
jose = "^1.0.0"
josepy = "^1.14.0"
josepy = "1.14.0"
js2py = "^0.74"
keystoneauth1 = "3.14.0"
lasso = "^0.1.0"
@ -83,7 +80,7 @@ mako = "1.2.2"
markupsafe = "0.23"
mmg = "1.0.3"
mock = "2.0.0"
mpld3 = "^0.5.10"
mpld3 = "^0.5.11"
mysqlclient = "2.1.1"
num2words = "0.5.6"
numpy = "1.21.1"
@ -93,17 +90,17 @@ odoorpc = "^0.10.1"
ofxparse = "0.16"
olefile = "0.47"
openpyxl = "3.1.3"
openupgradelib = "^3.7.1"
openupgradelib = "^3.11.1"
orjson = "3.6.0"
ovh = "1.1.2"
paho-mqtt = "^2.1.0"
pandas = "1.3.5"
paramiko = "^3.5.0"
paramiko = "3.5.1"
passlib = "1.6.5"
pdf2image = "^1.17.0"
pdfminer = "^20191125"
pexpect = "^4.9.0"
phonenumbers = "^8.13.47"
phonenumbers = "^9.0.12"
pillow = "9.3.0"
plotly = "4.1.0"
portalocker = "1.7.1"
@ -117,8 +114,6 @@ py3o-template = "^0.10.0"
pycountry = "22.3.5"
pydot = "1.2.3"
pygments = "2.7.4"
pygments-csv-lexer = ">=0.1,<1.0"
pygobject = "3.44.1"
pygount = ">1.2.1"
pyjsparser = "^2.7.1"
pyjwt = "2.5.0"
@ -128,22 +123,21 @@ pymssql = "2.3.0"
pymysql = "^1.1.1"
pyotp = "^2.9.0"
pyparsing = "2.1.10"
pypdf = "4.3.1"
pypdf2 = "1.27.9"
pyproj = "3.2.1"
pysass = ">=0.1.0,<0.2.0"
pyserial = "3.1.1"
pysftp = "^0.2.9"
python-chess = "<0.24"
python-dateutil = "2.7.3"
python-git = "^2018.2.1"
python-jose = "^3.3.0"
python-jose = "3.3.0"
python-json-logger = "0.1.5"
python-keystoneclient = "3.22.0"
python-ldap = "^3.4.4"
python-pptx = "0.6.23"
python-randomword-fr = "^1.0.0"
python-slugify = ">=3.0.2"
python-stdnum = "^1.20"
python-stdnum = "1.20"
python-swiftclient = "3.9.0"
python-u2flib-server = "^5.0.1"
pytz = ">=2022.7"
@ -159,9 +153,8 @@ requests-mock = "^1.12.1"
requests-oauthlib = "1.1.0"
requests-toolbelt = "0.9.1"
responses = "0.23.1"
retrying = "^1.3.4"
selenium = "4.11.2"
sentry-sdk = "^2.17.0"
sentry-sdk = "^2.35.0"
serial = "^0.0.97"
setuptools = "65.5.1"
shapely = "1.8.5"
@ -169,16 +162,15 @@ simplejson = "3.16.0"
slugify = "^0.0.1"
soappy = "^0.12.22"
sphinx = "3.0"
sphinx-intl = "^2.2.0"
sphinx-intl = "2.2.0"
sphinx-rtd-theme = "1.2.2"
sqlalchemy = "^2.0.36"
sqlalchemy = "2.0.36"
sqlparse = "0.4.4"
statsd = "3.2.1"
toml = "^0.10.2"
tornado = "6.1"
tqdm = "^4.66.5"
tqdm = "^4.67.1"
unidecode = "1.0.22"
unidiff = "^0.7.5"
urllib3 = ">=1.26.13"
uvloop = "0.17.0"
validators = "0.20.0"
@ -194,12 +186,10 @@ wheel = "0.42.0"
win-unicode-console = "^0.5"
xlrd = "1.0.0"
xlsxwriter = "0.9.3"
xlwt = "1.3"
xmlformatter = "^0.2.6"
xmltodict = "^0.14.2"
xmlformatter = "^0.2.8"
zeep = "4.2.1"
zipp = ">=3.6.0"
zxcvbn = "^4.4.28"
zxcvbn = "^4.5.0"
[tool.poetry.dev-dependencies]
websocket_client = "^1.1.0"

View file

@ -20,16 +20,19 @@ authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
[tool.poetry.dependencies]
python = ">=3.7.16,<3.8"
acme = "2.6.0"
aiohttp = "3.8.6"
aioshutil = "<1.2"
altair = "5.0.1"
argcomplete = "3.1.1"
asn1crypto = "1.4.0"
astor = "^0.8.1"
avalara = "^25.7.1"
azure-identity = "1.15.0"
azure-storage-blob = "12.19.0"
babel = "2.9.1"
beautifulsoup4 = "^4.13.4"
bokeh = "1.1.0"
boto3 = "1.33.13"
cbor2 = "5.4.2"
cachetools = ">=2.0.1"
chardet = "5.0.0"
click = "8.1.8"
cloudflare = "3.0.1"
@ -37,94 +40,124 @@ code-writer = "1.1.1"
coverage = "7.2.7"
cryptography = "39.0.1"
css-html-prettify = "^2.5.5"
cubiscan = "^0.0.3"
cython = "3.0.10"
decorator = "4.3.0"
dicttoxml = "^1.7.16"
dnspython = "2.3.0"
docutils = "0.17.1"
ebaysdk = "2.1.5"
email-validator = "2.0.0"
emoji = "^2.14.1"
endesive = "^2.19.1"
extract-msg = "0.36.1"
factur-x = "^3.6"
factur-x = "3.6"
feedparser = "6.0.10"
flake8 = "<6.0.0"
freezegun = "1.1.0"
formio-data = "^2.1.1"
furo = "2021.2.21b25"
future = "0.18.3"
geoip2 = "2.9.0"
geojson = "<3.0.0"
gevent = "1.5.0"
gitpython = "^3.1.45"
giturlparse = "0.10.0"
greenlet = "0.4.14"
html2text = "2016.9.19"
humanize = "4.6.0"
idna = "2.10"
iscompatible = "^0.1.1"
isort = "<5.12.0"
jinja2 = "2.11.3"
jira = "2.0.0"
josepy = "1.14.0"
keystoneauth1 = "3.14.0"
libsass = "0.17.0"
lxml = "4.9.1"
mako = "1.2.2"
markupsafe = "1.1.0"
matplotlib = "3.3.4"
mmg = "1.0.3"
mock = "2.0.0"
mpld3 = "0.3"
mysqlclient = "2.1.1"
num2words = "0.5.6"
numpy = "1.21.1"
odoorpc = "0.7.0"
numpy-financial = "<=1.0.0"
oauthlib = "3.2.2"
odoorpc = "^0.10.1"
ofxparse = "0.19"
olefile = "0.47"
openpyxl = "3.1.3"
openupgradelib = "^3.11.1"
ovh = "1.1.2"
packaging = "21.3"
pandas = "1.3.5"
paramiko = "3.5.1"
passlib = "1.7.1"
phonenumbers = "^9.0.10"
pathspec = "0.11.2"
pdf2image = "^1.17.0"
phantomjs = "^1.4.1"
phonenumbers = "^9.0.12"
pillow = "9.3.0"
polib = "1.1.0"
premailer = "^3.10.0"
prometheus-client = "0.11.0"
psutil = "5.9.0"
psycopg2 = "2.9.5"
py3o-formats = "^0.3"
py3o-template = "^0.10.0"
pycountry = "22.3.5"
pydot = "1.4.1"
pyftpdlib = "^2.0.1"
pygments = "2.7.4"
pygount = "1.2.1"
pyjwt = "2.5.0"
pykcs11 = "^1.5.17"
pylint-odoo = "8.0.19"
pymssql = "2.3.0"
pyopenssl = "21.0.0"
pyopenssl = "<23"
pyparsing = "2.2.0"
pypdf = "4.3.1"
pypdf2 = "1.27.9"
pyproj = "3.2.1"
pysaml2 = "7.3.1"
pyserial = "3.4"
python-chess = "^1.999"
pysftp = "^0.2.9"
python-chess = "<0.24"
python-dateutil = "2.7.3"
python-git = "^2018.2.1"
python-jose = "3.3.0"
python-json-logger = "0.1.5"
python-keystoneclient = "3.22.0"
python-ldap = "3.1.0"
python-magic = "^0.4.27"
python-pptx = "0.6.23"
python-stdnum = "1.17"
python-swiftclient = "^4.8.0"
python-slugify = "^8.0.4"
python-stdnum = "1.20"
python-swiftclient = "3.9.0"
python-u2flib-server = "^5.0.1"
pytz = ">=2022.7"
pyusb = "1.0.2"
pyyaml = "6.0"
pyzbar = "^0.1.9"
qrcode = "6.1"
randomwords = "^0.4.0"
raven = "^6.10.0"
redis = "2.10.5"
reportlab = "3.6.5"
requests = "2.28.1"
requests-mock = "^1.12.1"
responses = "0.23.1"
rjsmin = "1.1.0"
selenium = "4.11.2"
setuptools = "65.5.1"
shapely = "1.8.5"
simplejson = "^3.20.1"
sphinx = "3.0"
sphinx-intl = "2.2.0"
sphinx-rtd-theme = "1.2.2"
sqlalchemy = "2.0.36"
sqlparse = "0.4.4"
statsd = "3.2.1"
suds = "^1.2.0"
toml = "^0.10.2"
tqdm = "^4.67.1"
unidecode = "^1.4.0"
urllib3 = ">=1.26.13"
uvloop = "0.17.0"
validators = "0.20.0"
@ -136,10 +169,12 @@ werkzeug = "0.16.1"
wheel = "0.42.0"
win-unicode-console = "^0.5"
xlrd = "1.1.0"
xlsxwriter = "1.1.2"
xmlformatter = "^0.2.8"
xmlschema = "2.5.1"
xmltodict = "^0.14.2"
zeep = "4.2.1"
zipp = ">=3.6.0"
zxcvbn = "^4.5.0"
[tool.poetry.dev-dependencies]
websocket_client = "^1.1.0"
@ -147,3 +182,7 @@ websocket_client = "^1.1.0"
[tool.poetry.dependencies.black]
git = "https://github.com/psf/black.git"
rev = "22.3.0"
[tool.poetry.dependencies.wechatpy]
extras = [ "cryptography",]
version = "^1.8.18"

View file

@ -23,7 +23,7 @@ acme = "2.11.0"
aiohttp = "3.10.10"
aioshutil = "<1.2"
anyio = ">=3.5"
asn1crypto = "1.4.0"
asn1crypto = "^1.5.1"
astor = "^0.8.1"
avalara = "^25.7.1"
azure-identity = "1.13.0"
@ -34,7 +34,6 @@ bokeh = "2.4.2"
boto3 = ">=1.20.41"
cachetools = "5.5.2"
cadquery = "2.4.0"
cbor2 = "5.4.2"
chardet = "5.0.0"
click = "8.1.8"
cloudflare = "2.20.0"
@ -56,7 +55,6 @@ flake8 = "<6.0.0"
formio-data = "^2.1.1"
freezegun = "0.3.15"
future = "0.18.3"
geoip2 = "2.9.0"
geojson = "<3.0.0"
gevent = "20.9.0"
gitpython = "^3.1.45"
@ -68,7 +66,7 @@ img2pdf = "^0.6.1"
iscompatible = "^0.1.1"
isort = "<5.12.0"
jinja2 = "2.11.3"
jira = "^3.8.0"
jira = "3.8.0"
josepy = "1.14.0"
keystoneauth1 = "3.14.0"
libsass = "0.18.0"
@ -86,17 +84,16 @@ oauthlib = "^3.3.1"
odoo-test-helper = "^2.1.1"
odoorpc = "^0.10.1"
ofxparse = "0.19"
openai = "^1.97.1"
openpyxl = "3.0.9"
openai = "^1.99.6"
openpyxl = "^3.1.5"
openupgradelib = "^3.11.1"
ovh = "1.1.2"
packaging = "21.3"
pandas = "1.3.5"
paramiko = "^3.5.1"
paramiko = "3.5.1"
passlib = "1.7.3"
pathspec = "^0.12.1"
pdf2image = "^1.17.0"
phonenumbers = "^9.0.10"
phonenumbers = "^9.0.11"
pillow = "10.3.0"
polib = "1.1.0"
prometheus-client = "0.11.0"
@ -107,15 +104,15 @@ py3o-template = "^0.10.0"
pycountry = "^24.6.1"
pydot = "1.4.1"
pyftpdlib = "^2.0.1"
pygithub = "^2.6.1"
pygithub = "^2.7.0"
pygments = "2.7.4"
pygount = "1.5.1"
pyjwt = "2.5.0"
pykcs11 = "^1.5.17"
pykcs11 = "^1.5.18"
pylint = "3.1.0"
pymssql = "<=2.2.5"
pyopenssl = "21.0.0"
pypdf = "^5.8.0"
pypdf = "^5.9.0"
pypdf2 = "1.27.9"
pyproj = "3.2.1"
pysaml2 = "7.2.1"
@ -144,7 +141,6 @@ reportlab = "3.6.5"
requests = "2.28.1"
requests-oauthlib = "^2.0.0"
requests-toolbelt = "^1.0.0"
rjsmin = "1.1.0"
schwifty = "2024.4.0"
selenium = "4.25.0"
sentry-sdk = "<=1.9.0"
@ -170,7 +166,6 @@ werkzeug = "0.16.1"
wheel = "^0.45.1"
win-unicode-console = "^0.5"
xlrd = "1.2.0"
xlsxwriter = "1.1.2"
xlwt = "1.3.0"
xmlformatter = "^0.2.8"
xmlrunner = "^1.7.7"

View file

@ -22,7 +22,7 @@ python = ">=3.10.14,<3.11"
a2wsgi = ">=1.10.6"
algoliasearch = ">=2.0,<3.0"
apispec = ">=4.0.0"
asana = "^5.2.0"
asana = "^5.2.1"
asn1crypto = "^1.5.1"
astor = "^0.8.1"
avalara = "^25.7.1"
@ -38,15 +38,15 @@ cachetools = "5.5.2"
cairosvg = "^2.8.2"
cerberus = "^1.3.7"
chardet = "4.0.0"
chromedriver-binary = "^140.0.7322.0.0"
chromedriver-binary = "^141.0.7362.0.0"
clicksend-client = "^5.0.78"
cmake = "^4.0.3"
cmake = "^4.1.0"
contextvars = "^2.4"
countryinfo = "^0.1.2"
cryptography = "3.4.8"
cssselect = "^1.3.0"
cybersource-rest-client-python = "0.0.56"
cython = "^3.1.2"
cython = "^3.1.3"
decorator = "4.4.2"
dicomweb-client = "^0.60.1"
dlib = "^20.0.0"
@ -57,10 +57,10 @@ dropbox = "^12.0.2"
ebaysdk = "2.1.5"
elasticsearch = ">=7.0.0,<=7.13.4"
email-validator = "^2.2.0"
endesive = "^2.19.0"
endesive = "^2.19.1"
extendable = ">=0.0.4"
extendable-pydantic = ">=1.2.0"
extract-msg = "^0.54.1"
extract-msg = "^0.55.0"
ezdxf = "^1.4.2"
face-recognition = "^1.3.0"
factur-x = "^3.8"
@ -78,11 +78,12 @@ gitpython = "^3.1.45"
google-cloud-documentai = "^3.5.0"
googletrans-py = "4.0.0"
graphene = "^3.4.3"
graphql-server = "^3.0.0b7"
graphql-server = "^3.0.0"
greenlet = "3.2.1"
httpagentparser = "1.8.1"
hubspot-api-client = "10.0.0"
idna = "2.10"
img2pdf = "^0.6.1"
itsdangerous = "^2.2.0"
jinja2 = "2.11.3"
jsondiff = "^2.2.1"
@ -95,7 +96,7 @@ mako = "^1.3.10"
markupsafe = "1.1.1"
marshmallow = "<4.0.0"
marshmallow-objects = ">=2.0.0"
matplotlib = "^3.10.3"
matplotlib = "^3.10.5"
mechanize = "^0.4.10"
messagebird = "^2.2.0"
meteostat = "^1.7.4"
@ -112,24 +113,25 @@ odoo-test-helper = "^2.1.1"
odoorpc = "^0.10.1"
ofxparse = "0.21"
ofxtools = "^0.9.5"
openai = "^1.97.1"
openai = "^1.99.9"
opencv-python = "^4.12.0.88"
openpyxl = "^3.1.5"
openupgradelib = "^3.11.1"
ovh = "^1.2.0"
pandas = ">=0.25.3"
paramiko = "^3.5.1"
paramiko = "<4"
parse-accept-language = "^0.1.2"
passlib = "1.7.4"
pathspec = "^0.12.1"
pay-ccavenue = "^1.0.0"
pdf2image = "^1.17.0"
pdfminer = "^20191125"
phonenumbers = "^9.0.10"
phonenumbers = "^9.0.12"
pika = "^1.3.2"
pillow = "10.3.0"
plotly = "5.13.1"
polib = "1.1.0"
pre-commit = "^4.2.0"
pre-commit = "^4.3.0"
premailer = "^3.10.0"
printnodeapi = "^0.2.0"
prometheus-client = "0.15.0"
@ -146,8 +148,8 @@ pydantic = ">=2.0.0"
pydevd-odoo = "^1.2.2"
pydifact = "^0.1.8"
pydot = "1.4.2"
pyfcm = "^2.0.8"
pygithub = "^2.6.1"
pyfcm = "^2.1.0"
pygithub = "^2.7.0"
pyjwt = "^2.10.1"
pymssql = "<=2.2.5"
pyncclient = "^0.7"
@ -179,23 +181,23 @@ pyzk = "^0.9"
qrcode = "6.1"
redis = "4.3.4"
reportlab = "3.6.5"
requests = "2.30.0"
requests = "2.31.0"
requests-oauthlib = "^2.0.0"
requests-toolbelt = "^1.0.0"
responses = "^0.25.7"
responses = "^0.25.8"
roulier = "^1.1.1"
schwifty = "2024.4.0"
selenium = "^4.34.2"
selenium = "^4.35.0"
sentry-sdk = "<=1.9.0"
setuptools = "65.5.1"
shapely = "^2.1.1"
simplejson = "^3.20.1"
spacy = "3.8.2"
speechrecognition = "3.10.0"
sqlalchemy = "^2.0.41"
sqlalchemy = "^2.0.43"
statsd = "4.0.1"
telesign = "^2.3.1"
telnyx = "^2.1.5"
telnyx = "^2.1.6"
tldextract = "^5.3.0"
todoist-python = "^8.1.4"
tweepy = "^4.16.0"
@ -206,7 +208,7 @@ unidecode = "^1.4.0"
urllib3 = "2.5.0"
validate-email = "^1.3"
vobject = "0.9.6.1"
vonage = "^4.4.3"
vonage = "^4.6.0"
vonage-verify-v2 = "1.1.4"
werkzeug = "2.0.2"
xlrd = "1.2.0"

View file

@ -19,24 +19,24 @@ authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
[tool.poetry.dependencies]
python = ">=3.10.18,<3.11"
asana = "^5.2.0"
asana = "^5.2.1"
asn1crypto = "^1.5.1"
astor = "^0.8.1"
avalara = "^25.7.1"
azure-identity = "^1.23.1"
azure-identity = "^1.24.0"
azure-storage-blob = "^12.26.0"
babel = "2.9.1"
base64io = "^1.0.3"
beautifulsoup4 = "^4.13.4"
bokeh = "3.4.1"
boto3 = "^1.39.14"
boto3 = "^1.40.11"
cachetools = "5.5.2"
chardet = "4.0.0"
countryinfo = "^0.1.2"
cryptography = "3.4.8"
cssselect = "^1.3.0"
cybersource-rest-client-python = "0.0.56"
cython = "^3.1.2"
cython = "^3.1.3"
decorator = "4.4.2"
dnspython = "^2.7.0"
docutils = "0.17"
@ -47,7 +47,7 @@ endesive = "<=2.18.5"
ezdxf = "^1.4.2"
factur-x = "^3.8"
filetype = "^1.2.0"
firebase-admin = "^7.0.0"
firebase-admin = "^7.1.0"
formio-data = "^2.1.1"
freezegun = "0.3.15"
fsspec = ">=2024.5.0"
@ -63,13 +63,14 @@ greenlet = "3.2.1"
httpagentparser = "^1.9.5"
hubspot-api-client = "10.0.0"
idna = "2.10"
img2pdf = "^0.6.1"
jinja2 = "2.11.3"
libsass = "0.20.1"
linkedin = "^0.1.5"
lxml = "4.6.5"
mako = "^1.3.10"
markupsafe = "1.1.1"
matplotlib = "^3.10.3"
matplotlib = "^3.10.5"
mechanize = "^0.4.10"
meteostat = "^1.7.4"
mpld3 = "0.5.10"
@ -81,19 +82,21 @@ numpy-financial = "<=1.0.0"
numpy-stl = "^3.2.0"
odoorpc = "^0.10.1"
ofxparse = "0.21"
openai = "^1.99.9"
opencv-python = "^4.12.0.88"
openpyxl = "^3.1.5"
openupgradelib = "^3.11.1"
pandas = ">=0.25.3"
paramiko = "^3.5.1"
paramiko = "<4"
passlib = "1.7.4"
pathspec = "^0.12.1"
pdf2image = "^1.17.0"
pdfminer = "^20191125"
phonenumbers = "^9.0.10"
phonenumbers = "^9.0.12"
pillow = "10.3.0"
plotly = "5.22.0"
polib = "1.1.1"
pre-commit = "^4.2.0"
pre-commit = "^4.3.0"
printnodeapi = "^0.2.0"
prometheus-client = "^0.22.1"
psutil = "5.8.0"
@ -105,11 +108,11 @@ py3o-template = "^0.10.0"
pycountry = "^24.6.1"
pydevd-odoo = "^1.2.2"
pydot = "1.4.2"
pygithub = "^2.6.1"
pygithub = "^2.7.0"
pyjwt = "^2.10.1"
pyncclient = "^0.7"
pyopenssl = "20.0.1"
pypdf = "^5.9.0"
pypdf = "^6.0.0"
pypdf2 = "1.26.0"
pysaml2 = "^7.5.2"
pyserial = "3.5"
@ -126,9 +129,10 @@ python-stdnum = "1.17"
pytz = "^2025.2"
pyusb = "1.0.2"
pyyaml = "^6.0.2"
pyzbar = "^0.1.9"
pyzk = "^0.9"
qrcode = "7.3.1"
redis = "^6.2.0"
redis = "^6.4.0"
reportlab = "3.6.5"
requests = "2.30.0"
requests-toolbelt = "^1.0.0"
@ -140,17 +144,17 @@ setuptools = "65.5.1"
shapely = "^2.1.1"
spacy = "3.8.2"
speechrecognition = "3.10.0"
sqlalchemy = "^2.0.41"
sqlalchemy = "^2.0.43"
statsd = "^4.0.1"
telesign = "^2.3.1"
tldextract = "^5.3.0"
tweepy = "^4.16.0"
twilio = "^9.7.0"
twilio = "^9.7.1"
unidecode = "^1.4.0"
urllib3 = "1.26.5"
validate-email = "^1.3"
vobject = "0.9.6.1"
vonage = "^4.4.3"
vonage = "^4.6.0"
vonage-verify-v2 = "1.1.4"
werkzeug = "2.0.2"
xlrd = "1.2.0"

View file

@ -20,58 +20,72 @@ authors = [ "Mathieu Benoit <mathben@technolibre.ca>",]
[tool.poetry.dependencies]
python = ">=3.12.10,<3.13"
asn1crypto = "1.5.1"
avalara = "^25.7.1"
astor = "^0.8.1"
avalara = "^25.9.0"
babel = "2.10.3"
base64io = "^1.0.3"
beautifulsoup4 = "^4.13.4"
beautifulsoup4 = "^4.13.5"
bokeh = "3.6.3"
boto3 = "^1.39.14"
cachetools = "^6.1.0"
boto3 = "^1.40.31"
cachetools = "^6.2.0"
caldav = "1.3.9"
cbor2 = "5.6.2"
chardet = "5.2.0"
code-writer = "^1.2.0"
cryptography = "42.0.8"
cssselect = "^1.3.0"
cython = "^3.1.2"
cython = "^3.1.3"
decorator = "5.1.1"
docutils = "0.20.1"
email-validator = "^2.2.0"
email-validator = "^2.3.0"
extract-msg = "^0.55.0"
ezdxf = "^1.4.2"
factur-x = "^3.8"
filetype = "^1.2.0"
formio-data = "^2.1.1"
freezegun = "1.2.1"
fsspec = ">=2024.5.0"
geoip2 = "2.9.0"
geojson = "^3.2.0"
gevent = "24.2.1"
gitpython = "^3.1.45"
googletrans-py = "4.0.0"
greenlet = "3.0.3"
icalendar = "5.0.13"
idna = "3.6"
img2pdf = "^0.6.1"
isort = "^6.0.1"
jinja2 = "3.1.2"
js2py = "^0.74"
libsass = "0.22.0"
lxml = "5.2.1"
lxml-html-clean = "^0.4.2"
mako = "^1.3.10"
markdown2 = "2.5.1"
markdownify = "0.13.1"
markupsafe = "2.1.5"
matplotlib = "^3.10.3"
matplotlib = "^3.10.6"
meteostat = "1.6.8"
mock = "^5.2.0"
mpld3 = "0.5.10"
msgraphfs = "^0.3"
num2words = "0.5.13"
numpy-stl = "^3.2.0"
odoorpc = "^0.10.1"
ofxparse = "0.21"
openai = "^1.107.3"
openpyxl = "3.1.2"
openupgradelib = "^3.11.1"
openwebui-client = ">=0.3.0"
pandas = ">=0.25.3"
paramiko = "^3.5.1"
paramiko = "<4.0.0"
passlib = "1.7.4"
pathspec = "^0.12.1"
pdf2image = "^1.17.0"
pdfminer = "^20191125"
phonenumbers = "^9.0.10"
phonenumbers = "^9.0.14"
pillow = "10.2.0"
polib = "1.1.1"
pre-commit = "^4.2.0"
pre-commit = "^4.3.0"
premailer = "^3.10.0"
prometheus-client = "^0.22.1"
psutil = "5.9.8"
@ -81,12 +95,19 @@ py3o-template = "^0.10.0"
pycountry = "^24.6.1"
pydevd-odoo = "^1.2.2"
pyftpdlib = "^2.0.1"
pygithub = "^2.6.1"
pygithub = "^2.8.1"
pyjsparser = "^2.7.1"
pyjwt = "^2.10.1"
pymssql = "^2.3.7"
pymysql = "^1.1.2"
pyopenssl = "24.1.0"
pypdf2 = "2.12.1"
pyproj = "^3.7.2"
pysaml2 = "^7.5.2"
pyserial = "3.5"
pysftp = "^0.2.9"
python-dateutil = "2.8.2"
python-dotenv = ">=1.0.0"
python-jose = "^3.5.0"
python-json-logger = "^3.3.0"
python-ldap = "3.4.4"
@ -95,20 +116,25 @@ python-stdnum = "1.19"
pytz = "^2025.2"
pyusb = "1.2.1"
pyyaml = "^6.0.2"
pyzbar = "^0.1.9"
qrcode = "7.4.2"
redis = "^6.2.0"
redis = "^6.4.0"
reportlab = "4.1.0"
requests = "2.31.0"
requests-toolbelt = "^1.0.0"
rjsmin = "1.2.0"
roulier = "^1.1.1"
schwifty = "2024.4.0"
sentry-sdk = ">=2.0.0,<=2.22.0"
setuptools = "65.5.1"
shapely = "^2.1.1"
statsd = "^4.0.1"
tldextract = "^5.3.0"
unidecode = "^1.4.0"
urllib3 = "2.0.7"
vobject = "0.9.6.1"
werkzeug = "3.0.1"
wget = "^3.2"
xlrd = "2.0.1"
xlsxwriter = "3.1.9"
xlwt = "1.3.0"
@ -118,5 +144,9 @@ zeep = "4.2.1"
git = "https://github.com/psf/black.git"
rev = "24.8.0"
[tool.poetry.dependencies.fsspec]
extras = [ "s3",]
version = "^2025.9.0"
[poetry.group.dev.dependencies]
websocket_client = "^1.1.0"

View file

@ -16,7 +16,7 @@ selenium==4.11.2
# For testing
websocket-client
python-stdnum
python-stdnum==1.20
python-u2flib_server
python-chess
python-git
@ -134,6 +134,11 @@ azure.storage.blob==12.19.0
sqlparse==0.4.4
zeep==4.2.1
python-jose==3.3.0
pypdf==4.3.1
factur-x==3.6
sqlalchemy==2.0.36
josepy==1.14.0
paramiko==3.5.1
# Force version for security update
pyyaml==6.0

View file

@ -16,7 +16,7 @@ selenium==4.11.2
# For testing
websocket-client
python-stdnum
python-stdnum==1.20
python-u2flib_server
python-chess
python-git
@ -146,6 +146,11 @@ azure.storage.blob==12.19.0
sqlparse==0.4.4
zeep==4.2.1
python-jose==3.3.0
pypdf==4.3.1
factur-x==3.6
sqlalchemy==2.0.36
josepy==1.14.0
paramiko==3.5.1
# Force version for security update
pyyaml==6.0

View file

@ -110,6 +110,8 @@ cadquery==2.4.0
numpy-stl==3.1.2
matplotlib==3.7.5
ezdxf==1.1.4
jira==3.8.0
paramiko==3.5.1
# asyncio
aioshutil<1.2

View file

@ -23,6 +23,7 @@ googletrans-py==4.0.0
# Module extra unknown name
filetype
PyPDF2
img2pdf
# For logical test and quality
git+https://github.com/psf/black.git@24.8.0
@ -45,7 +46,7 @@ pyopenssl==20.0.1
PyPDF2==1.26.0
python-ldap==3.4.0
pyusb==1.0.2
requests==2.30.0
requests==2.31.0
reportlab==3.6.5
urllib3==2.5.0
cachetools==5.5.2

View file

@ -23,6 +23,7 @@ googletrans-py==4.0.0
# Module extra unknown name
filetype
PyPDF2
img2pdf
# For logical test and quality
git+https://github.com/psf/black.git@24.8.0

View file

@ -16,7 +16,7 @@ setuptools==65.5.1
googletrans-py==4.0.0
#googletrans==4.0.0-rc1
#chardet==3.0.4
#openai==1.20.0
openai
# Module infobip_whatsapp_integration
# Ignore it, need another version of requests
@ -25,6 +25,7 @@ googletrans-py==4.0.0
# Module extra unknown name
filetype
PyPDF2
img2pdf
# For logical test and quality
git+https://github.com/psf/black.git@24.8.0

View file

@ -112,5 +112,5 @@ if [ $# -gt 0 ]; then
fi
else
# check_git "./addons/TechnoLibre_odoo-code-generator"
check_git "./addons.odoo${ODOO_VERSION}/TechnoLibre_odoo-code-generator-template"
check_git "./odoo${ODOO_VERSION}/addons/TechnoLibre_odoo-code-generator-template"
fi

View file

@ -29,11 +29,11 @@ filename_odoo_version = ".odoo-version"
if not os.path.isfile(filename_odoo_version):
_logger.error(f"Missing file {filename_odoo_version}")
sys.exit(1)
with open(".odoo-version", "r") as f:
with open(filename_odoo_version, "r") as f:
odoo_version = f.readline()
CODE_GENERATOR_DIRECTORY = (
f"./addons.odoo{odoo_version}/TechnoLibre_odoo-code-generator-template/"
f"./odoo{ODOO_VERSION}/addons/TechnoLibre_odoo-code-generator-template/"
)
CODE_GENERATOR_DEMO_NAME = "code_generator_demo"
KEY_REPLACE_CODE_GENERATOR_DEMO = 'MODULE_NAME = "%s"'
@ -142,9 +142,9 @@ class ProjectManagement:
self.has_config_update = False
self.odoo_config = odoo_config
# Replace addons/ by addons.odoo12.0/
# Replace addons/ by odoo12.0/addons/
module_directory = module_directory.replace(
"addons/", f"addons.odoo{odoo_version}/"
"addons/", f"odoo{ODOO_VERSION}/addons/"
)
self.module_directory = module_directory

View file

@ -1,13 +1,13 @@
#!/usr/bin/env bash
. ./env_var.sh
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
Red='\033[0;31m' # Red
Color_Off='\033[0m' # Text Reset
ERPLIBRE_IMAGE_NAME=$(cat .erplibre-semver-version|xargs)
ERPLIBRE_VERSION_MAIN=$(cat .erplibre-version|xargs)
ODOO_VERSION=$(cat .odoo-version|xargs)
PYTHON_VERSION=$(cat .python-odoo-version|xargs)
POETRY_VERSION=$(cat .poetry-version|xargs)
ERPLIBRE_IMAGE_NAME=$(cat .erplibre-semver-version | xargs)
ERPLIBRE_VERSION_MAIN=$(cat .erplibre-version | xargs)
ODOO_VERSION=$(cat .odoo-version | xargs)
PYTHON_VERSION=$(cat .python-odoo-version | xargs)
POETRY_VERSION=$(cat .poetry-version | xargs)
IS_DEBIAN_BOOKWORM=true
IS_DEBIAN_BULLSEYE=true
@ -21,41 +21,45 @@ ERPLIBRE_DOCKER_PROD="technolibre/erplibre"
output_version=""
for arg in "$@"
do
if [ "$arg" == "--no-cache" ]
then
ARGS="${ARGS} --no-cache"
elif [ "$arg" == "--release" ]
then
IS_RELEASE=true
elif [ "$arg" == "--release_alpha" ]
then
IS_RELEASE_ALPHA=true
elif [ "$arg" == "--release_beta" ]
then
IS_RELEASE_BETA=true
elif [ "$arg" == "--odoo_16" ]
then
output_version=$(python ./script/version/get_version.py --odoo_version 16.0)
elif [ "$arg" == "--odoo_14" ]
then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 14.0)
elif [ "$arg" == "--odoo_12" ]
then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 12.0)
fi
for arg in "$@"; do
if [ "$arg" == "--no-cache" ]; then
ARGS="${ARGS} --no-cache"
elif [ "$arg" == "--release" ]; then
IS_RELEASE=true
elif [ "$arg" == "--release_alpha" ]; then
IS_RELEASE_ALPHA=true
elif [ "$arg" == "--release_beta" ]; then
IS_RELEASE_BETA=true
elif [ "$arg" == "--odoo_18" ]; then
output_version=$(python ./script/version/get_version.py --odoo_version 18.0)
elif [ "$arg" == "--odoo_17" ]; then
output_version=$(python ./script/version/get_version.py --odoo_version 17.0)
elif [ "$arg" == "--odoo_16" ]; then
output_version=$(python ./script/version/get_version.py --odoo_version 16.0)
elif [ "$arg" == "--odoo_15" ]; then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 15.0)
elif [ "$arg" == "--odoo_14" ]; then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 14.0)
elif [ "$arg" == "--odoo_13" ]; then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 13.0)
elif [ "$arg" == "--odoo_12" ]; then
IS_DEBIAN_BOOKWORM=false
IS_DEBIAN_BULLSEYE=false
output_version=$(python ./script/version/get_version.py --odoo_version 12.0)
fi
done
if [ "$output_version" != "" ]; then
ODOO_VERSION=$(echo "$output_version" | awk 'NR==1')
POETRY_VERSION=$(echo "$output_version" | awk 'NR==2')
PYTHON_VERSION=$(echo "$output_version" | awk 'NR==3')
ERPLIBRE_VERSION_MAIN=$(echo "$output_version" | awk 'NR==4')
ODOO_VERSION=$(echo "$output_version" | awk 'NR==1')
POETRY_VERSION=$(echo "$output_version" | awk 'NR==2')
PYTHON_VERSION=$(echo "$output_version" | awk 'NR==3')
ERPLIBRE_VERSION_MAIN=$(echo "$output_version" | awk 'NR==4')
fi
echo "Build with"
@ -64,21 +68,17 @@ echo $ODOO_VERSION
echo $PYTHON_VERSION
echo $POETRY_VERSION
if [ "$IS_RELEASE_ALPHA" == true ]
then
if [ "$IS_RELEASE_ALPHA" == true ]; then
# Add commit hash when release alpha
ERPLIBRE_VERSION="${ERPLIBRE_VERSION}_ALPHA_odoo_${ODOO_VERSION}_$(git rev-parse --short HEAD)"
elif [ "$IS_RELEASE_BETA" == true ]
then
elif [ "$IS_RELEASE_BETA" == true ]; then
# Add commit hash when release beta
ERPLIBRE_VERSION="${ERPLIBRE_VERSION}_BETA_odoo_${ODOO_VERSION}_$(git rev-parse --short HEAD)"
elif [ "$IS_RELEASE" == false ]
then
elif [ "$IS_RELEASE" == false ]; then
# Add commit hash when not a release
ERPLIBRE_VERSION="${ERPLIBRE_VERSION}_odoo_${ODOO_VERSION}_$(git rev-parse --short HEAD)"
fi
ERPLIBRE_DOCKER_BASE_VERSION="${ERPLIBRE_DOCKER_BASE}:${ERPLIBRE_VERSION}"
ERPLIBRE_DOCKER_PROD_VERSION="${ERPLIBRE_DOCKER_PROD}:${ERPLIBRE_VERSION}"
ERPLIBRE_VERSION_MAIN="odoo${ODOO_VERSION}_python${PYTHON_VERSION}"
@ -92,8 +92,8 @@ ARGS="${ARGS} --build-arg ERPLIBRE_VERSION=${ERPLIBRE_VERSION_MAIN} --build-arg
retVal=$?
if [[ $retVal -ne 0 ]]; then
echo -e "${Red}Error${Color_Off} ./script/docker/docker_build.sh when execute docker_update_version.py"
exit 1
echo -e "${Red}Error${Color_Off} ./script/docker/docker_build.sh when execute docker_update_version.py"
exit 1
fi
cd docker
@ -104,15 +104,17 @@ if [ "$IS_DEBIAN_BOOKWORM" == true ]; then
ARGS="${ARGS} --build-arg DEBIAN_NAME=bookworm --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-3/wkhtmltox_0.12.6.1-3.bookworm_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=e9f95436298c77cc9406bd4bbd242f4771d0a4b2"
elif [ "$IS_DEBIAN_BOOKWORM" != true ]; then
ARGS="${ARGS} --build-arg DEBIAN_NAME=bullseye --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox_0.12.6.1-2.bullseye_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=cecbf5a6abbd68d324a7cd6c51ec843d71e98951"
elif [ "IS_DEBIAN_BULLSEYE" != true ]; then
elif [ "$IS_DEBIAN_BULLSEYE" != true ]; then
ARGS="${ARGS} --build-arg DEBIAN_NAME=buster --build-arg URL_WKHTMLTOX=github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.buster_amd64.deb --build-arg SHA1SUM_WKTHMLTOX=d9f259a67e05e1c221d48b504453645e6c491fab"
fi
set -e
# Build base
echo "docker build ${ARGS} -f Dockerfile.base -t ${ERPLIBRE_DOCKER_BASE_VERSION} ."
docker build ${ARGS} -f Dockerfile.base -t ${ERPLIBRE_DOCKER_BASE_VERSION} .
# Build prod
echo "docker build ${ARGS} -f Dockerfile.prod.pkg -t ${ERPLIBRE_DOCKER_PROD_VERSION} ."
docker build ${ARGS} -f Dockerfile.prod.pkg -t ${ERPLIBRE_DOCKER_PROD_VERSION} .
cd -

View file

@ -9,13 +9,13 @@ BASENAME="${BASENAME,,}"
docker exec -u root -ti ${BASENAME}-ERPLibre-1 /bin/bash -c "\
cd /ERPLibre; \
./docker/repo_manifest_gen_org_prefix_path.py /ERPLibre/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf; \
./docker/repo_manifest_gen_org_prefix_path.py /ERPLibre/odoo$(cat ".odoo-version" | xargs)/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf; \
"
retVal=$?
if [[ $retVal -ne 0 ]]; then
docker exec -u root -ti ${BASENAME}_ERPLibre_1 /bin/bash -c "\
cd /ERPLibre; \
./docker/repo_manifest_gen_org_prefix_path.py /ERPLibre/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf; \
./docker/repo_manifest_gen_org_prefix_path.py /ERPLibre/odoo$(cat ".odoo-version" | xargs)/addons /etc/odoo/odoo.conf /etc/odoo/odoo.conf; \
"
fi
fi

View file

@ -4,7 +4,8 @@
EL_USER=${USER}
EL_HOME=$PWD
EL_HOME_ODOO="${EL_HOME}/odoo${EL_ODOO_VERSION}/odoo"
EL_HOME_ODOO_PROJECT="${EL_HOME}/odoo${EL_ODOO_VERSION}"
EL_HOME_ODOO="${EL_HOME_ODOO_PROJECT}/odoo"
#EL_PORT="8069"
#EL_LONGPOLLING_PORT="8072"
#EL_SUPERADMIN="admin"
@ -23,103 +24,144 @@ printf "db_password = False\n" >> "${EL_CONFIG_FILE}"
printf "xmlrpc_port = ${EL_PORT}\n" >> "${EL_CONFIG_FILE}"
printf "longpolling_port = ${EL_LONGPOLLING_PORT}\n" >> "${EL_CONFIG_FILE}"
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/addons," >> "${EL_CONFIG_FILE}"
printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME_ODOO}/odoo/addons,${EL_HOME}/odoo${EL_ODOO_VERSION}/addons/addons," >> "${EL_CONFIG_FILE}"
if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/CybroOdoo_OpenHRMS," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-analytic," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-budgeting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-closing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-consolidation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-financial-tools," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-fiscal-rule," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoice-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-invoicing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_account-reconcile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_apps-store," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-payment-alternative," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_bank-statement-import," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_business-requirement," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_calendar," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_commission," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_community-data-files," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-ecommerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-interfaces," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-jira," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_connector-telephony," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_contract," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_credit-control," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_crm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_crowdfunding," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_currency," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_data-protection," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_ddmrp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_delivery-carrier," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_dms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_donation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_e-commerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_edi," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_event," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_field-service," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_fleet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_geospatial," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_helpdesk," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_hr," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_hr-holidays," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_interface-github," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_knowledge," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_l10n-canada," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_mail," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_maintenance," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_management-system," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_manufacture," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_margin-analysis," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_mis-builder," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_multi-company," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_operating-unit," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_partner-contact," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_pos," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-attribute," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-configurator," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-pack," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_product-variant," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-agile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_project-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_purchase-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_queue," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_reporting-engine," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_rma," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_sale-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-auth," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-backend," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-env," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_server-ux," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_social," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_stock-logistics-putaway," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_stock-logistics-warehouse," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_storage," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-association," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-hotel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-isp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_vertical-travel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_web," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_website-cms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OCA_wms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/OmniaGit_odooplm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/camptocamp_odoo-cloud-platform," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/dhongu_deltatech," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/novacode-nl_odoo-formio," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/odoomates_odooapps," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME}/addons.odoo${EL_ODOO_VERSION}/openeducat_openeducat_erp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/CybroOdoo_CybroAddons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/CybroOdoo_OpenHRMS," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/ERPLibre_erplibre_addons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/MathBenTech_development," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/MathBenTech_odoo-business-spending-management-quebec-canada," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-analytic," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-budgeting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-closing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-consolidation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-financial-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-financial-tools," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-fiscal-rule," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-invoice-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-invoicing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_account-reconcile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_agreement," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_apps-store," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_automation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_bank-payment," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_bank-statement-import," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_business-requirement," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_calendar," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_commission," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_community-data-files," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_connector," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_connector-ecommerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_connector-interfaces," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_connector-jira," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_connector-telephony," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_contract," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_cooperative," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_credit-control," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_crm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_currency," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_data-protection," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_ddmrp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_delivery-carrier," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_dms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_donation," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_e-commerce," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_edi," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_edi-framework," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_event," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_field-service," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_fleet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_geospatial," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_helpdesk," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_hr," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_hr-expense," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_hr-holidays," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_interface-github," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_intrastat-extrastat," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_iot," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_knowledge," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_l10n-canada," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_maintenance," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_management-system," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_manufacture," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_margin-analysis," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_mis-builder," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_mis-builder-contrib," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_multi-company," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_odoo-pim," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_operating-unit," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_partner-contact," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_pms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_pos," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_product-attribute," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_product-configurator," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_product-pack," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_product-variant," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_project," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_project-agile," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_project-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_purchase-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_purchase-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_queue," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_repair," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_report-print-send," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_reporting-engine," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_rest-framework," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_rma," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-blanket," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-channel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-prebook," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-promotion," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sale-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_search-engine," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-auth," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-backend," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-brand," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-env," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-tools," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_server-ux," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_shift-planning," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_sign," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_social," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_spreadsheet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-availability," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-barcode," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-orderpoint," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-reporting," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-request," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-tracking," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-transport," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-warehouse," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-logistics-workflow," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_stock-weighing," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_storage," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_survey," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_timesheet," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-abbey," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-association," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-hotel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-isp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-rental," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_vertical-travel," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_web," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_web-api," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_website," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_website-cms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OCA_wms," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/OmniaGit_odooplm," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/camptocamp_odoo-cloud-platform," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/cetmix_cetmix-tower," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/dhongu_deltatech," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/it-projects-llc_saas-addons," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/muk-it_muk_web," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/novacode-nl_odoo-formio," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/odoomates_odooapps," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/openeducat_openeducat_erp," >> "${EL_CONFIG_FILE}"
printf "${EL_HOME_ODOO_PROJECT}/addons/tegin_medical-fhir," >> "${EL_CONFIG_FILE}"
fi
printf "\n" >> "${EL_CONFIG_FILE}"

View file

@ -42,6 +42,16 @@ def get_config():
default="",
help="Prod by default, use 'dev' for manifest/default.dev.xml",
)
parser.add_argument(
"--extra-addons-path",
default="",
help="Separate by , to add extra path for config addons_path",
)
parser.add_argument(
"--ignore-odoo-path",
action="store_true",
help="Will remove odoo path, need this feature for OpenUpgrade when Odoo <= 13",
)
args = parser.parse_args()
return args
@ -52,7 +62,11 @@ def main():
filter_group = config.group if config.group else None
git_tool.generate_generate_config(filter_group=filter_group)
git_tool.generate_generate_config(
filter_group=filter_group,
extra_path=config.extra_addons_path,
ignore_odoo_path=config.ignore_odoo_path,
)
if __name__ == "__main__":

View file

@ -38,7 +38,7 @@ def get_config():
parser.add_argument(
"-m",
"--manifest",
default="./default.xml",
default=".repo/local_manifests/erplibre_manifest.xml",
help="The manifest to compare with actual code.",
)
args = parser.parse_args()
@ -52,9 +52,6 @@ def main():
dct_remote, dct_project, default_remote = git_tool.get_manifest_xml_info(
filename=config.manifest, add_root=True
)
default_branch_name = default_remote.get(
"@revision", git_tool.default_branch
)
dct_result = defaultdict(int)
i = 0
total = len(dct_project)
@ -62,7 +59,7 @@ def main():
i += 1
path = project.get("@path")
print(f"{i}/{total} - {path}")
branch_name = project.get("@revision", default_branch_name)
branch_name = project.get("@revision")
organization = project.get("@remote", git_tool.default_project_name)
try:

View file

@ -419,7 +419,13 @@ class GitTool:
if url:
webbrowser.open_new_tab(url)
def generate_generate_config(self, repo_path="./", filter_group=None):
def generate_generate_config(
self,
repo_path="./",
filter_group=None,
extra_path=None,
ignore_odoo_path=None,
):
filename_locally = f"{repo_path}script/generate_config.sh"
if not filter_group:
filter_group = self.odoo_version_long
@ -427,22 +433,37 @@ class GitTool:
repo_path=repo_path, filter_group=filter_group
)
lst_result = []
if not lst_repo:
print(
f"{Fore.YELLOW}WARNING{Style.RESET_ALL}: List of repo is empty when write generate_config."
)
for repo in lst_repo:
update_repo = repo.get("path")
# Exception, ignore addons/OCA_web and root
if repo.get("path") in ["addons/OCA_web", "odoo", "image_db"]:
if update_repo in ["addons/OCA_web", "odoo", "image_db"]:
continue
# groups = repo.get("group")
update_repo = repo.get("path")
# Use variable instead of hardcoded path
if update_repo.startswith("addons.odoo"):
if update_repo.startswith(f"{filter_group}/addons"):
lst_path = update_repo.split("/", 1)
update_repo = f"addons.odoo${{EL_ODOO_VERSION}}/" + lst_path[1]
str_repo = (
f' printf "${{EL_HOME}}/{update_repo}," >> '
'"${EL_CONFIG_FILE}"\n'
)
# Ignore repo if not starting by addons
if update_repo.startswith("addons"):
update_repo = f"${{EL_HOME_ODOO_PROJECT}}/" + lst_path[1]
# str_repo = (
# f' printf "${{EL_HOME}}/{update_repo}," >> '
# '"${EL_CONFIG_FILE}"\n'
# )
str_repo = (
f' printf "{update_repo}," >> ' '"${EL_CONFIG_FILE}"\n'
)
# Ignore repo if not starting by addons
# if update_repo.startswith("addons"):
# lst_result.append(str_repo)
lst_result.append(str_repo)
if extra_path:
for each_extra_path in extra_path.strip().split(","):
str_repo = (
f' printf "{each_extra_path}," >> '
'"${EL_CONFIG_FILE}"\n'
)
lst_result.append(str_repo)
with open(filename_locally) as file:
all_lines = file.readlines()
@ -451,6 +472,15 @@ class GitTool:
find_index = False
index_find = 0
for line in all_lines:
if line.startswith('printf "addons_path = '):
if ignore_odoo_path:
new_line = (
'printf "addons_path = " >> "${EL_CONFIG_FILE}"\n'
)
else:
new_line = 'printf "addons_path = ${EL_HOME_ODOO}/addons,${EL_HOME_ODOO}/odoo/addons,${EL_HOME}/odoo${EL_ODOO_VERSION}/addons/addons," >> "${EL_CONFIG_FILE}"\n'
all_lines[index] = new_line
if (
not find_index
and 'if [[ ${EL_MINIMAL_ADDONS} = "False" ]]; then\n' == line
@ -459,6 +489,9 @@ class GitTool:
for insert_line in lst_result:
all_lines.insert(index_find, insert_line)
index_find += 1
if not lst_result:
all_lines.insert(index_find, '\tprintf ""\n')
index_find += 1
find_index = True
# Delete all next line until meet fi
if find_index and "fi\n" == line:

View file

@ -27,7 +27,7 @@ if not os.path.isfile(FILENAME_ODOO_VERSION):
_logger.error(f"Missing file {FILENAME_ODOO_VERSION}")
sys.exit(1)
with open(".odoo-version", "r") as f:
with open(FILENAME_ODOO_VERSION, "r") as f:
ODOO_VERSION = f.readline()
@ -47,7 +47,7 @@ def get_config():
)
parser.add_argument(
"--repo",
default=f"./addons.odoo{ODOO_VERSION}/TechnoLibre_odoo-code-generator-template;./addons.odoo{ODOO_VERSION}/OCA_server-tools",
default=f"./odoo{ODOO_VERSION}/addons/TechnoLibre_odoo-code-generator-template;./odoo{ODOO_VERSION}/addons/OCA_server-tools",
)
args = parser.parse_args()
return args

View file

@ -37,7 +37,7 @@ def get_config():
parser.add_argument(
"-m",
"--manifest",
default="./default.xml",
default=".repo/local_manifests/erplibre_manifest.xml",
help="The manifest to compare with actual code.",
)
args = parser.parse_args()

View file

@ -5,11 +5,11 @@
import argparse
import csv
import glob
import io
import logging
import os
import subprocess
import sys
import io
import xmltodict
@ -33,7 +33,7 @@ VCS_WORKSPACE = os.path.join(IDEA_PATH, "vcs.xml")
PATH_EXCLUDE_FOLDER = "./conf/pycharm_exclude_folder.txt"
PATH_DEFAULT_CONFIGURATION = "./conf/pycharm_default_configuration.csv"
PATH_DEFAULT_CONFIGURATION_PRIVATE = (
"./conf/pycharm_default_configuration.private.csv"
"./private/pycharm_default_configuration.private.csv"
)

View file

@ -35,8 +35,11 @@ brew link git
brew link wget
echo "\n--- Installing extra --"
brew install shfmt
brew install parallel
brew install swig
brew install portaudio
brew install xmlsec1
echo "\n---- Installing nodeJS NPM and rtlcss for LTR support ----"
brew install nodejs npm openssl
sudo npm install -g rtlcss

View file

@ -60,3 +60,4 @@ fi
install_package cmake
install_package parallel
install_package tk
install_package shfmt

View file

@ -48,35 +48,21 @@ echo -e "* Start ERPLibre on Startup"
sudo systemctl daemon-reload
sudo systemctl enable ${EL_CONFIG}.service
sudo su ${EL_USER} -c "sudo rm -f /tmp/${EL_USER}run.sh"
# TODO this is outdated
cat <<EOF > /tmp/${EL_USER}run.sh
#!/usr/bin/env bash
cd ${EL_HOME_ERPLIBRE}
source ./.venv.erplibre/bin/activate
python3 ${EL_HOME_ERPLIBRE}/odoo18.0/odoo/odoo-bin -c ${EL_HOME_ERPLIBRE}/config.conf --limit-time-real 99999 --limit-time-cpu 99999 $@
EOF
echo -e "* Security Run File"
sudo cp /tmp/${EL_USER}run.sh ${EL_HOME_ERPLIBRE}/.venv/run.sh
sudo chmod 755 ${EL_HOME_ERPLIBRE}/.venv/run.sh
sudo chown ${EL_USER}: ${EL_HOME_ERPLIBRE}/.venv/run.sh
echo "-----------------------------------------------------------"
echo "Done! The ERPLibre server is up and running. Specifications:"
echo "Port: ${EL_PORT}"
echo "Port Long Polling: ${EL_LONGPOLLING_PORT}"
echo "User service: ${EL_USER}"
echo "User PostgreSQL: ${EL_USER}"
echo "Code location: ${EL_USER}"
echo "Addons folder: ${EL_USER}/${EL_CONFIG}/addons/"
echo "SystemD file ERPLibre: /etc/systemd/system/${EL_CONFIG}.service"
echo "Start ERPLibre service: sudo systemctl start ${EL_CONFIG}"
echo "Stop ERPLibre service: sudo systemctl stop ${EL_CONFIG}"
echo "Restart ERPLibre service: sudo systemctl restart ${EL_CONFIG}"
echo "Status ERPLibre service: sudo systemctl status ${EL_CONFIG}"
echo "Logs ERPLibre service: sudo journalctl -feu ${EL_CONFIG}"
echo "-----------------------------------------------------------"
#echo "-----------------------------------------------------------"
#echo "Done! The ERPLibre server is up and running. Specifications:"
#echo "Port: ${EL_PORT}"
#echo "Port Long Polling: ${EL_LONGPOLLING_PORT}"
#echo "User service: ${EL_USER}"
#echo "User PostgreSQL: ${EL_USER}"
#echo "Code location: ${EL_USER}"
#echo "Addons folder: ${EL_USER}/${EL_CONFIG}/addons/"
#echo "SystemD file ERPLibre: /etc/systemd/system/${EL_CONFIG}.service"
#echo "Start ERPLibre service: sudo systemctl start ${EL_CONFIG}"
#echo "Stop ERPLibre service: sudo systemctl stop ${EL_CONFIG}"
#echo "Restart ERPLibre service: sudo systemctl restart ${EL_CONFIG}"
#echo "Status ERPLibre service: sudo systemctl status ${EL_CONFIG}"
#echo "Logs ERPLibre service: sudo journalctl -feu ${EL_CONFIG}"
#echo "-----------------------------------------------------------"
echo -e "* Starting ERPLibre Service"
sudo systemctl restart ${EL_CONFIG}.service

View file

@ -68,7 +68,7 @@ sudo su - postgres -c "createuser -s ${EL_USER}" 2>/dev/null || true
# Install Dependencies
#--------------------------------------------------
echo -e "\n--- Installing debian dependency --"
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig cmake portaudio19-dev libcups2-dev -y
sudo apt-get install git build-essential wget libxslt-dev libzip-dev libldap2-dev libsasl2-dev gdebi-core libffi-dev libbz2-dev parallel pysassc swig cmake portaudio19-dev libcups2-dev shfmt xmlsec1 -y
retVal=$?
if [[ $retVal -ne 0 ]]; then
echo "apt-get debian tool installation error."

View file

@ -20,7 +20,7 @@ Color_Off='\033[0m' # Text Reset
./script/generate_config.sh
# Generate empty addons if missing
path_addons_addons="./addons.odoo${EL_ODOO_VERSION}/addons"
path_addons_addons="./odoo${EL_ODOO_VERSION}/addons/addons"
if [[ ! -d "${path_addons_addons}" ]]; then
mkdir -p "${path_addons_addons}"
fi

View file

@ -34,6 +34,8 @@ server {
proxy_set_header X-Real-IP \$remote_addr;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
proxy_set_header X-Client-IP \$remote_addr;
proxy_set_header HTTP_X_FORWARDED_HOST \$remote_addr;
# erplibre request log files
access_log /var/log/nginx/${EL_USER}-access.log;
@ -43,9 +45,9 @@ server {
proxy_buffers 16 64k;
proxy_buffer_size 128k;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
proxy_read_timeout 900s;
proxy_connect_timeout 900s;
proxy_send_timeout 900s;
# Force timeouts if the backend dies
proxy_next_upstream error timeout invalid_header http_500 http_502
@ -64,7 +66,7 @@ server {
gzip_vary on;
client_header_buffer_size 4k;
large_client_header_buffers 4 64k;
client_max_body_size 1024M;
client_max_body_size 0;
location / {
proxy_pass http://erplibre${EL_USER};
@ -76,6 +78,12 @@ server {
proxy_pass http://erplibre${EL_USER}chat;
}
location ~* .(js|css|png|jpg|jpeg|gif|ico)$ {
expires 2d;
proxy_pass http://erplibre${EL_USER};
add_header Cache-Control "public, no-transform";
}
# cache some static data in memory for 60mins.
location ~ /[a-zA-Z0-9_-]*/static/ {
proxy_cache_valid 200 302 60m;

View file

@ -1,8 +1,9 @@
#!/usr/bin/env bash
cmd1="./script/maintenance/format_python.sh \"$*\""
cmd1="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.py' -print0 | parallel -0 ./script/maintenance/format_python.sh {}"
cmd2="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.xml' -print0 | parallel -0 ./script/maintenance/prettier_xml.sh {}"
cmd3="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.js' -print0 | parallel -0 ./script/maintenance/prettier.sh {}"
cmd4="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.css' -print0 | parallel -0 ./script/maintenance/prettier.sh {}"
cmd5="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.scss' -print0 | parallel -0 ./script/maintenance/prettier.sh {}"
cmd6="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.html' -print0 | parallel -0 ./script/maintenance/prettier.sh {}"
parallel ::: "$cmd1" "$cmd2" "$cmd3" "$cmd4" "$cmd5" "$cmd6"
cmd7="find \"$*\" -type f -not -path \"*/not_supported_files/*\" -name '*.sh' -print0 | parallel -0 ./script/maintenance/format_bash.sh {}"
parallel ::: "$cmd1" "$cmd2" "$cmd3" "$cmd4" "$cmd5" "$cmd6" "$cmd7"

View file

@ -0,0 +1,4 @@
#!/usr/bin/env bash
# Google Style
# https://google.github.io/styleguide/shellguide.html
shfmt -i 2 -ci -w "$@"

View file

@ -0,0 +1,81 @@
#!/usr/bin/env python3
# © 2021-2025 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
import subprocess
IGNORE_EXTENSION = []
IGNORE_FILE_NAME = ["Makefile"]
def execute_shell(cmd):
out = subprocess.check_output(cmd, stderr=subprocess.STDOUT, shell=True)
return out.decode().strip() if out else ""
def get_modified_files():
lst_cmd_git_status = ["git", "status", "--porcelain"]
print(" ".join(lst_cmd_git_status))
try:
result = subprocess.run(
lst_cmd_git_status,
capture_output=True,
text=True,
check=True,
)
lines = result.stdout.strip().split("\n")
modified_files = []
for line in lines:
if not line:
continue
try:
if "->" in line:
# Example : M file_01 -> file_02
status, old_file_path, code, file_path = (
line.strip().replace(" ", " ").split(" ")
)
else:
# Example : M file_01
status, file_path = (
line.strip().replace(" ", " ").split(" ")
)
except Exception as e:
print(f"'{line}'")
raise e
if (
status == "M"
or status == "A"
or status == "AM"
or status == "MM"
or status == "R"
or status == "RM"
or status == "??"
):
modified_files.append((status, file_path))
elif status == "D":
# Ignore to format removed file
pass
else:
print(f"Not supported status '{status}'")
return modified_files
except subprocess.CalledProcessError as e:
print(f"Error execution with git command: {e}")
return None
if __name__ == "__main__":
cmd_format = "parallel ::: "
has_file = False
files = get_modified_files()
if files:
for status, path in files:
print(f"Statut: '{status}', Fichier: {path}")
cmd_format += f"\"./script/maintenance/format.sh '{path}'\" "
has_file = True
if has_file:
print(cmd_format)
execute_shell(cmd_format)

View file

@ -7,6 +7,11 @@ upstream erplibre_SERVER_NAME_chat {
server 127.0.0.1:8072;
}
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
server_name DOMAIN;
@ -27,9 +32,9 @@ server {
proxy_buffers 16 64k;
proxy_buffer_size 128k;
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
proxy_read_timeout 900s;
proxy_connect_timeout 900s;
proxy_send_timeout 900s;
# Force timeouts if the backend dies
proxy_next_upstream error timeout invalid_header http_500 http_502
@ -48,38 +53,38 @@ server {
gzip_vary on;
client_header_buffer_size 4k;
large_client_header_buffers 4 64k;
client_max_body_size 1024M;
client_max_body_size 0;
location / {
proxy_pass http://erplibre_SERVER_NAME;
# by default, do not forward anything
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_read_timeout 720s;
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
}
location /websocket {
proxy_pass http://erplibre_SERVER_NAME_chat;
proxy_read_timeout 720s;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_connect_timeout 720s;
proxy_send_timeout 720s;
proxy_set_header Connection $connection_upgrade;
# Add Headers for odoo proxy mode
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
add_header Strict-Transport-Security "max-age=31536000; includeSubDomains";
proxy_cookie_flags session_id samesite=lax secure; # requires nginx 1.19.8
}
# cache some static data in memory for 60mins.

View file

@ -0,0 +1,10 @@
#!/usr/bin/env python3
# © 2021-2025 TechnoLibre (http://www.technolibre.ca)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl)
installed_modules = env["ir.module.module"].search([('state', '=', 'installed')])
print("Installed modules:")
for module in installed_modules:
print(module.name)

View file

@ -121,7 +121,7 @@ def get_file_from_glob(
# TODO take all groups odoo##.# from manifest, will create a dependency
# Hardcode logic from manifest
lst_path = [
Path(f"./addons.odoo{config.set_version_odoo}").rglob(glob_txt),
Path(f"./odoo{config.set_version_odoo}/addons").rglob(glob_txt),
Path(f"./odoo{config.set_version_odoo}/odoo").rglob(glob_txt),
]
for gen_path in lst_path:
@ -137,10 +137,6 @@ def get_file_from_glob(
break
if ignore_it:
continue
if a_dirname.startswith("addons") and not a_dirname.startswith(
f"addons.odoo{config.set_version_odoo}"
):
continue
lst_v.append(a)
if force_add_item:
for item in force_add_item:

View file

@ -10,7 +10,7 @@
{
"run_test_exec": true,
"test_name": "code_generator_theme_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "theme_website_demo_code_generator",
"tested_module": "code_generator_demo_theme_website"
},
@ -18,21 +18,21 @@
"run_test_exec": true,
"disable": true,
"test_name": "code_generator_demo_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "code_generator_demo",
"tested_module": "code_generator_demo"
},
{
"run_test_exec": true,
"test_name": "code_generator_data_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_helpdesk_data",
"tested_module": "code_generator_demo_export_helpdesk"
},
{
"run_test_exec": true,
"test_name": "code_generator_data_part_2_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_website_data",
"tested_module": "code_generator_demo_export_website",
"note": "Merge to code_generator_data_test when fix double export data."
@ -40,14 +40,14 @@
{
"run_test_exec": true,
"test_name": "code_generator_inherit_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_internal_inherit",
"tested_module": "code_generator_demo_internal_inherit"
},
{
"run_test_exec": true,
"test_name": "code_generator_template_demo_internal",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "code_generator_demo_internal",
"tested_module": "code_generator_template_demo_internal",
"search_class_module": "demo_internal",
@ -56,7 +56,7 @@
{
"run_test_exec": true,
"test_name": "code_generator_template_demo_portal",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "code_generator_demo_portal",
"tested_module": "code_generator_template_demo_portal",
"search_class_module": "demo_portal",
@ -66,7 +66,7 @@
"run_test_exec": true,
"disable": true,
"test_name": "mariadb_test_template",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "code_generator_demo_mariadb_sql_example_1",
"tested_module": "code_generator_template_demo_mariadb_sql_example_1",
"search_class_module": "demo_mariadb_sql_example_1",
@ -76,7 +76,7 @@
"run_test_exec": true,
"disable": true,
"test_name": "mariadb_test_migrator",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_mariadb_sql_example_1",
"tested_module": "code_generator_migrator_demo_mariadb_sql_example_1",
"script_after_init_check": "./script/database/restore_mariadb_sql_example_1.sh",
@ -86,7 +86,7 @@
"run_test_exec": true,
"disable": true,
"test_name": "mariadb_test_code_generator",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_mariadb_sql_example_1",
"tested_module": "code_generator_demo_mariadb_sql_example_1",
"init_module_name": "code_generator_portal"
@ -94,7 +94,7 @@
{
"run_test_exec": true,
"test_name": "code_generator_template_demo_internal_inherit",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "code_generator_demo_internal_inherit",
"tested_module": "code_generator_template_demo_internal_inherit",
"search_class_module": "demo_internal_inherit",
@ -104,19 +104,19 @@
"run_test_exec": true,
"disable": true,
"test_name": "code_generator_template_demo_sysadmin_cron",
"path_module_check": "./addons.odoo12.0/OCA_server-tools",
"path_module_check": "./odoo12.0/addons/OCA_server-tools",
"generated_module": "code_generator_auto_backup",
"generated_path": "./addons.odoo12.0/OCA_server-tools/",
"generated_path": "./odoo12.0/addons/OCA_server-tools/",
"tested_module": "code_generator_template_demo_sysadmin_cron",
"search_class_module": "auto_backup",
"init_module_name": "auto_backup",
"install_path": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template"
"install_path": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template"
},
{
"run_test_exec": true,
"disable": true,
"test_name": "code_generator_export_website_attachments_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_website_attachments_data",
"tested_module": "code_generator_demo_export_website_attachments",
"restore_db_image_name": "test_website_attachments"
@ -125,14 +125,14 @@
"run_test_exec": true,
"disable": true,
"test_name": "code_generator_demo_generic_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_internal,demo_portal",
"tested_module": "code_generator_demo_internal,code_generator_demo_portal"
},
{
"run_test_exec": true,
"test_name": "code_generator_website_snippet_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"generated_module": "demo_website_leaflet,demo_website_snippet,demo_website_multiple_snippet",
"tested_module": "code_generator_demo_website_leaflet,code_generator_demo_website_snippet,code_generator_demo_website_multiple_snippet",
"file_to_restore": "demo_portal/i18n/demo_portal.pot,demo_portal/i18n/fr_CA.po",
@ -142,13 +142,13 @@
{
"run_test_exec": true,
"test_name": "demo_test",
"path_module_check": "./addons.odoo12.0/TechnoLibre_odoo-code-generator-template",
"path_module_check": "./odoo12.0/addons/TechnoLibre_odoo-code-generator-template",
"init_module_name": "demo_helpdesk_data,demo_internal,demo_internal_inherit,demo_mariadb_sql_example_1,demo_portal,demo_website_data,demo_website_leaflet,demo_website_snippet"
},
{
"run_test_exec": true,
"test_name": "code_generator_auto_backup_test",
"path_module_check": "./addons.odoo12.0/OCA_server-tools/auto_backup",
"path_module_check": "./odoo12.0/addons/OCA_server-tools/auto_backup",
"generated_module": "auto_backup",
"tested_module": "code_generator_auto_backup"
}

View file

@ -35,7 +35,7 @@ if not os.path.isfile(FILENAME_ODOO_VERSION):
_logger.error(f"Missing file {FILENAME_ODOO_VERSION}")
sys.exit(1)
with open(".odoo-version", "r") as f:
with open(FILENAME_ODOO_VERSION, "r") as f:
ODOO_VERSION = f.readline()
LOG_FILE = "./.venv.erplibre/make_test.log"
@ -436,7 +436,7 @@ async def test_exec(
s_lst_path_tested_module = (
await lib_asyncio.run_command_get_output(
"find",
f"./addons.odoo{ODOO_VERSION}/",
f"./odoo{ODOO_VERSION}/addons/",
"-name",
module_name,
)
@ -453,7 +453,7 @@ async def test_exec(
s_lst_path_tested_module.strip().split("\n")
)
s_first_path = lst_path_tested_module[0]
# parent_dir = os.path.dirname(s_first_path).replace("addons/", f"addons.odoo{ODOO_VERSION}/")
# parent_dir = os.path.dirname(s_first_path).replace("addons/", f"odoo{ODOO_VERSION}/addons/")
parent_dir = os.path.dirname(s_first_path)
# Copy it
if copy_path != parent_dir:
@ -798,7 +798,7 @@ def check_git_change():
task_list = [
run_command(
"./script/code_generator/check_git_change_code_generator.sh",
f"./addons.odoo{ODOO_VERSION}/TechnoLibre_odoo-code-generator-template",
f"./odoo{ODOO_VERSION}/addons/TechnoLibre_odoo-code-generator-template",
test_name=(
"Init check_git_change"
" TechnoLibre_odoo-code-generator-template"
@ -806,7 +806,7 @@ def check_git_change():
),
run_command(
"./script/code_generator/check_git_change_code_generator.sh",
f"./addons.odoo{ODOO_VERSION}/OCA_server-tools",
f"./odoo{ODOO_VERSION}/addons/OCA_server-tools",
test_name="Init check_git_change OCA_server-tools",
),
]
@ -846,7 +846,7 @@ def run_all_test(config) -> bool:
continue
# Force change addons path
# if "path_module_check" in dct_test.keys():
# # dct_test["path_module_check"] = dct_test["path_module_check"].replace("addons/", f"addons.odoo{ODOO_VERSION}/")
# # dct_test["path_module_check"] = dct_test["path_module_check"].replace("addons/", f"odoo{ODOO_VERSION}/addons/")
# dct_test["path_module_check"] = dct_test["path_module_check"]
sequence = dct_test.get("sequence", 0)
cb_coroutine = None

View file

@ -24,7 +24,6 @@ VERSION_ERPLIBRE_FILE = os.path.join(".erplibre-version")
VERSION_ODOO_FILE = os.path.join(".odoo-version")
VERSION_POETRY_FILE = os.path.join(".poetry-version")
ADDONS_PATH = os.path.join("addons")
ODOO_PATH = os.path.join(".", "odoo")
VENV_TEMPLATE_FILE = ".venv.%s"
MANIFEST_FILE = "default.dev.xml"
MANIFEST_TEMPLATE_FILE = "default.dev.odoo%s.xml"
@ -39,7 +38,7 @@ PIP_IGNORE_REQUIREMENT_FILE = os.path.join(
"requirement", "ignore_requirements.txt"
)
PIP_IGNORE_REQUIREMENT_TEMPLATE_FILE = "ignore_requirements.%s.txt"
ADDONS_TEMPLATE_FILE = "addons.odoo%s"
ADDONS_TEMPLATE_FILE = "odoo%s/addons"
ODOO_TEMPLATE_FILE = "odoo%s"
ERPLIBRE_TEMPLATE_VERSION = "odoo%s_python%s"
@ -97,6 +96,11 @@ def get_config():
action="store_true",
help="Will only update the system by switch environnement.",
)
parser.add_argument(
"--switch_update",
action="store_true",
help="Work with --switch, will do repo update",
)
parser.add_argument(
"--install_dev",
action="store_true",
@ -129,6 +133,7 @@ def get_config():
args.force_repo = True
args.is_in_installation = args.install or args.install_dev
args.is_in_switch = args.switch
args.is_in_switch_force_update = args.switch and args.switch_update
if not (args.install or args.install_dev) and args.force_install:
args.force_install = False
@ -354,20 +359,7 @@ class Update:
if not venv_exist and not self.config.install_dev:
_logger.info("Relaunch this script with --install_dev argument.")
# Validate Odoo repo
status &= self.update_link_file(
"Odoo repository",
ODOO_PATH,
self.expected_odoo_path,
is_directory=True,
do_delete_source=True,
)
# Validate Git repo
status &= self.update_link_file(
"Git repositories",
MANIFEST_FILE_PATH,
self.expected_manifest_path,
do_delete_source=True,
)
# TODO need to remove this from architecture
# Validate Poetry and pip
status &= self.update_link_file(
"Poetry project toml",
@ -381,12 +373,6 @@ class Update:
self.expected_poetry_lock_path,
do_delete_source=True,
)
# status &= self.update_link_file(
# "Pip requirement.txt",
# PIP_REQUIREMENT_FILE,
# self.expected_pip_requirement_path,
# do_delete_source=True,
# )
status &= self.update_link_file(
"Pip ignore_requirement.txt",
PIP_IGNORE_REQUIREMENT_FILE,
@ -395,14 +381,6 @@ class Update:
)
if not os.path.isdir(self.expected_addons_name):
status = False
# status &= self.update_link_file(
# "Directory 'addons'",
# ADDONS_PATH,
# self.expected_addons_name,
# is_directory=True,
# do_delete_source=self.config.install_dev
# or self.config.force_install,
# )
return status
def update_environment(self):
@ -432,22 +410,14 @@ class Update:
txt.write(self.new_version_poetry)
if self.config.is_in_installation or self.config.is_in_switch:
# addons_path_with_version = (
# ADDONS_TEMPLATE_FILE % self.new_version_odoo
# )
# # To support multiple addons directory, change name before run git repo
# for addons_path in os.listdir("."):
# if (
# addons_path.startswith("addons")
# and addons_path != addons_path_with_version
# ):
# os.rename(addons_path, addons_path + "TEMP")
# TODO need to be force if installation path is all good, return True
if self.config.install_dev:
_logger.info("Installation.")
status = self.install_erplibre()
elif self.config.is_in_switch:
elif (
self.config.is_in_switch
and self.config.is_in_switch_force_update
):
_logger.info("Switch")
self.execute_log.append(f"System update")
status = os.system(
@ -574,18 +544,6 @@ class Update:
)
os.system(f"ls -lha {source_file}")
sys.exit(1)
# else:
# do_switch_origin_sim = True
# if do_switch_origin_sim:
# # Check if not erase an existing
# if target_file_exist:
# # Create a backup
# new_target_file = f"{target_file}.backup_{time.strftime('%Yy%mm%dd-%Hh%Mm%Ss')}"
# else:
# new_target_file = target_file
# Move it and create a symlink
# shutil.move(source_file, new_target_file)
# do_symlink = True
else:
# Case 3
# Is symlink

View file

@ -1,7 +1,7 @@
#!/usr/bin/env bash
# Usage, ./test.sh -d test_addons_name -i module_name
export ODOO_MODE_COVERAGE="true"
export ODOO_MODE_TEST="true"
#export ODOO_MODE_COVERAGE="true"
#export ODOO_MODE_TEST="true"
./run.sh "$@"
ODOO_MODE_TEST="true" ./run.sh --workers 0 "$@"