Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/configuration.md
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ You can also have environment specific config files like `.mise.production.toml`
See [Tools](/dev-tools/). In addition to specifying versions, each tool entry can include options such as:

- `os`: Restrict installation to certain operating systems
- `depends`: Tools that must be installed before this tool
- `depends`: Install order relative to other tools in this config only; vfox plugin hook dependencies belong in plugin `metadata.lua` (see [Tool Dependencies](/dev-tools/#tool-dependencies))
- `install_env`: Environment vars used during install
- `postinstall`: Command to run after installation completes for that specific tool

Expand Down
2 changes: 1 addition & 1 deletion docs/dev-tools/backends/vfox.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ The code for this is inside the mise repository at [`./src/backend/vfox.rs`](htt

## Dependencies

No dependencies are required for vfox. Vfox lua code is read via a lua interpreter built into mise.
No extra system packages are required to _run_ the vfox backend. Vfox Lua code is executed by the interpreter built into mise.

## Usage

Expand Down
18 changes: 17 additions & 1 deletion docs/dev-tools/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -238,7 +238,23 @@ The `depends` field accepts either a single string or an array of strings:
"pipx:ruff" = { version = "latest", depends = ["python", "pipx"] }
```

This is in addition to the automatic dependencies that backends declare (e.g., `pipx` automatically depends on `python` and `uv`). User-specified `depends` lets you add extra ordering constraints for your specific setup.
User-specified `depends` adds ordering constraints for tools already in the current install set. Use it when one configured tool install must finish before another configured tool install starts, especially when installs would otherwise run in parallel.

### vfox plugin hook dependencies

`depends` in `[tools]` only adds install graph ordering. It does not by itself declare hook-time dependencies or add those tools to the `PATH` used while vfox install hooks run.

For vfox plugins, declare install-hook tool requirements on the `PLUGIN` table in `metadata.lua`:

```lua
PLUGIN = {
name = "example",
version = "1.0.0",
depends = { "go" },
}
```

Use tool names as they would appear in `mise.toml`. When matching tools are configured, mise uses those metadata entries to order current install jobs and to build the hook environment. See [Tool plugin development](/tool-plugin-development#_2-metadata-lua).

## Caching and Performance

Expand Down
9 changes: 8 additions & 1 deletion docs/tool-plugin-development.md
Original file line number Diff line number Diff line change
Expand Up @@ -322,10 +322,17 @@ PLUGIN = {
legacyFilenames = {
'.nvmrc',
'.node-version'
}
},

-- Tools whose bin paths should be available during install hooks
depends = { "node" },
Comment thread
greptile-apps[bot] marked this conversation as resolved.
}
```

Add `depends` to the `PLUGIN` table when install hooks need other mise-managed tools on `PATH`. Use tool names as they would appear in `mise.toml`, for example `depends = { "go", "make" }`. Omit it if hooks do not shell out to other tools.

This is separate from `depends` in `[tools]`, which only makes one configured tool wait for another configured tool in the install graph. vfox `metadata.lua` `depends` is plugin metadata; when matching tools are configured, mise uses it to order current install jobs and to build the hook environment.

### 3. Helper Libraries

Create shared functions in the `lib/` directory:
Expand Down
Loading