!ZUiNnfpRqQMDrPLChM:nixos.org

Nix ♥ la francophonie

209 Members
Salon francographe de NixOS70 Servers

Load older messages


SenderMessageTime
19 Oct 2023
@gsaurel:laas.frnim65s o/
Depuis que je suis passé à home-manager sur mes ubuntu pro / arch perso, j’ai un super env de bureau, mais ça a totalement détruit mes env de dev C++, Rust & Python. Y’a plus jamais rien qui compile normalement.
Là, j’ai voulu compiler un projet rust sur nixos sur un laptop de test, et je m’en suis sorti avec un shell.nix.
Du coup, c’est quoi la pratique attendue pour dev ? Faire un shell.nix dans tous mes projets C++ / Rust / Python ?
11:33:33
@raitobezarius:matrix.orgraitobezarius moi je fais juste nix-shell -p rustc pour travailler sur un projet Rust 11:39:53
@raitobezarius:matrix.orgraitobezariuset ça marche avec rust-analyzer out of the box plutôt bien11:40:00
@raitobezarius:matrix.orgraitobezariuspour du Python, c'est plus compliqué dès lors qu'il y a des dépendances natives11:40:16
@raitobezarius:matrix.orgraitobezarius j'utilise en général poetry2nix et je le jette au poetry.lock ou je fais python3.withPackages (ps: [ ps.touslespaquets dont j'ai besoin ]) s'ils sont tous dans nixpkgs 11:40:38
@raitobezarius:matrix.orgraitobezariusEn général, je trouve que si un paquet Python est pas dans nixpkgs, c'est pas bon signe pour le projet Python :P11:40:50
@gsaurel:laas.frnim65sok, merci !11:41:15
@raitobezarius:matrix.orgraitobezariuset pour C++, ça dépend beaucoup du build system11:43:28
@raitobezarius:matrix.orgraitobezariusen général pour Makefile, CMake et Meson, on s'en sort plutôt bien en mettant les dépendances mais de toute façon en moyenne les projets random C++ ont requièrent toujours une intervention manuelle pour les dépendances11:43:52
@raitobezarius:matrix.orgraitobezariusAprès oui c'est plus chiant que d'installer toutes les dépendances dont on a besoin dans la vie progressivement11:44:07
@raitobezarius:matrix.orgraitobezariusCe que je fais au bout d'un moment c'est que je collecte des templates de shell.nix11:44:14
@raitobezarius:matrix.orgraitobezariusque je copie dans les projets dans lequel je travaille11:44:19
@raitobezarius:matrix.orgraitobezarius Et après tu fais genre un truc genre cp ~cppshell.nix shell.nix et après tu go 11:44:34
@raitobezarius:matrix.orgraitobezarius * en général pour Makefile, CMake et Meson, on s'en sort plutôt bien en mettant les dépendances mais de toute façon en moyenne les projets random C++ ont tjrs requis toujours une intervention manuelle pour les dépendances11:44:52
@gsaurel:laas.frnim65sOk, je vais tenter un truc comme ça11:46:29
@symphorien:xlumurb.eusymphorienaussi direnv rend la vie mille fois plus facile avec tous ces shell.nix16:32:36
@koalp:rcp.tfkoalp ⚡️

Oui, direnv c’est bien, et je trouve direnv avec lorri encore plus chouette (lorri permet de garder les shells en cache, sans garbage collection).

En ce moment pour python j’utilise juste poetry et plus poetry2nix : poetry2nix est sans doute très bien pour faire le packaging à la fin. Mais quand je l’ai testé pour le développement je me retrouvais tout le temps à devoir changer ou ajouter des override du build system. Et quand j’ai besoin de librairie je les rajoute en exportant LD_LIBRARY_PATH. Avec poetry2nix c’est beaucoup plus propre, c’est sûr.

Pour mes projets perso je rajoute un flake.nix (il y a des templates de flake pour rust et python) ou un shell.nix, ça permet de lier l’environnement de développement au projet et ça c’est vraiment chouette.

