diff --git a/.gitignore b/.gitignore index 7b56d05a..004f10cd 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,3 @@ result-bin # Dir Env .direnv -g diff --git a/.vscode/extensions.json b/.vscode/extensions.json index b3c5617b..5e0b1c7c 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -15,6 +15,5 @@ // Nix "mkhl.direnv", "jnoortheen.nix-ide", - "kamadorueda.alejandra", ] } diff --git a/.vscode/settings.json b/.vscode/settings.json index 8e0a537b..52f8a65f 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -52,14 +52,18 @@ "editor.defaultFormatter": "rust-lang.rust-analyzer" }, - // kamadorueda.alejandra - "alejandra.program": "alejandra", + // jnoortheen.nix-ide + "nix.enableLanguageServer": true, + "nix.serverPath": "nixd", + "nix.serverSettings": { + "nixd": { + "formatting": { + "command": ["nixfmt", "--width=120"] + } + } + }, "[nix]": { - "editor.defaultFormatter": "kamadorueda.alejandra" + "editor.defaultFormatter": "jnoortheen.nix-ide" }, - - // jnoortheen.nix-ide - "nix.enableLanguageServer": true, - "nix.serverPath": "nil" } diff --git a/README.md b/README.md index 5d01a243..f43c6404 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ [![crates.io](https://img.shields.io/crates/v/wayfind)](https://crates.io/crates/wayfind) [![documentation](https://docs.rs/wayfind/badge.svg)](https://docs.rs/wayfind) -[![rust: 1.66+](https://img.shields.io/badge/rust-1.66-orange.svg)](https://img.shields.io/badge/rust-1.66-orange.svg) +[![rust: 1.66+](https://img.shields.io/badge/rust-1.66+-orange.svg)](https://img.shields.io/badge/rust-1.66-orange.svg) ![unsafe: forbidden](https://img.shields.io/badge/unsafe-forbidden-brightgreen.svg) ![license: MIT/Apache-2.0](https://img.shields.io/badge/license-MIT%2FApache--2.0-blue.svg) diff --git a/flake.nix b/flake.nix index 3265e1a9..e9b3d712 100644 --- a/flake.nix +++ b/flake.nix @@ -20,152 +20,153 @@ }; # nix flake show --all-systems - outputs = { - self, - nixpkgs, - flake-utils, - rust-overlay, - }: - flake-utils.lib.eachDefaultSystem (system: let - pkgs = import nixpkgs { - inherit system; - - overlays = [ - (import rust-overlay) - - (self: super: { - cargo-codspeed = pkgs.callPackage ./nix/pkgs/cargo-codspeed {}; - cargo-insta = pkgs.callPackage ./nix/pkgs/cargo-insta {}; - }) - ]; - }; - in { - devShells = { - # nix develop - default = pkgs.mkShell { - name = "wayfind-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - # Rust - (pkgs.rust-bin.stable."1.80.1".minimal.override { - extensions = [ - "clippy" - "rust-analyzer" - "rust-docs" - "rust-src" - "rustfmt" - ]; - }) - sccache - cargo-insta - cargo-watch - - # Benchmarking - cargo-codspeed - gnuplot - - # Release - cargo-semver-checks - - # Nix - alejandra - statix - nil - ]; - }; - - # nix develop .#benchmarks - benchmarks = pkgs.mkShell { - name = "wayfind-benchmarks-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.stable."1.80.1".minimal) - sccache - cargo-codspeed - ]; - }; - - # nix develop .#ci - ci = pkgs.mkShell { - name = "wayfind-ci-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.stable."1.80.1".minimal.override { - extensions = [ - "clippy" - "rustfmt" - ]; - }) - sccache - ]; - }; - - # nix develop .#coverage - coverage = pkgs.mkShell { - name = "wayfind-coverage-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.nightly."2024-07-25".minimal.override { - extensions = [ - "llvm-tools" - ]; + outputs = + { + nixpkgs, + flake-utils, + rust-overlay, + ... + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = import nixpkgs { + inherit system; + + overlays = [ + (import rust-overlay) + + (self: super: { + cargo-codspeed = pkgs.callPackage ./nix/pkgs/cargo-codspeed { }; + cargo-insta = pkgs.callPackage ./nix/pkgs/cargo-insta { }; }) - sccache - cargo-llvm-cov - ]; - }; - - # nix develop .#docs - docs = pkgs.mkShell { - name = "wayfind-docs-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.stable."1.80.1".minimal) - sccache - ]; - }; - - # nix develop .#fuzz - fuzz = pkgs.mkShell { - name = "wayfind-fuzz-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.nightly."2024-07-25".minimal) - sccache - cargo-fuzz ]; }; - - # nix develop .#msrv - msrv = pkgs.mkShell { - name = "wayfind-msrv-shell"; - - RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; - CARGO_INCREMENTAL = "0"; - - buildInputs = with pkgs; [ - (pkgs.rust-bin.stable."1.66.0".minimal) - sccache - ]; + in + { + devShells = { + # nix develop + default = pkgs.mkShell { + name = "wayfind-shell"; + + NIX_PATH = "nixpkgs=${nixpkgs.outPath}"; + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + # Rust + (rust-bin.stable."1.80.1".minimal.override { + extensions = [ + "clippy" + "rust-analyzer" + "rust-docs" + "rust-src" + "rustfmt" + ]; + }) + sccache + cargo-insta + cargo-watch + + # Benchmarking + cargo-codspeed + gnuplot + + # Release + cargo-semver-checks + + # Nix + nixfmt-rfc-style + nixd + ]; + }; + + # nix develop .#benchmarks + benchmarks = pkgs.mkShell { + name = "wayfind-benchmarks-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.stable."1.80.1".minimal) + sccache + cargo-codspeed + ]; + }; + + # nix develop .#ci + ci = pkgs.mkShell { + name = "wayfind-ci-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.stable."1.80.1".minimal.override { + extensions = [ + "clippy" + "rustfmt" + ]; + }) + sccache + ]; + }; + + # nix develop .#coverage + coverage = pkgs.mkShell { + name = "wayfind-coverage-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.nightly."2024-07-25".minimal.override { extensions = [ "llvm-tools" ]; }) + sccache + cargo-llvm-cov + ]; + }; + + # nix develop .#docs + docs = pkgs.mkShell { + name = "wayfind-docs-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.stable."1.80.1".minimal) + sccache + ]; + }; + + # nix develop .#fuzz + fuzz = pkgs.mkShell { + name = "wayfind-fuzz-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.nightly."2024-07-25".minimal) + sccache + cargo-fuzz + ]; + }; + + # nix develop .#msrv + msrv = pkgs.mkShell { + name = "wayfind-msrv-shell"; + + RUSTC_WRAPPER = "${pkgs.sccache}/bin/sccache"; + CARGO_INCREMENTAL = "0"; + + buildInputs = with pkgs; [ + (rust-bin.stable."1.66.0".minimal) + sccache + ]; + }; }; - }; - }); + } + ); } diff --git a/nix/pkgs/cargo-codspeed/default.nix b/nix/pkgs/cargo-codspeed/default.nix index 4263831e..6b270d07 100644 --- a/nix/pkgs/cargo-codspeed/default.nix +++ b/nix/pkgs/cargo-codspeed/default.nix @@ -20,9 +20,9 @@ rustPlatform.buildRustPackage rec { cargoHash = "sha256-ihkmD48EG1fWJ38AAt4Hy6dpATIgnEb6kApDfsTKxwA="; - nativeBuildInputs = [pkg-config]; + nativeBuildInputs = [ pkg-config ]; buildInputs = - [openssl] + [ openssl ] ++ lib.optionals stdenv.isDarwin [ darwin.apple_sdk.frameworks.SystemConfiguration darwin.apple_sdk.frameworks.CoreServices @@ -35,7 +35,10 @@ rustPlatform.buildRustPackage rec { mainProgram = "cargo-codspeed"; homepage = "https://github.com/CodSpeedHQ/codspeed-rust"; changelog = "https://github.com/CodSpeedHQ/codspeed-rust/releases/tag/v${version}"; - license = [licenses.mit licenses.asl20]; + license = [ + licenses.mit + licenses.asl20 + ]; platforms = platforms.all; }; }