Skip to content

Commit 4a86a9b

Browse files
chore(mise): remove 13 phantom tools and a no-op [alias] block (#3)
## Context `mise.toml` in this repo named **13 tools which do not exist in the mise registry**, plus an `[alias]` block that never did anything. The result was roughly **25 warning lines on every shell entry**. Introduced across the estate by `sweep2` on 2026-07-18: one file, copied to 427 repos, 419 carrying all 13 phantom names. This repo is one of 56 that actually **committed** the broken file (most of the 419 copies exist only in uncommitted local working trees, not on any remote). ## Three faults **1. Thirteen names that do not resolve.** Removed, grouped by reason: | reason | names | |---|---| | already provided by a listed tool | `cargo` (rust), `gofmt` (go), `pip` (python) | | project deps, not system tools | `vitest`, `jest`, `pytest`, `isort` | | base system binaries | `git`, `gnu-sed`, `gnu-grep`, `gnu-tar` | | simply misnamed | `denojs` → `deno` | `go-task` is **dropped, not renamed**. The bare name `task` does not work either: `mise registry` lists it as `aqua:go-task/task`, but `task@latest` still fails to resolve. Worth recording — *appearing in `mise registry` output is not sufficient to conclude a name resolves; check with `mise ls-remote`.* `just` is listed instead, matching the estate's Justfile convention. **2. The `[alias]` block never ran.** mise's `[alias]` maps an alias to a **tool plugin**; it does not define tasks. `build = "cargo build --release || npm run build || go build"` was therefore dead, and mise separately warns `[alias]` is deprecated in favour of `[tool_alias]`. Not re-added as `[tasks]`. ## Verification Controlled comparison on one machine, one shell: ``` warnings citing the FIXED file : 0 errors citing the FIXED file : 0 warnings citing an UNFIXED copy : 14 ``` ⚠️ **A caveat worth passing on:** an earlier version of this check reported "0 warnings" purely because mise had refused to parse the file — `Config files ... are not trusted`. An untrusted `mise.toml` is silently ignored, so *absence of warnings is not evidence of correctness unless the file is trusted first*. The numbers above were taken after `mise trust`. ## Acceptance criteria - [x] Valid TOML - [x] Zero mise warnings/errors attributable to this file (post-`mise trust`) - [x] No `[alias]` section - [ ] Reviewer confirms dropping `go-task` is acceptable (nothing in-repo invokes `task`) - [ ] Reviewer adds this repo's actual language toolchain if `mise.toml` should be doing more than it currently does — this PR only removes what was broken ## Note deliberately not actioned Every tool is still pinned to `latest`, which is not reproducible and sits awkwardly beside the estate's SHA-pinning doctrine. Changing that is a judgement call per repo, so it is flagged here rather than made silently. ## Model tier **Haiku/Sonnet** — one config file, no code paths, mechanical once the registry facts are established. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
1 parent 1791bbc commit 4a86a9b

1 file changed

Lines changed: 53 additions & 26 deletions

File tree

mise.toml

Lines changed: 53 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Every tool name below was checked against `mise registry` AND resolved with
2+
# `mise ls-remote` before being written. The previous version of this file named
3+
# 13 tools that do not exist in the registry, so mise emitted ~25 lines of
4+
# warnings on every shell entry while installing none of them.
5+
16
[tools]
27
# Language runtimes
38
node = "latest"
@@ -7,20 +12,16 @@ go = "latest"
712
zig = "latest"
813
java = "latest"
914
bun = "latest"
10-
denojs = "latest"
15+
deno = "latest" # was `denojs` — not a registry name
1116

12-
# Package managers
17+
# Package managers / task runner
1318
npm = "latest"
1419
yarn = "latest"
1520
pnpm = "latest"
16-
pip = "latest"
17-
cargo = "latest"
18-
go-task = "latest"
21+
just = "latest" # the estate's task runner (Justfile)
1922

20-
# Formatting & Linting
21-
gofmt = "latest"
23+
# Formatting & linting
2224
black = "latest"
23-
isort = "latest"
2425
ruff = "latest"
2526
prettier = "latest"
2627
shfmt = "latest"
@@ -31,27 +32,53 @@ cmake = "latest"
3132
make = "latest"
3233
ninja = "latest"
3334

34-
# Shell tools
35-
git = "latest"
36-
gnu-sed = "latest"
37-
gnu-tar = "latest"
38-
gnu-grep = "latest"
39-
40-
# Testing
41-
vitest = "latest"
42-
pytest = "latest"
43-
jest = "latest"
35+
# ---------------------------------------------------------------------------
36+
# REMOVED — none of these resolve in the mise registry, so they installed
37+
# nothing and only produced warnings. Grouped by why they were wrong:
38+
#
39+
# Already provided by a tool that IS listed above:
40+
# cargo -> ships with `rust`
41+
# gofmt -> ships with `go`
42+
# pip -> ships with `python`
43+
#
44+
# Project-level dependencies, not system tools. These belong in
45+
# package.json / pyproject.toml / mix.exs, not in a toolchain manager:
46+
# vitest, jest, pytest, isort
47+
#
48+
# Base system binaries that mise should not be shadowing on Linux:
49+
# git, gnu-sed, gnu-grep, gnu-tar
50+
# (If a GNU-vs-BSD coreutils difference ever actually bites on macOS, add
51+
# `coreutils`, which does exist in the registry, rather than these names.)
52+
#
53+
# Task runner that never installed:
54+
# go-task -> not a registry name. NB the bare name `task` does not work
55+
# either: `mise registry` LISTS it as `aqua:go-task/task`, but resolving
56+
# `task@latest` still fails. Appearing in `mise registry` output is NOT
57+
# sufficient to conclude a name resolves — check with `mise ls-remote`.
58+
# `just` is listed above instead.
59+
# ---------------------------------------------------------------------------
4460

4561
[env]
46-
# Common environment variables
4762
NODE_ENV = "development"
4863
PYTHONDONTWRITEBYTECODE = "1"
4964
PYTHONUNBUFFERED = "1"
5065

51-
# Task runner alias
52-
[alias]
53-
task = "go-task"
54-
build = "cargo build --release || npm run build || go build"
55-
test = "cargo test || npm test || go test ./..."
56-
lint = "ruff check . || prettier --check . || black --check ."
57-
fmt = "ruff format . || prettier --write . || black ."
66+
# ---------------------------------------------------------------------------
67+
# REMOVED — an `[alias]` section holding what were clearly meant to be tasks:
68+
#
69+
# [alias]
70+
# task = "go-task"
71+
# build = "cargo build --release || npm run build || go build"
72+
# test = "cargo test || npm test || go test ./..."
73+
# lint = "ruff check . || prettier --check . || black --check ."
74+
# fmt = "ruff format . || prettier --write . || black ."
75+
#
76+
# mise's `[alias]` maps an alias to a TOOL PLUGIN — it does not define tasks,
77+
# so none of these ever ran. mise also warns that `[alias]` is deprecated in
78+
# favour of `[tool_alias]`.
79+
#
80+
# They are not re-added as `[tasks]`: the estate drives builds through the
81+
# Justfile, and a second task runner sharing the verbs `build`/`test`/`lint`/
82+
# `fmt` — one of which silently falls through `||` chains into a different
83+
# language's build — is worse than one. Use `just <recipe>`.
84+
# ---------------------------------------------------------------------------

0 commit comments

Comments
 (0)