!fXpAvneDgyJuYMZSwO:nixos.org

Nix Data Science

309 Members
62 Servers

You have reached the beginning of time (for this room).


SenderMessageTime
10 May 2025
@niklauzg:matrix.orgNiklauz joined the room.14:52:16
17 May 2025
@brodriguesco:matrix.orgBruno Rodrigues dear all, anyone has experience with julia.withPackages? I’m not sure I understand if shell that use julia.withPackages would be reproducible? 08:08:52
@brodriguesco:matrix.orgBruno Rodriguesso for example08:10:02
@brodriguesco:matrix.orgBruno Rodrigues
let
  pkgs = import (fetchTarball "https://github.com/rstats-on-nix/nixpkgs/archive/2025-03-10.tar.gz") {};
 
  rpkgs = builtins.attrValues {
    inherit (pkgs.rPackages) 
      dplyr
      janitor
      reticulate;
  };
  
  tex = (pkgs.texlive.combine {
    inherit (pkgs.texlive) 
      scheme-small
      amsmath;
  });
  
  jlconf = pkgs.julia_110.withPackages [ 
      "RDatasets"
      "TidierData"
  ];
  
  system_packages = builtins.attrValues {
    inherit (pkgs) 
      R
      glibcLocales
      nix;
  };
  
  shell = pkgs.mkShell {
    LOCALE_ARCHIVE = if pkgs.system == "x86_64-linux" then "${pkgs.glibcLocales}/lib/locale/locale-archive" else "";
    LANG = "en_US.UTF-8";
    LC_ALL = "en_US.UTF-8";
    LC_TIME = "en_US.UTF-8";
    LC_MONETARY = "en_US.UTF-8";
    LC_PAPER = "en_US.UTF-8";
    LC_MEASUREMENT = "en_US.UTF-8";
    
    buildInputs = [ rpkgs tex jlconf system_packages ];
    
  }; 
in
  {
    inherit pkgs shell;
  }

08:10:12
@brodriguesco:matrix.orgBruno Rodriguesnixpkgs are pinned, so R and Python packages are pinned08:10:55
@brodriguesco:matrix.orgBruno Rodriguesbut with julia.withPackages, the julia packages come from outside nixpkgs08:11:26
@brodriguesco:matrix.orgBruno Rodriguesso building this expression in, say, 6 months, could result in another shell, if in the meantime the julia packages get updated, no?08:12:01
@ss:someonex.netSomeone Sjulia.withPackages pins a revision of whatsthename registry, which it fetches and ingests back into the nix interpreter using IFD16:34:32
@ss:someonex.netSomeone SSo it's hermetic-ish in the usual sense16:36:09
@ss:someonex.netSomeone S @brodriguesco:matrix.org: 16:36:53
@brodriguesco:matrix.orgBruno Rodriguesyes, now I see that it imports ./registry.nix which pins the julia packages defined on another repo17:53:42
@brodriguesco:matrix.orgBruno Rodriguespretty cool, but if I understand this correctly, the packages were updated for the last time in july 2024: https://github.com/NixOS/nixpkgs/commit/eac352421d185289c24005e21a7d9ad360a55e4f17:54:29
18 May 2025
@s-rein:basketweavers.nets-rein joined the room.01:39:31
@ss:someonex.netSomeone S Yeah... if you're planning to pick up on julia, you might also want to look into simplifying the withPackages implementation, because right now it generates .nix code for IFD instead passing JSON through the interface: https://github.com/NixOS/nixpkgs/blob/eac352421d185289c24005e21a7d9ad360a55e4f/pkgs/development/julia-modules/python/sources_nix.py#L58-L66 19:57:56

Show newer messages


Back to Room ListRoom Version: 6