difftreelog
ci build current binaries with crane
in: master
5 files changed
flake.lockdiffbeforeafterboth--- a/flake.lock
+++ b/flake.lock
@@ -1,5 +1,25 @@
{
"nodes": {
+ "crane": {
+ "inputs": {
+ "nixpkgs": [
+ "nixpkgs"
+ ]
+ },
+ "locked": {
+ "lastModified": 1711299236,
+ "narHash": "sha256-6/JsyozOMKN8LUGqWMopKTSiK8N79T8Q+hcxu2KkTXg=",
+ "owner": "ipetkov",
+ "repo": "crane",
+ "rev": "880573f80d09e18a11713f402b9e6172a085449f",
+ "type": "github"
+ },
+ "original": {
+ "owner": "ipetkov",
+ "repo": "crane",
+ "type": "github"
+ }
+ },
"flake-utils": {
"inputs": {
"systems": "systems"
@@ -35,6 +55,7 @@
},
"root": {
"inputs": {
+ "crane": "crane",
"flake-utils": "flake-utils",
"nixpkgs": "nixpkgs",
"rust-overlay": "rust-overlay"
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 = {9 nixpkgs.follows = "nixpkgs";10 flake-utils.follows = "flake-utils";11 };12 };13 crane = {14 url = "github:ipetkov/crane";15 inputs.nixpkgs.follows = "nixpkgs";16 };17 };18 outputs = {19 nixpkgs,20 flake-utils,21 rust-overlay,22 crane,23 ...24 }:25 flake-utils.lib.eachDefaultSystem (26 system: let27 pkgs = import nixpkgs {28 inherit system;29 overlays = [rust-overlay.overlays.default];30 config.allowUnsupportedSystem = true;31 };32 rust = pkgs.rust-bin.fromRustupToolchainFile ./rust-toolchain.toml;33 craneLib = (crane.mkLib pkgs).overrideToolchain rust;34 in {35 packages = rec {36 default = jrsonnet;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 { };4243 jrsonnet = pkgs.callPackage ./nix/jrsonnet.nix {44 inherit craneLib;45 };46 jrsonnet-nightly = pkgs.callPackage ./nix/jrsonnet.nix {47 inherit craneLib;48 withNightlyFeatures = true;49 };50 jrsonnet-experimental = pkgs.callPackage ./nix/jrsonnet.nix {51 inherit craneLib;52 withExperimentalFeatures = true;53 };5455 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 devShells.default = craneLib.devShell {118 nativeBuildInputs = with pkgs; [119 alejandra120 cargo-edit121 cargo-asm122 cargo-outdated123 cargo-watch124 cargo-insta125 lld126 hyperfine127 graphviz128 ];129 };130 }131 );132}nix/jrsonnet-release.nixdiffbeforeafterboth--- a/nix/jrsonnet-release.nix
+++ b/nix/jrsonnet-release.nix
@@ -1,6 +1,8 @@
-{ lib, fetchFromGitHub, rustPlatform, runCommand, makeWrapper }:
-
-
+{
+ fetchFromGitHub,
+ rustPlatform,
+ makeWrapper,
+}:
rustPlatform.buildRustPackage rec {
pname = "jrsonnet";
version = "pre9";
@@ -13,11 +15,10 @@
};
cargoHash = "sha256-y2YiktT1h263vpFaC+kRL8yaAWQThhEkS+NSQ6B6Ylk=";
-
- cargoTestFlags = [ "--package=jrsonnet --features=mimalloc,legacy-this-file" ];
- cargoBuildFlags = [ "--package=jrsonnet --features=mimalloc,legacy-this-file" ];
+ cargoTestFlags = ["--package=jrsonnet --features=mimalloc,legacy-this-file"];
+ cargoBuildFlags = ["--package=jrsonnet --features=mimalloc,legacy-this-file"];
- buildInputs = [ makeWrapper ];
+ buildInputs = [makeWrapper];
postInstall = ''
wrapProgram $out/bin/jrsonnet --add-flags "--max-stack=200000 --os-stack=200000"
nix/jrsonnet.nixdiffbeforeafterboth--- a/nix/jrsonnet.nix
+++ b/nix/jrsonnet.nix
@@ -1,33 +1,24 @@
{
lib,
- rustPlatform,
- runCommand,
+ craneLib,
makeWrapper,
withNightlyFeatures ? false,
+ withExperimentalFeatures ? false,
forBenchmarks ? false,
}:
-with lib; let
- filteredSrc = builtins.path {
- name = "jrsonnet-src-filtered";
- filter = path: type: !(builtins.baseNameOf path == "flake.nix" || builtins.baseNameOf path == "nix");
- path = ../.;
- };
-
- # for some reason, filteredSrc hash still depends on nix directory contents
- # Moving it into a CA store drops leftover references
- src =
- runCommand "jrsonnet-src"
- {
- __contentAddressed = true;
- } "cp -r '${filteredSrc}' $out";
-in
- rustPlatform.buildRustPackage rec {
- inherit src;
+with lib;
+ craneLib.buildPackage rec {
+ src = lib.cleanSourceWith {
+ src = ../.;
+ filter = path: type:
+ (lib.hasSuffix "\.jsonnet" path)
+ || (craneLib.filterCargoSources path type);
+ };
pname = "jrsonnet";
- version = "current${optionalString withNightlyFeatures "-nightly"}";
+ version = "current${optionalString withNightlyFeatures "-nightly"}${optionalString withExperimentalFeatures "-experimental"}";
cargoTestFlags = [
- "--features=mimalloc,legacy-this-file${optionalString withNightlyFeatures ",nightly"}"
+ "--features=mimalloc,legacy-this-file${optionalString withNightlyFeatures ",nightly"}${optionalString withExperimentalFeatures ",experimental"}"
];
cargoBuildFlags = cargoTestFlags;
@@ -37,8 +28,4 @@
postInstall = optionalString forBenchmarks ''
wrapProgram $out/bin/jrsonnet --add-flags "--max-stack=200000 --os-stack=200000"
'';
-
- cargoLock = {
- lockFile = ../Cargo.lock;
- };
}
rust-toolchain.tomldiffbeforeafterboth--- a/rust-toolchain.toml
+++ b/rust-toolchain.toml
@@ -1,3 +1,3 @@
[toolchain]
-channel = "nightly-2023-10-28"
-components = ["rustfmt", "clippy"]
+channel = "nightly-2024-01-10"
+components = ["rustfmt", "clippy", "rust-analyzer", "rust-src"]