!ZUiNnfpRqQMDrPLChM:nixos.org

Nix ♥ la francophonie

210 Members
Salon francographe de NixOS69 Servers

Load older messages


SenderMessageTime
19 Oct 2023
@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
@victor_mignot:matrix.org@victor_mignot:matrix.org

Bonjour ici !
Je suis entrain de tenter de faire une config NixOS sous forme de flake commune à toutes mes machines.
Mon objectif ici est de passer par un ensemble de modules custom, et de définir les configs de machines quasi-exclusivement avec les options que ces modules déclarent.
Comme j'ai pas envie de faire de modules spécifiques pour home-manager, et que j'aimerais que l'ensemble des informations pour une machine soit défini dans un seul et unique fichier, cela complique un peu la tâche (même fichier/module importé plusieurs fois pour définir la configuration). J'ai toutefois une jolie erreur quand j'essaie un petit nix flake check qui semble globalement dire qu'il n'arrive pas à récupérer l'option de mes modules custom lors de son ajout dans le paramètre modules de la fonctionnixosSystem.
J'avoue que je me gratte la tête depuis quelques heures (ça m'étonnerait pas que ça soit lié à une erreur débile de ma part).
Comme je n'ai pas d'autres utilisateurs de Nix dans mon entourage, si quelqu'un a quelques minutes à m'accorder pour me filer un coup de main, ça m'aiderait vraiment beaucoup !

Voici le lien du repo: https://git.sr.ht/~dala/nixos-flake-config

Trigger warning: j'ai assez peu d'expérience avec Nix et essaye juste de faire les choses selon la doc et ce que je comprends du code de nixpkgs. Il y a certainement des choses qui vont vous piquer les yeux (je prend vos retours si y'a moyen de faire les choses plus proprement).
Merci d'avance !

15:52:22
@Minijackson:matrix.orgMinijacksonhey, j'ai regardé un peu, et je pense avoir trouvé 2 soucis19:41:36
@Minijackson:matrix.orgMinijackson

le principal, c'est que le concept des modules comme ceci sont des concepts de NixOS et pas du langage Nix:

{
  imports = [ ... ];

  options = ...;
  config = ...;
}
19:42:22
@Minijackson:matrix.orgMinijackson du coup, si tu importe un fichier comme ceci avec un import comme fait dans ton flake.nix, ça va juste retourner un objet avec imports, options, et config, sans plus 19:43:05
@Minijackson:matrix.orgMinijackson si tu veux utiliser un système d'option, il faut soit passer par une configuration NixOS (le plus simple), en évaluant tout par lib.nixosSystem) 19:43:50
@Minijackson:matrix.orgMinijackson soit utiliser à la main lib.evalModules, mais il va falloir redéfinir des choses (comme par exemple les options assertions que tu utilises dans machines.nix) 19:44:59
@Minijackson:matrix.orgMinijackson

un autre soucis que j'ai vu (mais qui pose pas encore problème), c'est ce bout de code:

  imports = if config.machineType == "workstation"
    then [ ./workstation.nix ] else [ ./server.nix ];
19:45:40
@Minijackson:matrix.orgMinijackson ce code va causer une récursion infinie, puisque workstation.nix ou server.nix peuvent eux-même changer la valeur de machineType 19:46:19
@Minijackson:matrix.orgMinijackson (interdit d'utiliser les valeurs de config pour les imports) 19:46:47
@victor_mignot:matrix.org@victor_mignot:matrix.orgThanks pour la réponse sur mon problème actuel. Pour le deuxième, j'ai donc pas le choix que de passer par un element externe à la config ?20:08:58
@Minijackson:matrix.orgMinijacksonsoit ça, soit d'utiliser le système de module à la place20:18:00
@Minijackson:matrix.orgMinijackson grace aux mkIf 20:18:28

Show newer messages


Back to Room ListRoom Version: 6