Au travail, pour éviter de "polluer" les repos, j’ai un flake avec poetry dans un répertoire externe, python bloqué à 3.9, et j’utilise direnv pour l’activer dans tous mes projets. Le problème c’est que l’activation n’est pas instantanée.

17:51:43
@koalp:rcp.tfkoalp ⚡️ *

Oui, direnv c’est bien, et je trouve direnv avec lorri encore plus chouette (lorri permet de garder les shells en cache, sans garbage collection).

En ce moment pour python j’utilise juste poetry et plus poetry2nix : poetry2nix est sans doute très bien pour faire le packaging à la fin. Mais quand je l’ai testé pour le développement je me retrouvais tout le temps à devoir changer ou ajouter des override du build system. Et quand j’ai besoin de librairie je les rajoute en exportant LD_LIBRARY_PATH. Avec poetry2nix c’est beaucoup plus propre, c’est sûr.

Pour mes projets perso je rajoute un flake.nix (il y a des templates de flake pour rust et python) ou un shell.nix, ça permet de lier l’environnement de développement au projet et ça c’est vraiment chouette, et ça évite d’installer des dépendances système qui ne servent que pour un projet (c++), et d’oublier de les désinstaller.

Au travail, pour éviter de "polluer" les repos, j’ai un flake avec poetry dans un répertoire externe, python bloqué à 3.9, et j’utilise direnv pour l’activer dans tous mes projets. Le problème c’est que l’activation n’est pas instantanée.

17:54:52
@koalp:rcp.tfkoalp ⚡️ *

Oui, direnv c’est bien, et je trouve direnv avec lorri encore plus chouette (lorri permet de garder les shells en cache, sans garbage collection).

En ce moment pour python j’utilise juste poetry et plus poetry2nix : poetry2nix est sans doute très bien pour faire le packaging à la fin. Mais quand je l’ai testé pour le développement je me retrouvais tout le temps à devoir changer ou ajouter des override du build system. Et quand j’ai besoin de librairie je les rajoute en exportant LD_LIBRARY_PATH. Avec poetry2nix c’est beaucoup plus propre, c’est sûr.

Pour mes projets perso je rajoute un flake.nix (il y a des templates de flake pour rust et python) ou un shell.nix, ça permet de lier l’environnement de développement au projet et ça c’est vraiment chouette, et ça évite d’installer des dépendances système qui ne servent que pour un projet (c++), et d’oublier de les désinstaller.

Au travail, pour éviter de "polluer" les repos, j’ai un flake avec poetry dans un répertoire externe, python bloqué à 3.9, et j’utilise direnv pour l’activer dans tous mes projets. Le problème c’est que l’activation n’est pas instantanée.
Mais après deux ans, je tâtonne encore un peu pour trouver la meilleure manière de faire.

17:56:19
20 Oct 2023
@ninjatrappeur:alternativebit.frNinjaTrappeur changed their display name from NinjaTrappeur to PicNoir (was Ninjatrappeur).10:34:01
@symphorien:xlumurb.eusymphorienje suis d'accord que lorri c'est bien20:45:39
@symphorien:xlumurb.eusymphorienmême si le projet est assez mort20:45:50
21 Oct 2023
@duponin:alternativebit.fr@duponin:alternativebit.fr left the room.16:41:07
22 Oct 2023
@julienmalka:matrix.orgJulienHello hello15:11:27
@julienmalka:matrix.orgJulienProchain meetup à l'ENS lundi 30 octobre à 19h15:12:01
@julienmalka:matrix.orgJulienhttps://discourse.nixos.org/t/nix-parisian-meetup-october-30/3443815:12:02
@bew:matrix.orgbew
In reply to @julienmalka:matrix.org
Prochain meetup à l'ENS lundi 30 octobre à 19h
Sur Mobilizon l'event est à 20h et non 19h. Typo ?
15:33:55
@julienmalka:matrix.orgJulienAh, merci15:35:55
@julienmalka:matrix.orgJulienNan juste j'ai créé l'event depuis une autre timezone15:36:07
@julienmalka:matrix.orgJulienFixed, thanks15:37:35

Show newer messages


Back to Room ListRoom Version: 6