From 8097201ffd78b831c3d1d6db1db84caebe3507b4 Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 13 Sep 2024 13:08:57 +0100 Subject: [PATCH 1/3] Promote lint toolchain to nightly build toolchain --- .github/workflows/rust.yml | 4 +- default.nix | 7 +--- flake.nix | 41 +++++++++---------- .../template/rust-toolchain.toml.template | 2 +- rust-toolchain.toml | 2 +- .../{lint => nightly}/rust-toolchain.toml | 0 .../{build => stable}/rust-toolchain.toml | 0 7 files changed, 26 insertions(+), 30 deletions(-) rename toolchains/{lint => nightly}/rust-toolchain.toml (100%) rename toolchains/{build => stable}/rust-toolchain.toml (100%) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 088d0312bde..ea2b421623a 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -159,7 +159,7 @@ jobs: | xargs -0 scripts/target/release/check_copyright_header - name: Put lint toolchain file in place run: | - ln -sf toolchains/lint/rust-toolchain.toml + ln -sf toolchains/nightly/rust-toolchain.toml - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Install cargo-machete run: | @@ -225,7 +225,7 @@ jobs: - name: Restore `rust-toolchain.toml` file if: '!cancelled()' run: | - ln -sf toolchains/build/rust-toolchain.toml + ln -sf toolchains/stable/rust-toolchain.toml - name: Check linera-service GraphQL schema run: | diff <(cargo run --locked --bin linera-schema-export) linera-service-graphql-client/gql/service_schema.graphql diff --git a/default.nix b/default.nix index d251c7b3ada..a344d795507 100644 --- a/default.nix +++ b/default.nix @@ -1,8 +1,5 @@ -{ crane, pkgs }: -let - rust-toolchain = (pkgs.rust-bin.fromRustupToolchainFile - ./toolchains/build/rust-toolchain.toml); -in ((crane.mkLib pkgs).overrideToolchain rust-toolchain).buildPackage { +{ crane, pkgs, rust-toolchain }: +((crane.mkLib pkgs).overrideToolchain rust-toolchain).buildPackage { pname = "linera"; src = ./.; cargoExtraArgs = "-p linera-service"; diff --git a/flake.nix b/flake.nix index 6844414b923..7922765b2f6 100644 --- a/flake.nix +++ b/flake.nix @@ -19,27 +19,22 @@ ]; perSystem = { config, self', inputs', pkgs, lib, system, ... }: let - cargoToml = builtins.fromTOML (builtins.readFile ./Cargo.toml); - nonRustDeps = with pkgs; [ - ]; - linera = pkgs.callPackage ./. { inherit (inputs) crane; }; - in { - _module.args.pkgs = import inputs.nixpkgs { - inherit system; - overlays = [ (import inputs.rust-overlay) ]; + linera = rust-toolchain: pkgs.callPackage ./. { + inherit (inputs) crane; + inherit rust-toolchain; }; - - packages.default = linera; - - # Rust dev environment - devShells.default = pkgs.mkShell { + rust-stable = (pkgs.rust-bin.fromRustupToolchainFile + ./toolchains/stable/rust-toolchain.toml); + rust-nightly = (pkgs.rust-bin.fromRustupToolchainFile + ./toolchains/nightly/rust-toolchain.toml); + devShell = rust-toolchain: pkgs.mkShell { inputsFrom = [ config.treefmt.build.devShell - linera + (linera rust-toolchain) ]; shellHook = '' # For rust-analyzer 'hover' tooltips to work. - export RUST_SRC_PATH=${linera.rust-toolchain.availableComponents.rust-src} + export RUST_SRC_PATH=${rust-toolchain.availableComponents.rust-src} export LIBCLANG_PATH=${pkgs.libclang.lib}/lib export PATH=$PWD/target/debug:~/.cargo/bin:$PATH export ROCKSDB_LIB_DIR=${pkgs.rocksdb}/lib @@ -48,14 +43,18 @@ rust-analyzer ]; }; - - devShells.lint = pkgs.mkShell { - nativeBuildInputs = [ - (pkgs.rust-bin.fromRustupToolchainFile - ./toolchains/lint/rust-toolchain.toml) - ]; + in { + _module.args.pkgs = import inputs.nixpkgs { + inherit system; + overlays = [ (import inputs.rust-overlay) ]; }; + packages.default = linera; + + # Rust dev environment + devShells.default = devShell rust-stable; + devShells.nightly = devShell rust-nightly; + # Add your auto-formatters here. # cf. https://numtide.github.io/treefmt/ treefmt.config = { diff --git a/linera-service/template/rust-toolchain.toml.template b/linera-service/template/rust-toolchain.toml.template index e01fe10aba9..3456b0009e5 120000 --- a/linera-service/template/rust-toolchain.toml.template +++ b/linera-service/template/rust-toolchain.toml.template @@ -1 +1 @@ -../../rust-toolchain.toml \ No newline at end of file +../../toolchains/stable/rust-toolchain.toml \ No newline at end of file diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 00f75390645..6542a54c0c6 120000 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1 +1 @@ -toolchains/build/rust-toolchain.toml \ No newline at end of file +toolchains/stable/rust-toolchain.toml \ No newline at end of file diff --git a/toolchains/lint/rust-toolchain.toml b/toolchains/nightly/rust-toolchain.toml similarity index 100% rename from toolchains/lint/rust-toolchain.toml rename to toolchains/nightly/rust-toolchain.toml diff --git a/toolchains/build/rust-toolchain.toml b/toolchains/stable/rust-toolchain.toml similarity index 100% rename from toolchains/build/rust-toolchain.toml rename to toolchains/stable/rust-toolchain.toml From 86678ae1c44f49d7afd34e05ae8de33d7f43fc91 Mon Sep 17 00:00:00 2001 From: James Kay Date: Fri, 13 Sep 2024 16:28:38 +0100 Subject: [PATCH 2/3] Add `rust-src` component to nightly toolchain --- toolchains/nightly/rust-toolchain.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/toolchains/nightly/rust-toolchain.toml b/toolchains/nightly/rust-toolchain.toml index 102d9a8c9f4..25e97cb1106 100644 --- a/toolchains/nightly/rust-toolchain.toml +++ b/toolchains/nightly/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] channel = "nightly-2024-07-11" -components = [ "clippy", "rustfmt" ] +components = [ "clippy", "rustfmt", "rust-src" ] targets = [ "wasm32-unknown-unknown" ] profile = "minimal" From c84b75c83095b0cfd213ed8efa742f06ac1e06b2 Mon Sep 17 00:00:00 2001 From: James Kay Date: Thu, 19 Sep 2024 13:08:37 +0100 Subject: [PATCH 3/3] `.github/workflows/rust.yml`: run Web tests with nightly toolchain --- .github/workflows/rust.yml | 3 +++ linera-service/template/rust-toolchain.toml.template | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index ea2b421623a..d247e3f9094 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -114,6 +114,9 @@ jobs: with: repo-token: ${{ secrets.GITHUB_TOKEN }} - uses: actions/checkout@v3 + - name: Switch to nightly Rust toolchain + run: | + ln -sf toolchains/nightly/rust-toolchain.toml - uses: actions-rust-lang/setup-rust-toolchain@v1 - name: Compile `linera-client` for the browser run: | diff --git a/linera-service/template/rust-toolchain.toml.template b/linera-service/template/rust-toolchain.toml.template index 3456b0009e5..e01fe10aba9 120000 --- a/linera-service/template/rust-toolchain.toml.template +++ b/linera-service/template/rust-toolchain.toml.template @@ -1 +1 @@ -../../toolchains/stable/rust-toolchain.toml \ No newline at end of file +../../rust-toolchain.toml \ No newline at end of file