From 3134b38e0a3b50db8ccbdcdae2eccf2b51d71dff Mon Sep 17 00:00:00 2001 From: Millian Poquet <millian.poquet@irit.fr> Date: Fri, 10 May 2024 01:08:29 +0200 Subject: [PATCH] artifact guide: nix binary cache + v traceability --- artifact-overview.typ | 58 +++++++++++++++++++++++++++++++++++++++---- 1 file changed, 53 insertions(+), 5 deletions(-) diff --git a/artifact-overview.typ b/artifact-overview.typ index ee7332f..a807b5f 100644 --- a/artifact-overview.typ +++ b/artifact-overview.typ @@ -69,6 +69,7 @@ - Artifact data on Zenodo. #todo([zenodo link]) - Artifact code on Software Heritage. #todo([software heritage link]) - Artifact code on a GitLab instance. #todo([git link]) + - Artifact Nix binary cache. #url("https://lightweight-pred-sched-europar24.cachix.org") #line(length:100%, stroke: .5mm) ] @@ -176,13 +177,60 @@ Please note that the way to enable flakes depend on whether you are on NixOS or - Launching `nix build 'github:nixos/nixpkgs?ref=23.11#hello'` should create a `result` symbolic link in your current directory. Then, launching `./result/bin/hello` should print `Hello, world!`. - Launching `nix shell 'github:nixos/nixpkgs?ref=23.11#hello' --command hello` should print `Hello, world!`. -== Configure Nix to use our binary cache -This step is completely optional but recommended for this artifact reviewers, as it enables to download precompiled versions of our software environments instead of building them on your own machine. - -#todo[cachix] +== Using our Nix binary cache +*This step is completely optional*. +Using our binary cache is however recommended +as it enables to download precompiled versions of our software environments instead of building them on your own machine. +Our cache has the following properties. +- URL is #url("https://lightweight-pred-sched-europar24.cachix.org") +- Public key is #text(size: 9pt, raw("lightweight-pred-sched-europar24.cachix.org-1:dHsm8geVskEOsZIjzXtVCmPvh0L2zwTlLm8V4QoJdgI=")) + +Once again, we recommend to use #link("https://nixos.wiki/wiki/Binary_Cache#Using_a_binary_cache")[up-to-date documentation on using a Nix binary cache] +but show how to use our cache as of 2024-05-07. + +If *you are using NixOS*, you must edit your Nix#underline[OS] configuration file to add our cache URL in the `nix.settings.substituters` array, +and our cache public key in the `nix.settings.trusted-public-keys` array. + +If you are *not using NixOS*, +you must edit your #underline[Nix] configuration file (`~/.config/nix/nix.conf` on Linux) to add our cache URL in the `substituters` array, +and our cache public key in the `trusted-public-keys` array. Please find below a *2-line* example configuration file that only enables the NixOS binary cache and ours. + +#{ + set text(size: 9pt) + show raw.where(block: true): it => [ + #let nlines = it.lines.len() + #table(columns: (auto, auto), align: (right, left), inset: 0.0em, gutter: 0.5em, stroke: none, + ..it.lines.enumerate().map(((i, line)) => (math.mono(text(gray)[#(i + 1)]), line)).flatten() + ) + ] + rect(stroke: (thickness: .05mm), fill: luma(97%), outset:0mm)[ + ``` + substituters = https://cache.nixos.org https://lightweight-pred-sched-europar24.cachix.org + trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= lightweight-pred-sched-europar24.cachix.org-1:dHsm8geVskEOsZIjzXtVCmPvh0L2zwTlLm8V4QoJdgI= + ``` + ] +} == Version traceability -#todo[dump all envs versions] +All the software versions we use are *fully and purely defined* in the `flake.nix` and `flake.lock` files, +and in the `flake.nix` and `flake.lock` of the flake inputs (recursively). + +For the sake of traceability, here are the versions that we think are the most important. +- This artifact Git repository commit #todo[git repo commit] +- Nix 2.18.0 +- Nixpkgs commit `057f9aecfb71c4437d2b27d3323df7f93c010b7e` +- NUR-kapack commit `4d8ca88fd8a0a2287ee5c023877f14d53d4854c1` +- SimGrid release 3.34 (commit `036c801d55e3ab07b470c79640109080fed049a1`) +- intervalset commit `13d8f2d7000d4dc4e3202422658b0b5d83f83679` +- batprotocol commit `25bc5bbf039c18a8024c4ab326047ba56800376a` +- easy-powercap release europar24 (commit `659660c35650e9f46ec47e8c0743d75649e68d7b`) +- Batsim commit `ee797ccebbb95410479663ee0547e752112fc83e` +- Python 3.11.6 + - Pandas 2.1.1 + - fastparquet release 2024.2.0 (commit `eec9e614603f9be3cb495409ccb263caff53fe9d`) +- R 4.3.2 + - tidyverse 2.0.0 +- Typst commit `21c78abd6eecd0f6b3208405c7513be3bbd8991c` (after 0.11.0) = Step-by-Step Instructions All the scripts strongly related to the experiments of Article @lightpredenergy are available on #todo[git repo]. -- GitLab