Mise (mise.jdx.dev) as unified DevEx entrypoint: one command to rule all workflows and tools
#749 ouverte le 20 mars 2026
Métriques du dépôt
- Stars
- (48 085 stars)
- Métriques de merge PR
- (Merge moyen 11j 1h) (45 PRs mergées en 30 j)
Description
Why
Contributing to RTK today requires knowing which raw cargo commands to run, in which order, with which flags. Nothing tells you at a glance what the full quality gate looks like, how to benchmark startup time, or how to build a release package. This knowledge lives in CLAUDE.md, the README, scattered bash scripts — but never in one authoritative, executable place.
The result:
- New contributors spend time figuring out "what do I run to check my changes are clean?"
- The pre-commit gate (
cargo fmt --all && cargo clippy --all-targets && cargo test) is copy-pasted in docs but not surfaced as a runnable command - Benchmarking (
hyperfine ...) and packaging (cargo deb,cargo generate-rpm) are undiscoverable unless you read deep into the README
This friction adds up. Every time a contributor asks "how do I run the linter?" or "what's the release command?", the answer requires reading docs instead of typing mise tasks.
How
This adds a .mise/config.toml that defines 23 tasks covering the full contributor workflow — build, test, lint, install, benchmark, package, and analytics — with dependencies, aliases, and human-readable descriptions.
mise tasks
build Build debug binary
build:release Build optimized binary (alias: br)
check Fast type-check without linking (alias: c)
ci Full quality gate: fmt:check + lint + test (alias: qa)
dev Local gate: fmt then lint + test (alias: d)
fmt Format all source files
fmt:check Check formatting without modifying files
lint Run clippy with pedantic + nursery lints
test Run unit tests (alias: t)
test:smoke Smoke tests against installed binary
test:verbose Run tests with stdout
test:watch Re-run tests on file changes
bench Full performance benchmark suite
bench:startup Quick startup time check vs raw command
install Install into cargo bin
install:local Install binary directly into PATH
gain Token savings analytics
gain:history Command history with savings per command
package:deb Build Debian package
package:rpm Build RPM package
clean Remove build artifacts
check:install Verify rtk is correctly installed and routed
docs:validate Validate documentation accuracy
Key design choices:
- No new tooling required for existing workflows —
mise run testjust callscargo test. Raw cargo commands still work unchanged. - Task dependencies —
mise run cirunsfmt:check→lint→testin the right order automatically. - Source/output tracking — mise skips tasks when inputs haven't changed.
- Aliases —
mise run qa,mise run d,mise run tfor frequent commands. - Rust version pinning —
[tools]section pinsrust = "stable"withrustfmtandclippycomponents, somise installbootstraps a contributor's environment in one command.
Additionally, a src/filters/mise.toml TOML filter strips mise installation noise (Downloading, Extracting, Installing lines) so rtk mise run ... stays token-efficient in LLM-assisted workflows.
A working implementation is available on branch devex/alignment-claude-hook.