erplibre/script/install
Mathieu Benoit e20d8d9baa [ADD] install: uv to place Python packages, pip as fallback
uv replaces pip where it can: the tools venv and the Poetry bootstrap. The
choice lives in EL_PIP_PROVIDER -- auto, uv or pip -- and in a single
file, lib_pip_provider.sh, on the exact model of the mise/pyenv switch. A
uv failure falls back to pip: it is stricter on metadata and rejects
packages pip accepts.

Three guards. The target always goes through "--python" rather than being
inferred from the active venv: poetry.toml declares a "./.venv" uv would
also look for. Python 3.7, still used by Odoo 12 and 13, stays on pip. And
"uv pip sync" is never used: it would delete pip itself and everything
Poetry laid down.

One bug falls along the way: the idempotence guard aimed at
.venv.erplibre/bin/poetry while Poetry installs into the Odoo venv, so a
successful replay reported failure all the same.

--- FR ---

uv remplace pip là où il le peut : le venv d'outils et l'amorçage de
Poetry. Le choix vit dans EL_PIP_PROVIDER — auto, uv ou pip — et dans un
seul fichier, lib_pip_provider.sh, sur le modèle exact de l'aiguillage
mise/pyenv. Un échec d'uv retombe sur pip : il est plus strict sur les
métadonnées et refuse des paquets que pip accepte.

Trois gardes. La cible passe toujours par « --python » plutôt que d'être
déduite du venv actif : poetry.toml déclare un « ./.venv » qu'uv
chercherait aussi. Python 3.7, encore utilisé par Odoo 12 et 13, reste sur
pip. Et « uv pip sync » n'est jamais employé : il supprimerait pip
lui-même et tout ce que Poetry a posé.

Un défaut tombe au passage : le garde d'idempotence visait
.venv.erplibre/bin/poetry alors que Poetry s'installe dans le venv Odoo,
si bien qu'un rejeu réussi rapportait quand même un échec.

Assisted-by: Claude Opus 5
2026-08-16 23:33:49 -04:00
..
install_arch_linux.sh [ADD] arch: Canadian pacman mirrors first 2026-08-16 23:33:49 -04:00
install_debian_10_prod_docker.sh [UPD] typo certbot 2026-01-10 04:52:39 -05:00
install_debian_dependency.sh [FIX] install: the EL9, EL10 and Fedora build chain 2026-08-16 23:33:49 -04:00
install_dev.sh [ADD] install: mise as Python provider, pyenv as fallback 2026-08-16 23:33:49 -04:00
install_dev_extra_ubuntu.sh [UPD] replace docker-compose to docker compose 2024-05-03 23:13:59 -04:00
install_erplibre.sh [IMP] mobile home installation and run 2025-11-11 05:19:14 -05:00
install_fedora_dependency.sh [FIX] install: the EL9, EL10 and Fedora build chain 2026-08-16 23:33:49 -04:00
install_git_repo.sh [IMP] refactoring .venv.erplibre 2025-10-31 01:34:26 -04:00
install_locally.sh [ADD] install: uv to place Python packages, pip as fallback 2026-08-16 23:33:49 -04:00
install_locally_dev.sh [IMP] installation: parallelize repo sync and poetry install 2026-08-07 02:09:35 -04:00
install_locally_prod.sh [FIX] script python: missing color log error 2024-05-03 23:13:59 -04:00
install_ntfy.sh [ADD] install: add NTFY self-hosted push notification server 2026-08-07 02:52:17 -04:00
install_OSX_dependency.sh [UPD] OSX installation: remove python 3.7 2026-02-13 04:07:32 -05:00
install_production.sh [UPD] script refactor install_daemon, python script to customize services 2025-11-02 02:14:15 -05:00
install_production_nginx.sh [IMP] support multi version odoo on same workspace 2025-10-31 01:36:26 -04:00
install_suse_dependency.sh [ADD] install: mise as Python provider, pyenv as fallback 2026-08-16 23:33:49 -04:00
install_ubuntu_docker.sh [UPD] typo certbot 2026-01-10 04:52:39 -05:00
install_venv.sh [ADD] install: mise as Python provider, pyenv as fallback 2026-08-16 23:33:49 -04:00
lib_pip_provider.sh [ADD] install: uv to place Python packages, pip as fallback 2026-08-16 23:33:49 -04:00
lib_python_provider.sh [ADD] install: mise as Python provider, pyenv as fallback 2026-08-16 23:33:49 -04:00
lib_qpdf.sh [FIX] install: the EL9, EL10 and Fedora build chain 2026-08-16 23:33:49 -04:00