From a808bc6d7dd6933ef0ca1413c7f22cb12e2537c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ci=C4=99=C5=BCarkiewicz?= Date: Wed, 8 Jul 2026 15:43:31 -0700 Subject: [PATCH 1/2] feat: add opt-in cargo-crap pre-commit gate ### Summary Add an opt-in cargo-crap pre-commit gate to the existing flakebox cargo-crap integration without making expensive CRAP checks run by default. The hook is generated only when `cargo-crap.pre-commit.enable = true`, and projects can customize the cargo-crap CLI arguments through Nix configuration. ### Details The new `cargo-crap.pre-commit.args` option defaults to `--workspace --fail-above`, using thresholds from the generated `.cargo-crap.toml`, while allowing projects to add coverage, baseline, or stricter threshold arguments. The hook runs `cargo-crap` directly through `flakebox-in-each-cargo-workspace` for consistency with existing cargo pre-commit workspace handling. The change also clarifies cargo-crap option descriptions, gives `just crap` the usual bash/root guard, adds human docs and flakeboxLib docs, and adds module regression coverage for default, disabled, config-disabled, and pre-commit-enabled cases. Validation and independent review passed. --- .config/flakebox/id | 2 +- checks/cargo-crap-module.nix | 69 ++++++++++++ checks/default.nix | 1 + docs/best-practices.md | 30 ++++++ docs/flakeboxLib.md | 10 ++ docs/nixos-options.md | 198 +++++++++++++++++++++++------------ justfile | 7 +- lib/modules/cargo-crap.nix | 40 ++++++- 8 files changed, 286 insertions(+), 71 deletions(-) create mode 100644 checks/cargo-crap-module.nix diff --git a/.config/flakebox/id b/.config/flakebox/id index ccc2453..907c9ec 100644 --- a/.config/flakebox/id +++ b/.config/flakebox/id @@ -1 +1 @@ -fcdbf6dfbda028e2ed526c56d98ed693ba6652d48d89785a11df463fd5d0be231b2a22937926685d82bbe5ead21be2a27bebd6ac71e019b790ba4e64c28f81ba +38388baf24a0b3198588bd0be637b77e484d6121043ea12cbb9bdc16c6c0231676caadfd6b04a6b69258390b3403350a8e6972224a768248c3acd85e6b1a76d3 diff --git a/checks/cargo-crap-module.nix b/checks/cargo-crap-module.nix new file mode 100644 index 0000000..42a5360 --- /dev/null +++ b/checks/cargo-crap-module.nix @@ -0,0 +1,69 @@ +{ pkgs, mkLib }: +let + inherit (pkgs) lib; + + mk = config: mkLib pkgs { inherit config; }; + + defaultLib = mk { }; + disabledLib = mk { + cargo-crap.enable = false; + }; + noConfigLib = mk { + cargo-crap.config.enable = false; + }; + preCommitLib = mk { + cargo-crap.pre-commit.enable = true; + cargo-crap.pre-commit.args = [ + "--workspace" + "--threshold" + "123" + "--fail-above" + ]; + }; + + assertMsg = lib.assertMsg; +in +assert assertMsg defaultLib.config.cargo-crap.enable "cargo-crap is enabled by default"; +assert assertMsg ( + !defaultLib.config.cargo-crap.pre-commit.enable +) "cargo-crap pre-commit is opt-in"; +assert assertMsg (builtins.hasAttr ".cargo-crap.toml" defaultLib.config.rootDir) + ".cargo-crap.toml is generated by default"; +assert assertMsg (builtins.hasAttr "cargo-crap" defaultLib.config.just.rules) + "just crap recipe is generated by default"; +assert assertMsg + (builtins.elem defaultLib.config.cargo-crap.package defaultLib.config.env.shellPackages) + "cargo-crap package is included in dev shells"; +assert assertMsg ( + !(builtins.hasAttr "cargo_crap" defaultLib.config.git.pre-commit.hooks) +) "cargo-crap pre-commit hook is not generated by default"; +assert assertMsg ( + !(builtins.hasAttr ".cargo-crap.toml" disabledLib.config.rootDir) +) "top-level disable removes generated .cargo-crap.toml"; +assert assertMsg ( + !(builtins.hasAttr "cargo-crap" disabledLib.config.just.rules) +) "top-level disable removes just recipe"; +assert assertMsg ( + !(builtins.elem disabledLib.config.cargo-crap.package disabledLib.config.env.shellPackages) +) "top-level disable removes shell package"; +assert assertMsg ( + !(builtins.hasAttr "cargo_crap" disabledLib.config.git.pre-commit.hooks) +) "top-level disable removes pre-commit hook"; +assert assertMsg ( + !(builtins.hasAttr ".cargo-crap.toml" noConfigLib.config.rootDir) +) "config disable removes only generated .cargo-crap.toml"; +assert assertMsg (builtins.hasAttr "cargo-crap" noConfigLib.config.just.rules) + "config disable keeps just recipe"; +assert assertMsg + (builtins.elem noConfigLib.config.cargo-crap.package noConfigLib.config.env.shellPackages) + "config disable keeps shell package"; +assert assertMsg (builtins.hasAttr "cargo_crap" preCommitLib.config.git.pre-commit.hooks) + "pre-commit enable generates hook"; +assert assertMsg + (lib.hasInfix "flakebox-in-each-cargo-workspace cargo-crap" preCommitLib.config.git.pre-commit.hooks.cargo_crap) + "pre-commit hook invokes cargo-crap directly"; +assert assertMsg + (lib.hasInfix "--threshold 123" preCommitLib.config.git.pre-commit.hooks.cargo_crap) + "pre-commit args are rendered into hook"; + +pkgs.runCommand "cargo-crap-module-tests" { } "touch $out" diff --git a/checks/default.nix b/checks/default.nix index 8becd51..bc77f43 100644 --- a/checks/default.nix +++ b/checks/default.nix @@ -21,6 +21,7 @@ onlyDrvs ( customStdenv = callPackage ./custom-stdenv { }; nextest = callPackage ./nextest { }; mergeArgsTests = callPackage ./mergeArgs-tests.nix { }; + cargoCrapModule = callPackage ./cargo-crap-module.nix { inherit mkLib; }; } ) ) diff --git a/docs/best-practices.md b/docs/best-practices.md index 60e46de..66599cf 100644 --- a/docs/best-practices.md +++ b/docs/best-practices.md @@ -82,3 +82,33 @@ Flakebox will automatically link using `mold` on Linux, also taking care of some important low level NixOS details. ### TBD: `cargo` accidental-recompilation prevention + +## Gate high CRAP scores with cargo-crap + +Flakebox provides `cargo-crap` in development shells by default, generates a +shared `.cargo-crap.toml`, and adds a `just crap` helper that runs +`cargo-crap --workspace`. + +The pre-commit cargo-crap gate is intentionally opt-in because CRAP checks can be +more expensive and project-specific than lightweight formatting or spelling +checks. Enable it when a project has chosen suitable thresholds or coverage +inputs: + +```nix +{ + cargo-crap.pre-commit = { + enable = true; + args = [ + "--workspace" + "--threshold" + "100" + "--fail-above" + ]; + }; +} +``` + +Customize the generated `.cargo-crap.toml` by setting +`cargo-crap.config.content`. Disable only that generated file with +`cargo-crap.config.enable = false`, or disable the whole cargo-crap integration +with `cargo-crap.enable = false`. diff --git a/docs/flakeboxLib.md b/docs/flakeboxLib.md index 21cc928..fafaa9d 100644 --- a/docs/flakeboxLib.md +++ b/docs/flakeboxLib.md @@ -91,3 +91,13 @@ supported toolchains. A nested set with following keys: * `..` - e.g. `nightly.dev.workspaceDeps`, `aarch64-android.release.flakebox-tutorial` are builds using `` build profile and `` See [Tutorial: Flakebox in a New Project](./building-new-project.md) for more information. + +## `flakeboxLib.cargoCrap` + +`flakeboxLib.cargoCrap` exposes flakebox's packaged `cargo-crap` derivation for +custom Nix checks and reports. + +Most projects should prefer the default `cargo-crap` module integration, which +adds the tool to dev shells, generates `.cargo-crap.toml`, and provides the +`just crap` helper. Use `flakeboxLib.cargoCrap` directly when composing custom +crane derivations, CI report jobs, or baseline/regression gates. diff --git a/docs/nixos-options.md b/docs/nixos-options.md index 478cd0a..551fd5e 100644 --- a/docs/nixos-options.md +++ b/docs/nixos-options.md @@ -26,7 +26,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo.nix) @@ -58,7 +58,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) @@ -82,7 +82,7 @@ pkgs.cargo-crap or flakebox's packaged cargo-crap ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) @@ -114,13 +114,13 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) ## config\.cargo-crap\.config\.content -Content of the generated \.cargo-crap\.toml file\. +Full content of the generated \.cargo-crap\.toml file\. Setting this option replaces the default TOML\. @@ -128,7 +128,7 @@ Content of the generated \.cargo-crap\.toml file\. strings concatenated with ā€œ\\nā€ *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) @@ -160,7 +160,71 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/cargo-crap.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) + + + +## config\.cargo-crap\.pre-commit\.enable + + + +Whether to enable cargo-crap git pre-commit gate\. + + + +*Type:* +boolean + + + +*Default:* + +```nix +false +``` + + + +*Example:* + +```nix +true +``` + +*Declared by:* + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) + + + +## config\.cargo-crap\.pre-commit\.args + + + +Arguments passed to ` cargo-crap ` by the opt-in pre-commit gate\. + +The default runs an absolute CRAP-score gate using the threshold from +` .cargo-crap.toml `\. Add arguments such as ` --lcov lcov.info `, +` --threshold N `, or ` --baseline path/to/baseline.json ` here for +project-specific gates\. + + + +*Type:* +list of string + + + +*Default:* + +```nix +[ + "--workspace" + "--fail-above" +] +``` + +*Declared by:* + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/cargo-crap.nix) @@ -192,7 +256,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/convco\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/convco.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/convco\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/convco.nix) @@ -224,7 +288,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/convco\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/convco.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/convco\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/convco.nix) @@ -250,7 +314,7 @@ attribute set ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/crane\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/crane.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/crane\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/crane.nix) @@ -282,7 +346,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/direnv\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/direnv.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/direnv\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/direnv.nix) @@ -314,7 +378,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/direnv\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/direnv.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/direnv\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/direnv.nix) @@ -340,7 +404,7 @@ list of string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/env\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/env.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/env\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/env.nix) @@ -364,7 +428,7 @@ list of package ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/env\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/env.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/env\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/env.nix) @@ -396,7 +460,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/flakbox\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/flakbox.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/flakbox\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/flakbox.nix) @@ -428,7 +492,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/flakbox\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/flakbox.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/flakbox\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/flakbox.nix) @@ -460,7 +524,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -484,7 +548,7 @@ attribute set of (null or string or absolute path) ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -516,7 +580,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -542,7 +606,7 @@ string or absolute path ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -566,7 +630,7 @@ string or absolute path ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -598,7 +662,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -622,7 +686,7 @@ attribute set of (null or string or absolute path) ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -654,7 +718,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -686,7 +750,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/git.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/git.nix) @@ -718,7 +782,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -759,7 +823,7 @@ attribute set ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -783,7 +847,7 @@ attribute set ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -807,7 +871,7 @@ list of string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -831,7 +895,7 @@ null ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -863,7 +927,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -887,7 +951,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -911,7 +975,7 @@ anything ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -935,7 +999,7 @@ attribute set of (submodule) ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -960,7 +1024,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -984,7 +1048,7 @@ null ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/github.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/github.nix) @@ -1016,7 +1080,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1048,7 +1112,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1072,7 +1136,7 @@ list of string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1099,7 +1163,7 @@ attribute set of (submodule) ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1124,7 +1188,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1159,7 +1223,7 @@ string or absolute path ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1185,7 +1249,7 @@ signed integer ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/just.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/just.nix) @@ -1217,7 +1281,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/linker\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/linker.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/linker\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/linker.nix) @@ -1249,7 +1313,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/linker\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/linker.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/linker\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/linker.nix) @@ -1281,7 +1345,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/motd\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/motd.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/motd\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/motd.nix) @@ -1305,7 +1369,7 @@ string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/motd\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/motd.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/motd\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/motd.nix) @@ -1329,7 +1393,7 @@ attribute set of (submodule) ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1354,7 +1418,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1380,7 +1444,7 @@ string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1396,7 +1460,7 @@ Path of the source file\. absolute path *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1412,7 +1476,7 @@ Name of symlink (relative to root dir)\. Defaults to the attribute name\. string *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1436,7 +1500,7 @@ null ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1452,7 +1516,7 @@ Derivation containing all rootDir files/symlinks package *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rootDir.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rootDir.nix) @@ -1484,7 +1548,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust.nix) @@ -1516,7 +1580,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust.nix) @@ -1532,7 +1596,7 @@ The content of the file string *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/rust.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/rust.nix) @@ -1564,7 +1628,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/semgrep\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/semgrep.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/semgrep\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/semgrep.nix) @@ -1596,7 +1660,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/semgrep\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/semgrep.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/semgrep\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/semgrep.nix) @@ -1628,7 +1692,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/shellcheck\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/shellcheck.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/shellcheck\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/shellcheck.nix) @@ -1660,7 +1724,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/shellcheck\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/shellcheck.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/shellcheck\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/shellcheck.nix) @@ -1686,7 +1750,7 @@ string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain.nix) @@ -1716,7 +1780,7 @@ list of string ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain.nix) @@ -1745,7 +1809,7 @@ package ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/toolchain.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/toolchain.nix) @@ -1777,7 +1841,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/treefmt\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/treefmt.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/treefmt\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/treefmt.nix) @@ -1809,7 +1873,7 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/typos\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/typos.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/typos\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/typos.nix) @@ -1841,6 +1905,6 @@ true ``` *Declared by:* - - [/nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/typos\.nix](file:///nix/store/76sclbagzyyfqqd1gj36901k3mqfar31-source/lib/modules/typos.nix) + - [/nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/typos\.nix](file:///nix/store/4nhqwfi8jka6d09icc9n2crygxymzch7-source/lib/modules/typos.nix) diff --git a/justfile b/justfile index 5dff1cf..62de0ad 100644 --- a/justfile +++ b/justfile @@ -80,7 +80,12 @@ watch *ARGS="-x run": # run cargo-crap on the workspace crap *ARGS="--workspace": - cargo crap {{ARGS}} + #!/usr/bin/env bash + set -euo pipefail + if [ ! -f Cargo.toml ]; then + cd {{invocation_directory()}} + fi + cargo-crap {{ARGS}} # run `cargo clippy` on everything diff --git a/lib/modules/cargo-crap.nix b/lib/modules/cargo-crap.nix index 556bb18..a1f12b4 100644 --- a/lib/modules/cargo-crap.nix +++ b/lib/modules/cargo-crap.nix @@ -8,6 +8,7 @@ let inherit (lib) types; cargoCrapPackage = if pkgs ? cargo-crap then pkgs.cargo-crap else pkgs.callPackage ../pkgs/cargo-crap.nix { }; + preCommitArgs = lib.escapeShellArgs config.cargo-crap.pre-commit.args; in { options.cargo-crap = { @@ -29,13 +30,35 @@ in content = lib.mkOption { type = types.lines; - description = "Content of the generated .cargo-crap.toml file."; + description = "Full content of the generated .cargo-crap.toml file. Setting this option replaces the default TOML."; }; }; just.enable = lib.mkEnableOption "cargo-crap just recipes" // { default = true; }; + + pre-commit = { + enable = lib.mkEnableOption "cargo-crap git pre-commit gate" // { + default = false; + }; + + args = lib.mkOption { + type = types.listOf types.str; + default = [ + "--workspace" + "--fail-above" + ]; + description = '' + Arguments passed to `cargo-crap` by the opt-in pre-commit gate. + + The default runs an absolute CRAP-score gate using the threshold from + `.cargo-crap.toml`. Add arguments such as `--lcov lcov.info`, + `--threshold N`, or `--baseline path/to/baseline.json` here for + project-specific gates. + ''; + }; + }; }; config = lib.mkMerge [ @@ -64,7 +87,20 @@ in content = '' # run cargo-crap on the workspace crap *ARGS="--workspace": - cargo crap {{ARGS}} + #!/usr/bin/env bash + set -euo pipefail + if [ ! -f Cargo.toml ]; then + cd {{invocation_directory()}} + fi + cargo-crap {{ARGS}} + ''; + }; + }) + + (lib.mkIf (config.cargo-crap.enable && config.cargo-crap.pre-commit.enable) { + git.pre-commit.hooks = { + cargo_crap = '' + flakebox-in-each-cargo-workspace cargo-crap ${preCommitArgs} ''; }; }) From f71d98597db53cd6d8dade137dd8a523d7304223 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ci=C4=99=C5=BCarkiewicz?= Date: Wed, 8 Jul 2026 16:02:30 -0700 Subject: [PATCH 2/2] chore: refresh nixpkgs lock for CI --- flake.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/flake.lock b/flake.lock index 584899c..005d557 100644 --- a/flake.lock +++ b/flake.lock @@ -105,11 +105,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1780203844, - "narHash": "sha256-K5sT4jTpGs15ADhviMKNBH38REpPf5Q6mM1+N6cArVE=", + "lastModified": 1783389287, + "narHash": "sha256-0xIy4dVLqq47rA+mRy0hXDfjhQd4E5PoIns/RmB7nR4=", "owner": "nixos", "repo": "nixpkgs", - "rev": "b51242d7d43689db2f3be91bd05d5b24fbb469c4", + "rev": "0ad6f47ea4fe188f4bc8f0380f93ae8523337c6c", "type": "github" }, "original": {