{
"$schema": "../../node_modules/nx/schemas/project-schema.json",
"name": "onetaskgraph-core",
"projectType": "library",
"tags": ["lang:rust", "layer:engine"],
"//": "implicitDependencies mirror this crate's Cargo dependencies. Nx cannot read a Cargo manifest, so without them affected selection silently under-runs; scripts/check-nx-graph.sh fails, naming the pair, when the two disagree. llmlint: ignore-file[expensive_tests_stay_behind_their_own_edge] JSON has no comment to scope this to `coverage`: the line floor is one report over every crate's instrumented run, so workspace:coverage runs this crate's whether or not the change reached it. `test` still selects by the graph.",
"implicitDependencies": [
"onetaskgraph-github-projects",
"onetaskgraph-in-memory",
"onetaskgraph-linear",
"onetaskgraph-local-md",
"onetaskgraph-plugin-api"
],
"targets": {
"bootstrap": {
"executor": "nx:run-commands",
"options": {
"command": "cargo fetch --locked"
},
"//": "Uncached: it reaches the network and writes to the shared cargo registry outside the workspace, so no input in the tree describes its result."
},
"check": {
"executor": "nx:noop"
},
"format": {
"executor": "nx:run-commands",
"options": {
"command": "cargo fmt -p onetaskgraph-core"
},
"cache": false,
"//": "Uncached: it rewrites the tree in place, so replaying a cached result would be a no-op that silently leaves the tree unformatted."
},
"format-check": {
"executor": "nx:run-commands",
"options": {
"command": "cargo fmt -p onetaskgraph-core -- --check"
}
},
"lint": {
"executor": "nx:run-commands",
"options": {
"command": "cargo clippy --quiet -p onetaskgraph-core --all-targets --all-features --locked -- -D warnings"
}
},
"typecheck": {
"executor": "nx:run-commands",
"options": {
"command": "cargo check --quiet -p onetaskgraph-core --all-targets --all-features --locked"
}
},
"test": {
"executor": "nx:run-commands",
"options": {
"commands": [
"cargo test --quiet -p onetaskgraph-core --all-features --locked",
"cargo test --quiet -p onetaskgraph-core --locked --test plugin_features"
],
"parallel": false
},
"//": "Twice, because the network plugins are features no default enables: the first run is every suite with both compiled, and the second is tests/plugin_features.rs in the default build, which is the only build where a configuration naming one of them is refused with the feature that enables it. Serial so the two cargo invocations do not contend for one target directory."
},
"coverage": {
"executor": "nx:run-commands",
"dependsOn": ["workspace:coverage-clear"],
"options": {
"command": "bash scripts/rust-coverage.sh onetaskgraph-core"
},
"outputs": ["{workspaceRoot}/target/llvm-cov-target/*.profraw"],
"cache": false,
"//": "Uncached: cargo-llvm-cov names every raw profile after the workspace, not the crate, so a cache hit would restore a sibling's stale profiles beside its own. workspace:coverage enforces the floor over every crate's run."
}
}
}