Missing files during checks when filtering with filesets

One sanity check if you are running into NotFound errors for flake checks, is to double check that the derivations built in checks have the appropriate sources. Consider the following:

The checks attribute, which may have a my-workspace-nextest attribute that runs cargo-nextest, for example, by default only needs the commonArgs and cargoArtifacts in order to run tests. However, in cases where tests rely on reading files, the src attribute can also be declared so that the files will be included when the tests are run. This could also be true for checks like my-workspace-clippy, if markdown files are included in rust doc comments.

checks.my-workspace-nextest = let workspace.root = ./.; # Keep markdown files for doc generation, or compilation if using the # `include` rust macro. docSources = from: lib.fileset.fileFilter (file: file.hasExt "md") from; # Keep json files for testing. testDataSources = from: lib.fileset.fileFilter (file: file.hasExt "json") from; in craneLib.cargoNextest (buildArgs // { inherit cargoArtifacts; src = lib.fileset.toSource { inherit (workspace) root; fileset = lib.fileset.unions [ ./Cargo.toml ./Cargo.lock ./src (craneLib.fileset.commonCargoSources workspace.root) (docSources workspace.root) (testDataSources workspace.root) ]; }; partitions = 1; partitionType = "count"; cargoNextestExtraArgs = "--no-tests=warn"; });