Mise (mise.jdx.dev) as unified DevEx entrypoint: one command to rule all workflows and tools
#749 aberto em 20 de mar. de 2026
Métricas do repositório
- Stars
- (48.085 stars)
- Métricas de merge de PR
- (Mesclagem média 11d 1h) (45 fundiu PRs em 30d)
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.