09:45 <discord_afpy> <Dorian TURBA - remote> faut qu'on parle đ
09:45 <alain_afpy> WARNING !!! YAKAFOKON DETECTED !!!!
09:46 <discord_afpy> <Dorian TURBA - remote> @Karine dispo vocal ?
09:47 <discord_afpy> <eyecontrol> Oui t'attends quoi pour me rĂ©pondre đ
09:47 <discord_afpy> <eyecontrol> Qu'est-ce que j'ai dit đ
09:54 <entwanne> Ma FOMO (Fear Of Missing Out) est en alerte
09:54 <discord_afpy> <Dorian TURBA - remote> Tu loupe tellement de chose
09:54 <discord_afpy> <Dorian TURBA - remote> Tu loupe tellement de chose
09:58 <entwanne> je sais :(
10:01 <Mindiell> Parce que Discord ?
10:05 <entwanne> parce que la suite de la discussion d'hier sur les lockfiles a l'air de se passer en vocal
10:11 <discord_afpy> <Dorian TURBA - remote> Je résume
10:11 <discord_afpy> <Dorian TURBA - remote> le lock permet de savoir que tu as testé ce qui part en pord
10:11 <discord_afpy> <Dorian TURBA - remote> prod*
10:12 <Mindiell> ah c'Ă©tait sur ce canal ? :)
10:12 <discord_afpy> <Dorian TURBA - remote> si tu test et release en prod, mais qu'entre temps, une maj est faite, tu n'a pas fait de tests sur ce qui est push en prod (puisqu'une nouvelle version d'une dĂ©pendance est utilisĂ©e, peut-ĂȘtre une cassĂ©e
10:12 <entwanne> ça n'empĂȘche pas que le lockfile destinĂ© Ă la prod peut ĂȘtre sĂ©parĂ© du code du projet (qui n'en dĂ©pend pas)
10:12 <Mindiell> je pige pas ce conept. Je ne pousse pas en prod un truc non testé...
10:13 <Mindiell> je suis d'accord avec ça
10:13 <Mindiell> bien que...
10:13 <Mindiell> J'aurais tendance à plutÎt fournir les dépendances pour une "installation" (en "prod" ou sur un PC) et avoir des lockfiles pour les tests et les devs hors du code non ?
10:16 <entwanne> ouais moi aussi
10:18 <Mindiell> et également, fournir quelque chose de plus large pour ces installations (forcément sur des environnements/systÚmes différents)
10:18 <Mindiell> par contre, pour tester/développer, il me semble important d'avoir des versions trÚs précises
10:23 <discord_afpy> <Dorian TURBA - remote> Entwanne, qu'est ce que tu entends par sĂ©parĂ© ? Tu veux le mettre oĂč ?
10:24 <discord_afpy> <Dorian TURBA - remote> oui mais si ta CI est en 3 stage, Test, Build, Deploy, et qu'entre Test et Build, tu as une montée de version d'une dépendance, tu build un truc non testé
10:24 <entwanne> dans la recette de déploiement, avec la configuration liée à l'environnement de prod
10:24 <discord_afpy> <Dorian TURBA - remote> Sauf que ce lock doit ĂȘtre prĂ©sent et utilisĂ© lors des tests en CI
10:25 <discord_afpy> <Dorian TURBA - remote> peut importe oĂč tu le met et comment tu le rĂ©cupĂšre
10:25 <discord_afpy> <Dorian TURBA - remote> il le faut lors des tests
10:25 <entwanne> Pas forcément la CI du projet (qui teste avec les versions compatibles les plus récentes des dépendances) mais la CI de pré-déploiement (qui teste avec les versions épinglées des dépendances), oui
10:26 <discord_afpy> <Dorian TURBA - remote> Mindiell, par contre pour le dev c'est l'inverse, tu peux avoir des versions lache
10:26 <discord_afpy> <Dorian TURBA - remote> mais quand je parle de prod, je parle pas d'une lib open-source installée sur des millions d'env différents
10:26 <discord_afpy> <Dorian TURBA - remote> mais de 1, 5, 20 env max
10:26 <entwanne> le projet est une entité distincte de son instance déployée, avec son propre cycle de vie
10:28 <discord_afpy> <Dorian TURBA - remote> pour l'env de dev, sur du dev open-source à contribution, avoir un environnement de dev uniforme a ses avantages (moins d'issue à cause de ça), mais c'est beaucoup moins problématique sur une équipe de 5 à 10 personnes.
10:29 <entwanne> libre aux développeurs de choisir de reproduire les versions de tel ou tel environnement, oui
10:29 <discord_afpy> <Dorian TURBA - remote> tout le monde n'a pas de test de recette mais on est d'accord
10:32 <discord_afpy> <Dorian TURBA - remote> Entwanne, j'aimerais discuter de cette histoire de lock en vocal quand tu as le temps (je tape trĂšs lentement au clavier, c'est relou)
10:32 <discord_afpy> <Dorian TURBA - remote> je rentre en réu, je re dans 30 min je pense
10:32 <entwanne> ça m'intĂ©resse pas trop en vocal, je trouve pas ça pratique et ça empĂȘche les autres de lire/rebondir
10:37 <Mindiell> Dorian: pas ok pour les dev. Je pense qu'il faut au contraire un environnement trÚs précis.
10:38 <Mindiell> Soit celui de la prod pour reproduire un souci, soit un environnement Ă©quivalent aux autres devs pour, lĂ aussi, avoir le mĂȘme comportement.
10:38 <Mindiell> et je parle de tous les projets, qu'ils soient sur des milliers de machines ou juste une (mĂȘme si c'est clairement moins contraignant)
10:39 <Mindiell> typiquement, je dev sr une Deiban sid (donc paquets trĂšs Ă jour) et je dĂ©ploie sur un serveur qui n'a pas forcĂ©ment le mĂȘme systĂšme ou en tout cas pas la mĂȘme version.
10:44 <entwanne> pourtant c'est pas mal d'avoir une diversité d'environnements locaux chez les développeurs, ça peut permettre d'identifier des problÚmes (on croyait que le projet était compatible avec telle version de dépendance et en fait non parce que telle fonctionnalité est cassée)
10:45 <misc> mouais, ça marche un peu par hasard, ça se remplace par une CI qui prends les trucs à jour en plus de la plateforme de déploiement, non ?
10:47 <entwanne> oui pour moi c'est le boulot de la CI, mais disons que si le projet est censé pouvoir tourner avec différentes versions des dépendances il n'y a pas de raison d'imposer des versions épinglées aux développeurs (et dans le pire des cas ça permet d'identifier des cas qui seraient passés entre les mailles de la CI)
10:47 <misc> mais ça implique aussi le risque de partir sur une side quest si tu veux coder un truc
10:48 <entwanne> Ou alors tu fais un `source env-prod/bin/activate` si tu n'as pas le temps de traiter ça maintenant
10:49 <entwanne> Mon point c'est plutĂŽt de donner de la libertĂ© Ă chaque dĂ©veloppeur (celles et ceux qui souhaitent utiliser les exactes mĂȘmes dĂ©pendances qu'en prod le font) que de l'imposer Ă tout le monde
10:51 <misc> mais la presence du lockfile ne change rien, tu peux toujours retirer le fichier
10:57 <entwanne> s'il est là c'est qu'il est généralement versionné avec le projet
10:57 <entwanne> mais sinon c'est ce que je dis, autant ne pas le mettre lĂ pour ne pas l'imposer Ă tout le monde
10:58 <Mindiell> tu imposes rien du tout. T'es pas plus obligé d'utiliser un pylock.toml que le requirements
11:00 <entwanne> l'état actuel des outils de gestion de dépendances que j'ai pu tester (pipenv, poetry), c'est que ça se synchronisait sur ce lockfile, donc ça l'imposait
11:04 <Mindiell> ah, j'utilise que venv et pip
11:06 <discord_afpy> <eyecontrol> Avec uv, tu as le lockfile et le pyproject.toml, tu peux donc faire comme tu veux
11:10 <discord_afpy> <Dorian TURBA - remote> @misc "side quest" ?
11:11 <discord_afpy> <Dorian TURBA - remote> @entwanne mettre un lock file dans le projet ce n'est pas l'imposer Ă tout le monde non plus
11:11 <discord_afpy> <Dorian TURBA - remote> ah bah je paraphrase Mindiell
11:13 <entwanne> je trouve que si
11:16 <discord_afpy> <eyecontrol> En quoi ?
11:17 <discord_afpy> <eyecontrol> Si je prends comme exemple uv, tu as le lockfile mais aussi un pyproject.toml, donc tu n'es pas obliogé d'utiliser le lockfile
11:30 <entwanne> C'est pas ce que je constate : à moins d'utiliser des `--no-sync` partout, ça synchronise automatiquement les versions de dépendances avec celles spécifiées dans le uv.lock à chaque `uv run` par exemple
11:37 <entwanne> Voir ici : https://wyz.fr/9O-19
11:38 <entwanne> Devoir préciser une option particuliÚre pour ne pas utiliser le lockfile, j'appelle ça forcer
11:40 <discord_afpy> <eyecontrol> Alors pour moi `requests>=2` c'est différent de `name = "requests" version = "2.31.0"`
11:40 <discord_afpy> <eyecontrol> Ensuite le pyproject.toml ne liste pas les dépendances des packages installés et leurs versions
11:41 <discord_afpy> <eyecontrol> et tu peux simplement faire un `uv pip install -r pyproject.toml` pour n'avoir que ce qui est dans le pyproject.toml
11:41 <entwanne> requests>=2 c'est la version souple définie dans le pyproject.toml, aveclaquelle je garantis que mon project fonctionne
11:42 <entwanne> 2.31.0, c'est un exemple de ce qui pourrait avoir été fixé dans un uv.lock
11:43 <entwanne> Sauf que le `uv pip install -r pyproject.toml` sera écrasé au prochain `uv run` si je ne précise pas `--no-sync`
11:46 <discord_afpy> <Dorian TURBA - remote> @Karine uv utilise le lock file pour les dependances à installé dans ton venv
11:47 <discord_afpy> <Dorian TURBA - remote> et faut faire gaffe avec ça
11:47 <discord_afpy> <Dorian TURBA - remote> parce que uv pip, c'est vraiment un truc "séparé" si je peux dire, de l'écosysteme d'uv
11:49 <discord_afpy> <Dorian TURBA - remote> J'utilise pas encore uv run perso, il y a un intéret particulier @entwanne ?
11:50 <entwanne> je ne sais pas ça parlait d'uv alors j'ai juste suivi la doc
11:50 <asyd> euh a part exécuter ton code dans l'env crée par uv ? :)
11:51 <discord_afpy> <Dorian TURBA - remote> @entwanne je vois ce que tu veux dire pour le "forcage"... est-ce bien, est-ce mal, je sais pas... si tu utilise uv, tu "signe" le contrat uv, mais on est quand mĂȘme vraiment loin du dĂ©lire de poetry
11:51 <discord_afpy> <Dorian TURBA - remote> si tu décide d'utiliser pip ou hatch, rien n'est forcé
11:51 <discord_afpy> <Dorian TURBA - remote> contrairement Ă poetry oĂč lĂ , sans poetry, tu meurt
11:52 <discord_afpy> <Dorian TURBA - remote> @asyd c'est du sarcasme ?
11:52 <asyd> oui, j'ai du mal a voir comment tu peux utiliser uv sans utiliser uv run
11:52 <discord_afpy> <Dorian TURBA - remote> Tu veux en venir oĂč ? Parce que visiblement si je pose la question, c'est que je n'ai pas de probleme Ă exĂ©cuter le code dans l'env crĂ©er par uv sans uv, donc je ne vois pas oĂč tu veux en venir.
11:53 <discord_afpy> <Dorian TURBA - remote> comme ça : python -m machin.py, par exemple
11:54 <entwanne> si python pointe vers celui de l'environnement virtuel de ton projet, oui, sinon tu n'as pas les dépendances
11:54 <discord_afpy> <Dorian TURBA - remote> Je pense que si tu as du mal à voir comment, poser la question clairement et sans ambiguité aiderais justement à avoir une réponse
11:54 <entwanne> et oui tu peux toujours utiliser tout un autre tooling et te faire les dĂ©pendances toi-mĂȘme Ă cĂŽtĂ©, lĂ en effet le lockfile ne viendra pas polluer ton env, mais ça peut ĂȘtre fastidieux
11:55 <discord_afpy> <Dorian TURBA - remote> perso, uv sync me sync les dépendances de mon venv, et quand je run python (sans uv), c'est ce venv qui est utilisé
11:55 <entwanne> Ben perso si je reprends mon exemple de tout à l'heure (https://wyz.fr/9O-19) et que je fais juste `python test.py` ou `python -m test`, il ne trouve pas la dépendance requests
11:56 <entwanne> il faut soit que j'utilise `uv run`, soit que je fasse un `source .venv/bin/activate` au préalable
11:56 <entwanne> python ne devine pas tout seul quel venv utiliser
11:56 <asyd> Dorian: https://dpaste.org/cgcdP
11:57 <discord_afpy> <Dorian TURBA - remote> J'utilise Pycharm, donc je n'ai jamais besoin de m'embeter Ă faire l'activate Ă la main.
11:57 <entwanne> tu le fais pas Ă la main mais tu le mets au courant que tel environnement existe et qu'il faut l'activer pour le projet, ça revient au mĂȘme
11:57 <entwanne> `uv run` répond aussi à ce besoin
11:58 <discord_afpy> <Dorian TURBA - remote> Pycharm crĂ©er le venv et sais oĂč il est par dĂ©faut, c'est la configuration de base de pycharm
12:00 <discord_afpy> <Dorian TURBA - remote> Mais je vois oĂč vous voulez en venir, donc pour ceux qui lisent, je vais ĂȘtre explicite dans ce que j'ai compris de l'interet de uv run:
12:00 <discord_afpy> <Dorian TURBA - remote> uv run permet de run python dans l'environnement virtuel sans avoir Ă l'activer soi-mĂȘme.
12:00 <discord_afpy> <Dorian TURBA - remote> Vous voyez autre chose qui pourrait faire qu'uv run est intéressant ?
12:00 <entwanne> synchroniser les dépendances avec le lockfile :D
12:00 <asyd> ben les gens qui n'utilisent pas leur ide pour lancer le code ?
12:01 <discord_afpy> <Dorian TURBA - remote> "ben les gens qui n'utilisent pas leur ide pour lancer le code ?" On est bien dans le cas que j'ai identifier juste au dessus, non ?
12:01 <discord_afpy> <Dorian TURBA - remote> donc encore du sarcasme pas trĂšs constructif --'
12:01 <entwanne> ça a l'air de faire pas mal de trucs magiques pour trouver le venv courant aussi, selon `uv help run`
12:02 <discord_afpy> <Dorian TURBA - remote> entwanne ah ça je veux bien te croire ! XD
12:02 <discord_afpy> <Dorian TURBA - remote> vu que le venv peut ĂȘtre un peu partout avec plein de nom, y compris dans le petit jardin secret oĂč uv met ses venv perso đ
12:02 <discord_afpy> <Dorian TURBA - remote> mais en dehors du "pas besoin d'activate l'env", rien de plus ?
12:04 <entwanne> Ben si, installer / mettre à jour les dépendances
12:04 <entwanne> Mais moi je m'en fous de devoir utiliser uv ou quoi que ce soit d'autre pour développer sur un projet (tant que c'est pas la galÚre à installer), ce qui me dérange c'est juste cette manie de forcer des versions de dépendances bien précises pour tout le monde (plutÎt que juste pour les déploiements sur des environnements spécifiques) et de limite considérer qu'il n'y a que cette maniÚre de faire qui soit la bonne
12:09 <discord_afpy> <Dorian TURBA - remote> Asyd : ma question est similaire à "à quoi sert uv add?", et ta réponse "a part ajouter une dépendance à ton environnement virtuel?".
12:09 <discord_afpy> <Dorian TURBA - remote> Ce genre de rĂ©ponse n'est pas constructive et mĂȘme plutĂŽt dĂ©sagrĂ©able. J'essaie pour ma part de les Ă©viter, et j'aimerais ĂȘtre repris si ça m'Ă©chappe.
12:09 <discord_afpy> <Dorian TURBA - remote> La raison est que ce genre de rĂ©ponse peut donner lâimpression quâon rabaisse la question ou quâon suppose que lâinterlocuteur a manquĂ© une Ă©vidence, mĂȘme si ce nâĂ©tait pas lâintention.
12:09 <discord_afpy> <Dorian TURBA - remote> Il veut mieux chercher Ă maintenir un ton bienveillant et constructif, surtout quand quelquâun pose une question qui peut paraĂźtre basique. Câest souvent lĂ quâon peut le plus aider.
12:09 <discord_afpy> <Dorian TURBA - remote> Visiblement, il me manque des clés pour identifier l'intéret de l'outil, car il s'avÚre que le besoin comblé pour le-dit outil m'es inconnu.
12:09 <discord_afpy> <Dorian TURBA - remote> RĂ©pondre avec sarcasme est donc contre-productif et peut dĂ©courager quelquâun qui cherche simplement Ă comprendre.
12:09 <discord_afpy> <Dorian TURBA - remote> Quand tu fais uv run, ça fait un sync au préalable ?
12:10 <entwanne> Oui, cf l'exemple que j'ai montré ici : https://wyz.fr/9O-19
12:11 <entwanne> à moins d'explicitement demander à ne pas le faire, ça synchronise les dépendances
12:11 <discord_afpy> <Dorian TURBA - remote> alors, j'aime bien le sync, mais j'ai toujours travaillé avec des dépendances laches en env de dev (avant uv), et ça permet de découvrir effectivement des bugs trÚs bizarre avec une feedback loop beaucoup plus courte qu'avec de la CI
12:12 <discord_afpy> <Dorian TURBA - remote> l'uv run est donc plutÎt bénéfique si on fait un pull et que les locks ont changé sans qu'on le sache, histoire que la prochaine exec se fasse sur le lock...
12:12 <discord_afpy> <Dorian TURBA - remote> intéressant
12:12 <discord_afpy> <Dorian TURBA - remote> je me demande si on peut demander Ă Pycharm d'utiliser uv run đ
12:13 <discord_afpy> <Dorian TURBA - remote> Merci entwanne pour ton retour, je serais passé à coté de cette subtilité
12:13 <entwanne> ou si tu démarres sur le projet, `uv run` crée aussi le venv automatiquement
12:14 <discord_afpy> <Dorian TURBA - remote> oui, mais si c'est uv qui fait son venv dans son coin, c'est infernal pour plug pycharm dessus aprĂšs
12:14 <entwanne> mais perso je ne connais pas du tout les subtilités de l'outil, je ne l'utilise pas vraiment, j'ai juste regardé pour répondre à "tu n'es pas obliogé d'utiliser le lockfile"
12:15 <entwanne> Je ne sais pas j'utilise pas pycharm non plus :D
12:15 <entwanne> je préfÚre des outils simples que je peux comprendre
12:16 <discord_afpy> <Dorian TURBA - remote> mais non...
12:16 <discord_afpy> <Dorian TURBA - remote> je viens de voir que pycharm est stupidement configuré
12:16 <discord_afpy> <Dorian TURBA - remote> jpp de jetbrain sans déconner
12:17 <discord_afpy> <Dorian TURBA - remote> pycharm ne pige pas les venv d'uv
12:17 <discord_afpy> <Dorian TURBA - remote> pour ça, il faut un uv venv --seed
12:17 <discord_afpy> <fred.et.rick> oui, lâoutils vient avec des choix par dĂ©faut qui sont⊠discutable
12:17 <discord_afpy> <Dorian TURBA - remote> mais quand on utilise l'intégration uv de pycharm
12:17 <discord_afpy> <Dorian TURBA - remote> il utilise pas le seed donc le venv est imbitable pour pycharm
12:17 <discord_afpy> <Dorian TURBA - remote> jpp
12:18 <discord_afpy> <Dorian TURBA - remote>
12:19 <discord_afpy> <Dorian TURBA - remote> ah tiens c'est pas le message d'erreur d'y a 2 min
12:19 <discord_afpy> <Dorian TURBA - remote> wtf
12:20 <discord_afpy> <Dorian TURBA - remote> ok maintenant pycharm n'a plus de probleme avec le format de l'env d'uv
12:20 <discord_afpy> <Dorian TURBA - remote> la magie de jetbrain je suppose ?
12:21 <discord_afpy> <Dorian TURBA - remote> par contre il a beau utiliser uv, il run le code avec python
12:21 <discord_afpy> <Dorian TURBA - remote> c'est balo...
12:23 <discord_afpy> <Dorian TURBA - remote> et j'ai pas l'impression qu'on puisse changer la config par defaut des run python
12:25 <discord_afpy> <Dorian TURBA> @Karine je ne sais plus quelle version de pycharm était buggé, mais la derniÚre (PyCharm 2024.3.5 (Professional Edition)) fonctionne bien avec UV, y compris l'install des packages qui ajoute les dep dans le pyproj etc
12:26 <discord_afpy> <Dorian TURBA> (mais les runs se font via python, donc pas d'autosync)
12:28 <discord_afpy> <Dorian TURBA> De plus, évidement, tu peux pas utiliser l'interface pour l'installer en tant qu'optional dep, mais ça, jetbrain à toujours été un peu concon, ça change pas
12:59 <discord_afpy> <fred.et.rick> si, tu peux, faut juste que tâagrandisse ta fenetre pour voir lâoption
13:01 <discord_afpy> <fred.et.rick> ah non, merde, jâavais mal compris
13:02 <entwanne> allez prochain débat : quel est le meilleur éditeur ! :D
13:04 <discord_afpy> <fred.et.rick> celui qui te convient le mieux
13:58 <discord_afpy> <Dorian TURBA> @entwanne hum, facile ça, mon engine de MUD
14:03 <entwanne> de boue ?
14:08 <discord_afpy> <Dorian TURBA> MUD, eme u dé, multi-user-dungeon
14:09 <discord_afpy> <Dorian TURBA> du d&d en jeux vidĂ©o, mais le d&d d'y a longtemps quand ça consistait surtout Ă faire du porte monstre trĂ©sors en donjon đ
14:09 <discord_afpy> <Dorian TURBA> et ce genre de jeu, historiquement, pouvait (et du coup, peuvent encore) ĂȘtre dev en live sur la prod directement via le jeu
14:10 <discord_afpy> <Dorian TURBA> genre j'ai mon petit guerrier niveau 3
14:10 <discord_afpy> <Dorian TURBA> et je peux entrer une commande pour inserer le code qui suit dans un fichier du jeu, qui va le reload quand j'ai fini
14:10 <discord_afpy> <Dorian TURBA> mieux que de se connecter en SSH sur la prod, moi je lance mon mud sur les serveurs de la boite
14:11 <discord_afpy> <Dorian TURBA> đ
14:21 <entwanne> ah d'accord ^^
18:55 <mdk> matin
19:37 <discord_afpy> <Dorian TURBA> https://tenor.com/view/%D1%8D%D0%BA%D1%81%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D1%82%D1%83%D1%81-%D0%B1%D0%B0%D0%B1%D0%B0%D0%B9-%D0%B2%D0%B5%D0%BB%D0%B8%D0%BA%D0%BE%D0%BB%D0%B5%D0%BF%D0%BD%D1%8B%D0%B9-%D0%B1%D1%8D%D0%B1%D1%8D%D0%B9-%D0%B1%D0%B5%D0%B1%D0%B5%D0%B9-gif-17986446467396080512
19:37 <discord_afpy> <Dorian TURBA> vous voyez les gif sur irc ?
19:38 <discord_afpy> <eyecontrol> Quâest-ce que câest que ça ?đ
19:40 <discord_afpy> <Dorian TURBA> un inquisiteur de 40k qui dit bonjour à une planete envahit par les hérétiques #Exterminatus
19:41 <discord_afpy> <Dorian TURBA> avec un décor typique tiré du jeu Stellaris
19:41 <entwanne> On a un lien vers l'image
19:41 <discord_afpy> <Dorian TURBA> un 4X spatial en temps réel qui est juste trop bien
19:41 <discord_afpy> <Dorian TURBA> @entwanne c'est déjà ça ^^
19:42 <entwanne> mais il doit bien y avoir des clients IRC qui transforment les liens en images, c'est sur ce principe que fonctionne le client discord
19:52 <discord_afpy> <saturn7694> nobody expect the spanish inquisition
20:48 <discord_afpy> <Dorian TURBA> oh ça me fait penser, faudra que je fasse en sorte de pouvoir jouer Ă mon mud via discord đ ça doit ĂȘtre possible...