difftreelog
ci remove extra args for jrsonnet binary in flake
in: master
2 files changed
flake.nixdiffbeforeafterboth1{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}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}nix/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;
+ };
+ }