Provider register#
This section is the permanent record of every task-runner format nur has
considered: what it is, how it was evaluated, what was decided and why.
It exists so the reasoning never depends on GitHub issues. The selection rule
is ADR 0005: a format is accepted
when it passes three gates (safe listing, a faithful run command, an honest
subset). Popularity is not a gate.
nur is for developers and agents working in a terminal, so the goal is to
cover every format that can be supported honestly.
The register began as issue #78; its content is preserved in Origin of the register.
How to read the register#
State |
Meaning |
|---|---|
Implemented |
A provider ships. Evaluation kept in implemented. |
Accepted |
Passes all three gates; implementation not yet done. See candidates. |
Pending |
Not yet accepted: a gate is unresolved or evaluation is incomplete. See candidates. |
Declined |
Fails a gate. Reason and revisit trigger in declined. |
Research |
A cross-cutting investigation with measured results, under research. |
The eight providers that predate the register (npm, make, pdm, poe, just, Taskfile, mise, xc) were backfilled in implemented. ADR 0005 still says that backfilling is open work: ADRs are immutable once accepted, so this page is where its completion is recorded.
Add a register entry, using the evaluation template, before opening an implementation issue. A provider PR updates its entry in the same change.
Every format considered#
Format |
Source file |
State |
Issue |
|---|---|---|---|
npm scripts |
|
Implemented |
|
make |
|
Implemented (ADR 0003) |
|
pdm |
|
Implemented |
|
poe |
|
Implemented |
|
just |
|
Implemented |
#91 |
Taskfile ( |
|
Implemented |
|
mise |
|
Implemented |
#32 |
xc |
|
Implemented |
#36 |
deno |
|
Implemented (0.3.0) |
#71 |
composer |
|
Implemented (0.3.0) |
#72 |
pre-commit |
|
Implemented (0.5.0) |
#73 |
tox |
|
Implemented (0.5.0) |
#74 |
cargo-make |
|
Implemented (0.3.0) |
#76 |
moon |
|
Implemented (0.4.0) |
#77 |
VS Code tasks |
|
Implemented |
#139 |
invoke |
|
Implemented |
#140 |
Apache Ant |
|
Implemented |
#141 |
nox |
|
Implemented |
#142 |
Rake |
|
Implemented (ADR 0002) |
#143 |
mask |
|
Implemented |
#144 |
Grunt |
|
Implemented (ADR 0004) |
#75 |
Gulp |
|
Implemented (ADR 0004) |
#75 |
Turborepo |
|
Implemented (ADR 0004) |
#75 |
Nx |
|
Implemented (ADR 0004) |
#75 |
pnpm / yarn / bun workspaces, Lerna |
|
Implemented as |
#75 |
npm-run-all / run-p / run-s |
none |
No provider needed: composes |
#75 |
Procfile |
|
Accepted (ADR 0006): delegates to |
#145 |
JBang catalog |
|
Accepted |
#146 |
argc |
|
Accepted |
#146 |
Zed tasks |
|
Accepted (ADR 0006); sibling of VS Code tasks |
#139 |
GitHub Actions |
|
Declined (gate 2) |
#147 |
Gradle |
|
Accepted as a labelled subset (ADR 0006); declined by ADR 0005 |
#148 |
Maven |
|
Declined (no project-specific tasks) |
#148 |
CMake |
|
Declined (gate 2) |
#149 |
cargo-xtask |
|
Declined (no declarative file) |
#150 |
Cross-cutting research#
Topic |
State |
Page |
|---|---|---|
Broader tree-sitter adoption for existing providers (#292) |
|