Migration dokos V5

Bonjour,

Je viens de commencer Ă  me pencher sur la migration en Dokos V5.

J’ai mis à jour mon bench avec appli V4.

J’ai installé Python 3.14 et Node 24.

J’ai fait le upgrade dokos-cli

Mais lorsque je fais bench migrate-env python3.14

J’ai un message d’erreur lié à frappe j’obtiens l’erreur

ERROR: Package ‹ frappe â€ş requires a different Python: 3.14.6 not in ‹ <3.13,>=3.10 â€ş
ERROR:
subprocess.CalledProcessError: Command ‹ /home/dokos/dokos-bench/env/bin/python -m pip install --upgrade -e apps/frappe â€ş returned non-zero exit status 1.

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File « /home/dokos/.local/bin/bench Â», line 6, in
sys.exit(cli())
~~~^^
File « /home/udokos/.local/lib/python3.14/site-packages/bench/cli.py Â», line 132, in cli
bench_command()
~~~~~~~~~~~~~^^
File « /home/dokos/.local/lib/python3.14/site-packages/bench/commands/utils.py Â», line 209, in migrate_env
migrate_env(python=python, backup=backup)
~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File « /home/dokos/.local/lib/python3.14/site-packages/bench/utils/bench.py Â», line 249, in migrate_env
_install_app(« frappe Â»)
~~~~~~~~~~~~^^^^^^^^^^
File « /home/dokos/.local/lib/python3.14/site-packages/bench/utils/bench.py Â», line 242, in _install_app
exec_cmd(f"{pvenv}/bin/python -m pip install --upgrade {app_path}")
~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File « /home/dokos/.local/lib/python3.14/site-packages/bench/utils/init.py Â», line 178, in exec_cmd
raise CommandFailedError from subprocess.CalledProcessError(return_code, cmd)
bench.exceptions.CommandFailedError

A priori une incompatibilité de version de python sur apps/frappe. Si je regarde dans le apps.json j’ai la version 4.51.0.

Avez-vous une idée sur comment résoudre le problème?

Faut-il que je fasse bench switch-to-branch v5 frappe --upgrade puis que je retente le bench migrate-env python3.14 et que je continue avec le bench switch-to-branch v5 erpnext hrms payments bookings --upgrade.

Merci et bonne journée,

Nathalie

Bonjour Nathalie,

La version 4 de Dokos n’étant pas compatible avec Python 3.14, il ne sera pas possible de migrer vers Python 3.14 tout en gardant les versions 4.
Oui il faudrait faire bench switch-to-branch v5 frappe puis retenter bench migrate-env python3.14

Pour être honnête, je n’ai jamais suivi cette méthode pour une montée de version majeure, car ça modifie l’environnement virtuel en place, ce n’est pas idéal.
Pour moi le plus simple est de créer un nouveau bench en v5 (python 3.14), puis de déplacer le dossier contenant le site dans ce nouveau bench avant de lancer bench update.

Bonne journée,

Charles-Henri

Bonjour Charles-Henri,

Je vais regarder ça. Mais du coup il ne faut pas s’appuyer sur la doc Migrer vers la version 5 de Dokos - Dokos - Documentation . C’est sur cette dernière que je me suis appuyée.

Bonne journée,

Re-bonjour Nathalie,

Cette méthode devrait fonctionner, il faudrait analyser ce qui bloque.
J’indiquais juste que je préfère ce qui est indiqué ici: Migrer vers la version 5 de Dokos - Dokos - Documentation

Ou idéalement une installation sous Docker - nous n’utilisons plus que cela en interne.