Bonjour @Michel_F ,
C’est en effet une bonne idée d’avoir en un seul endroit les versions de Python nécessaires Je ne dis pas qu’il faut que chacun gère ses PyEnv en autonomie (avec les versions de Python qui vont avec) car en effet la place disque n’est pas négligeable et le temps d’install non plus d’ailleurs sur des petites machines Et puis c’est dommage d’avoir un Python 3.11.8 en trois exemplaires pour 3 plugins différents.
Là on je suis moins favorable, c’est la partie Venv, comme l’a précisé @Mips plus haut dans cette conversation, cela prend quelques lignes à installer et cela permet surtout si besoin de le gérer, d’être libre d’y apporter des spécificités, et de faciliter le troubleshooting avec les utilisateurs au fil des mises à jour des plugins dans le temps.
Un exemple : j’ai vu dans ton code (que j’ai lu rapidement, donc hésite pas à me contredire ) que pour la mise à jour d’un Venv, tu fais un delete du venv et tu le réinstalles, or dans bcp de cas, il y a plus simple et surtout moins chronophage (car un venv qui met 25 minutes à installer les dépendances, si c’est juste pour mettre à jour la version de python qui est utilisée dans ce venv, ca fait mal en terme de ressources utilisées )
D’autre part, lors de l’installation des dépendances, une fois que tu as lancé l’ordre d’installer le venv, le plugin source (qui demande le venv) n’a plus de contrôle sur ce qui se passe, et plus rien dans ses logs, ca peut être problématique pour troubeshooter une install qui se passe pas bien.
Tout ca pour dire, et cela n’engage que moi , que j’aime bien maitriser un maximum de pans de mes plugins, y compris les mises à jours, les installs, etc… car par exemple s’il y a un soucis avec un utilisateur d’un plugin, et qu’on commence par lui dire, va voir si p4j est installé, si dans son répertoire il y a un répertoire venv du nom du plugin, où se trouvent les logs d’install des dépendances, etc… ca risque vite de tourner en rond à rejeter la cause sur l’un ou l’autre des plugins sans faire avancer l’histoire.
D’autre part, cela a été évoqué également, comment gérer l’installation des dépendances proprement au niveau « visuel » pour le user ? car si la version de python n’est pas installée par exemple, un plugin va demander à p4j de lancer la compilation (et ca peut aller jusqu’à 30 min d’install), mais pendant ce temps, tu affiches quoi au niveau logs dépendances du plugin qui a demandé l’install ?
Alors soyons clair : j’aime l’idée de ton plugin (même si encore une fois je préfèrerais le voir dans le core), mais c’est par définition un plugin très transverse, qui peut avoir un fort impact sur les autres plugins qui vont l’utiliser, donc il faut qu’il soit hyper « clean » et sur l’usage et sur le code, pour que les devs adhèrent et l’utilisent (et encore une fois cela n’engage que moi, je ne parle pas au nom des autres dev )
Je dis ca, car l’usage de pyenv amène des surprises aussi lors des mises à jour notamment, par rapport au owner du répertoire s’il n’est pas le même que celui qui a fait l’install de départ (c’est du vécu) etc…
Le venv (virtualenv) est par définition propre à un plugin, et c’est même le coeur d’un plugin dans certains cas, donc je vois pas ce que cela ferait gagner comme place de le mettre dans p4j, car il sera dans tous les cas unique
Je confirme que même si je n’avais pas encore eu le temps d’écrire ici, j’avais jeté un oeil sur ton plugin et sur sa doc (et au passage, bravo déjà pour le travail accompli ! )
Je te remercie pour tes actions déjà faites (bravo pour la rapidité ) et tu as même pris le temps d’aller répondre à Doud, merci
Pas de soucis, il n’y a que ceux qui ne font rien qui ne peuvent pas de tromper donc aucun besoin de t’excuser, on est là pour en discuter et avancer tous ensemble (d’autant plus comme je l’ai dit sur un plugin aussi transverse)
Pour l’instant, je passe par un pyenv autonome, et un venv géré par mon code, car j’avais besoin d’avancer et de stabiliser le plugin sur lequel je bossais, mais à l’avenir si p4j se stabilise et répond au besoin, il sera toujours temps de patcher mes plugins pour l’utiliser
Donc pour être franc (en général je dis toujours ce que je pense ) : vivement la centralisation des versions de python, mais vive l’autonomie des venv lol
Au plaisir,
TiTidom.