git.delta.rocks / jrsonnet / refs/commits / 32dd70e3f006

difftreelog

ci remove extra args for jrsonnet binary in flake

Yaroslav Bolyukin2024-03-17parent: #673b628.patch.diff
in: master

2 files changed

modifiedflake.nixdiffbeforeafterboth
before · flake.nix
1{2  description = "Jrsonnet";3  inputs = {4    nixpkgs.url = "github:nixos/nixpkgs";5    flake-utils.url = "github:numtide/flake-utils";6    rust-overlay = {7      url = "github:oxalica/rust-overlay";8      inputs.nixpkgs.follows = "nixpkgs";9      inputs.flake-utils.follows = "flake-utils";10    };11  };12  outputs = {13    nixpkgs,14    flake-utils,15    rust-overlay,16    ...17  }:18    flake-utils.lib.eachSystem (with flake-utils.lib.system; [x86_64-linux x86_64-windows]) (19      system: let20        pkgs = import nixpkgs {21          inherit system;22          overlays = [rust-overlay.overlays.default];23          config.allowUnsupportedSystem = true;24        };25        lib = pkgs.lib;26        rust =27          (pkgs.rustChannelOf {28            date = "2024-01-10";29            channel = "nightly";30          })31          .default32          .override {33            extensions = ["rust-src" "miri" "rust-analyzer" "clippy"];34          };35      in {36        packages = rec {37          go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix {};38          sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix {};39          jsonnet = pkgs.callPackage ./nix/jsonnet.nix {};40          # I didn't managed to build it, and nixpkgs version is marked as broken41          # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };42          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {43            rustPlatform = pkgs.makeRustPlatform {44              rustc = rust;45              cargo = rust;46            };47          };48          jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {49            rustPlatform = pkgs.makeRustPlatform {50              rustc = rust;51              cargo = rust;52            };53            withNightlyFeatures = true;54          };55          jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {56            rustPlatform = pkgs.makeRustPlatform {57              rustc = rust;58              cargo = rust;59            };60          };6162          benchmarks = pkgs.callPackage ./nix/benchmarks.nix {63            inherit go-jsonnet sjsonnet jsonnet;64            jrsonnetVariants = [65              {66                drv = jrsonnet;67                name = "";68              }69            ];70          };71          benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {72            inherit go-jsonnet sjsonnet jsonnet;73            quick = true;74            jrsonnetVariants = [75              {76                drv = jrsonnet;77                name = "";78              }79            ];80          };81          benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {82            inherit go-jsonnet sjsonnet jsonnet;83            jrsonnetVariants = [84              {85                drv = jrsonnet;86                name = "current";87              }88              {89                drv = jrsonnet-nightly;90                name = "current-nightly";91              }92              {93                drv = jrsonnet-release;94                name = "release";95              }96            ];97          };98          benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {99            inherit go-jsonnet sjsonnet jsonnet;100            quick = true;101            jrsonnetVariants = [102              {103                drv = jrsonnet;104                name = "current";105              }106              {107                drv = jrsonnet-nightly;108                name = "current-nightly";109              }110              {111                drv = jrsonnet-release;112                name = "release";113              }114            ];115          };116        };117        packagesCross = lib.genAttrs ["mingwW64"] (crossSystem: let118          callPackage = pkgs.pkgsCross.${crossSystem}.callPackage;119        in {120          jrsonnet = callPackage ./nix/jrsonnet.nix {121            # rustPlatform = pkgs.makeRustPlatform {122            #   rustc = rust;123            #   cargo = rust;124            # };125          };126        });127        devShells.default = pkgs.mkShell {128          nativeBuildInputs = with pkgs; [129            alejandra130            rust131            cargo-edit132            cargo-asm133            cargo-outdated134            cargo-watch135            cargo-insta136            lld137            hyperfine138            graphviz139          ];140        };141      }142    );143}
after · flake.nix
1{2  description = "Jrsonnet";3  inputs = {4    nixpkgs.url = "github:nixos/nixpkgs";5    flake-utils.url = "github:numtide/flake-utils";6    rust-overlay = {7      url = "github:oxalica/rust-overlay";8      inputs.nixpkgs.follows = "nixpkgs";9      inputs.flake-utils.follows = "flake-utils";10    };11  };12  outputs = {13    nixpkgs,14    flake-utils,15    rust-overlay,16    ...17  }:18    flake-utils.lib.eachSystem (with flake-utils.lib.system; [x86_64-linux x86_64-windows]) (19      system: let20        pkgs = import nixpkgs {21          inherit system;22          overlays = [rust-overlay.overlays.default];23          config.allowUnsupportedSystem = true;24        };25        lib = pkgs.lib;26        rust =27          (pkgs.rustChannelOf {28            date = "2024-01-10";29            channel = "nightly";30          })31          .default32          .override {33            extensions = ["rust-src" "miri" "rust-analyzer" "clippy"];34          };35      in {36        packages = rec {37          go-jsonnet = pkgs.callPackage ./nix/go-jsonnet.nix {};38          sjsonnet = pkgs.callPackage ./nix/sjsonnet.nix {};39          jsonnet = pkgs.callPackage ./nix/jsonnet.nix {};40          # I didn't managed to build it, and nixpkgs version is marked as broken41          # haskell-jsonnet = pkgs.callPackage ./nix/haskell-jsonnet.nix { };42          jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {43            rustPlatform = pkgs.makeRustPlatform {44              rustc = rust;45              cargo = rust;46            };47          };48          jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {49            rustPlatform = pkgs.makeRustPlatform {50              rustc = rust;51              cargo = rust;52            };53            withNightlyFeatures = true;54          };55          jrsonnet-release = pkgs.callPackage ./nix/jrsonnet-release.nix {56            rustPlatform = pkgs.makeRustPlatform {57              rustc = rust;58              cargo = rust;59            };60          };6162          benchmarks = pkgs.callPackage ./nix/benchmarks.nix {63            inherit go-jsonnet sjsonnet jsonnet;64            jrsonnetVariants = [65              {66                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};67                name = "";68              }69            ];70          };71          benchmarks-quick = pkgs.callPackage ./nix/benchmarks.nix {72            inherit go-jsonnet sjsonnet jsonnet;73            quick = true;74            jrsonnetVariants = [75              {76                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};77                name = "";78              }79            ];80          };81          benchmarks-against-release = pkgs.callPackage ./nix/benchmarks.nix {82            inherit go-jsonnet sjsonnet jsonnet;83            jrsonnetVariants = [84              {85                drv = jrsonnet.overrideAttrs {forBenchmarks = true;};86                name = "current";87              }88              {89                drv = jrsonnet-nightly.overrideAttrs {forBenchmarks = true;};90                name = "current-nightly";91              }92              {93                drv = jrsonnet-release.overrideAttrs {forBenchmarks = true;};94                name = "release";95              }96            ];97          };98          benchmarks-quick-against-release = pkgs.callPackage ./nix/benchmarks.nix {99            inherit go-jsonnet sjsonnet jsonnet;100            quick = true;101            jrsonnetVariants = [102              {103                drv = jrsonnet;104                name = "current";105              }106              {107                drv = jrsonnet-nightly;108                name = "current-nightly";109              }110              {111                drv = jrsonnet-release;112                name = "release";113              }114            ];115          };116        };117        packagesCross = lib.genAttrs ["mingwW64"] (crossSystem: let118          callPackage = pkgs.pkgsCross.${crossSystem}.callPackage;119        in {120          jrsonnet = callPackage ./nix/jrsonnet.nix {121            # rustPlatform = pkgs.makeRustPlatform {122            #   rustc = rust;123            #   cargo = rust;124            # };125          };126        });127        devShells.default = pkgs.mkShell {128          nativeBuildInputs = with pkgs; [129            alejandra130            rust131            cargo-edit132            cargo-asm133            cargo-outdated134            cargo-watch135            cargo-insta136            lld137            hyperfine138            graphviz139          ];140        };141      }142    );143}
modifiednix/jrsonnet.nixdiffbeforeafterboth
--- a/nix/jrsonnet.nix
+++ b/nix/jrsonnet.nix
@@ -1,14 +1,12 @@
-{ lib
-, fetchFromGitHub
-, rustPlatform
-, runCommand
-, makeWrapper
-, withNightlyFeatures ? false
+{
+  lib,
+  rustPlatform,
+  runCommand,
+  makeWrapper,
+  withNightlyFeatures ? false,
+  forBenchmarks ? false,
 }:
-
-with lib;
-
-let
+with lib; let
   filteredSrc = builtins.path {
     name = "jrsonnet-src-filtered";
     filter = path: type: !(builtins.baseNameOf path == "flake.nix" || builtins.baseNameOf path == "nix");
@@ -17,29 +15,30 @@
 
   # for some reason, filteredSrc hash still depends on nix directory contents
   # Moving it into a CA store drops leftover references
-  src = runCommand "jrsonnet-src"
+  src =
+    runCommand "jrsonnet-src"
     {
       __contentAddressed = true;
     } "cp -r '${filteredSrc}' $out";
 in
-
-rustPlatform.buildRustPackage rec {
-  inherit src;
-  pname = "jrsonnet";
-  version = "current${optionalString withNightlyFeatures "-nightly"}";
+  rustPlatform.buildRustPackage rec {
+    inherit src;
+    pname = "jrsonnet";
+    version = "current${optionalString withNightlyFeatures "-nightly"}";
 
-  cargoTestFlags = [
-    "--features=mimalloc,legacy-this-file${optionalString withNightlyFeatures ",nightly"}"
-  ];
-  cargoBuildFlags = cargoTestFlags;
+    cargoTestFlags = [
+      "--features=mimalloc,legacy-this-file${optionalString withNightlyFeatures ",nightly"}"
+    ];
+    cargoBuildFlags = cargoTestFlags;
 
-  nativeBuildInputs = [ makeWrapper ];
+    nativeBuildInputs = [makeWrapper];
 
-  postInstall = ''
-    wrapProgram $out/bin/jrsonnet --add-flags "--max-stack=200000 --os-stack=200000"
-  '';
+    # To clean-up hyperfine output
+    postInstall = mkIf forBenchmarks ''
+      wrapProgram $out/bin/jrsonnet --add-flags "--max-stack=200000 --os-stack=200000"
+    '';
 
-  cargoLock = {
-    lockFile = ../Cargo.lock;
-  };
-}
+    cargoLock = {
+      lockFile = ../Cargo.lock;
+    };
+  }