Skip to content

Commit a65c8aa

Browse files
committed
fix(env): use runtime symlink paths for fuzzy versions
1 parent 0a4bb64 commit a65c8aa

21 files changed

Lines changed: 162 additions & 74 deletions

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,17 +81,17 @@ echo '~/.local/bin/mise activate pwsh | Out-String | Invoke-Expression' >> ~/.co
8181
### Execute commands with specific tools
8282

8383
```sh-session
84-
$ mise exec node@24 -- node -v
85-
mise node@24.x.x ✓ installed
86-
v24.x.x
84+
$ mise exec node@26 -- node -v
85+
mise node@26.x.x ✓ installed
86+
v26.x.x
8787
```
8888

8989
### Install tools
9090

9191
```sh-session
92-
$ mise use --global node@24 go@1
92+
$ mise use --global node@26 go@1
9393
$ node -v
94-
v24.x.x
94+
v26.x.x
9595
$ go version
9696
go version go1.x.x macos/arm64
9797
```

docs/demo.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,9 @@ The following demo shows:
1313
`mise exec <tool> -- <command>` allows you to run any tools with mise
1414

1515
```shell
16-
mise exec node@24 -- node -v
17-
# mise node@24.x.x ✓ installed
18-
# v24.x.x
16+
mise exec node@26 -- node -v
17+
# mise node@26.x.x ✓ installed
18+
# v26.x.x
1919
```
2020

2121
node is only available in the mise environment, not globally
@@ -53,7 +53,7 @@ node -v
5353

5454
```shell
5555
which node
56-
# /root/.local/share/mise/installs/node/22.14.0/bin/node
56+
# /root/.local/share/mise/installs/node/lts/bin/node
5757
```
5858

5959
Note that we get back the path to the real node here, not a shim.
@@ -96,28 +96,28 @@ mise ls
9696

9797
---
9898

99-
Let's enter a project directory where we will set up node@23
99+
Let's enter a project directory where we will set up node@26
100100

101101
```shell
102102
cd myproj
103-
mise use node@23 pnpm@10
104-
# mise node@23.10.0 ✓ installed
103+
mise use node@26 pnpm@10
104+
# mise node@26.x.x ✓ installed
105105
# mise pnpm@10.7.0 ✓ installed
106106
```
107107

108108
```shell
109109
node -v
110-
# v23.10.0
110+
# v26.x.x
111111
pnpm -v
112112
# 10.7.0
113113
```
114114

115-
As expected, `node -v` is now v23.x
115+
As expected, `node -v` is now v26.x
116116

117117
```shell
118118
cat mise.toml
119119
# [tools]
120-
# node = "23"
120+
# node = "26"
121121
# pnpm = "10"
122122
```
123123

docs/dev-tools/index.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -284,28 +284,28 @@ For some users, `mise use` might be the only command you need to learn. It will
284284

285285
```shell
286286
> cd my-project
287-
> mise use node@24
287+
> mise use node@26
288288
# download node, verify signature...
289-
mise node@24.x.x ✓ installed
290-
mise ~/my-project/mise.toml tools: node@24.x.x # mise.toml created/updated
289+
mise node@26.x.x ✓ installed
290+
mise ~/my-project/mise.toml tools: node@26.x.x # mise.toml created/updated
291291

292292
> which node
293-
~/.local/share/installs/node/24.x.x/bin/node
293+
~/.local/share/mise/installs/node/26/bin/node
294294
```
295295

296-
`mise use node@24` will install the latest version of node-24 and create/update the
296+
`mise use node@26` will install the latest version of node-26 and create/update the
297297
`mise.toml`
298298
config file in the local directory. The resulting file looks like this:
299299

300300
```toml [mise.toml]
301301
[tools]
302-
node = "24"
302+
node = "26"
303303
```
304304

305305
Anytime you're in that directory, that version of `node` will be used.
306306

307-
`mise use -g node@24` will do the same but update the [global config](/configuration.html#global-config-config-mise-config-toml) (`~/.config/mise/config.toml`) so
308-
unless there is a config file in the local directory hierarchy, node-24 will be the default version
307+
`mise use -g node@26` will do the same but update the [global config](/configuration.html#global-config-config-mise-config-toml) (`~/.config/mise/config.toml`) so
308+
unless there is a config file in the local directory hierarchy, node-26 will be the default version
309309
for
310310
the user.
311311

docs/dev-tools/mise-lock.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ When you want to update tool versions:
188188

189189
```sh
190190
# Update tool version in mise.toml
191-
mise use node@24
191+
mise use node@26
192192

193193
# This will update both the installation and mise.lock
194194
```

docs/dev-tools/shims.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,11 @@ echo $PATH
2828
If using [`mise activate`](/cli/activate.html), `mise` will automatically add the required tools to `PATH`.
2929

3030
```sh
31-
PATH="$HOME/.local/share/mise/installs/python/3.13.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
31+
PATH="$HOME/.local/share/mise/installs/python/3.15.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin"
3232
```
3333

3434
In this example, the python `bin` directory was added at the beginning of the `PATH`, making it available in the current shell session.
35+
When a fuzzy version like `python = "3.15"` or `node = "26"` is active, this path may use the requested-version symlink, such as `~/.local/share/mise/installs/python/3.15/bin`, instead of the fully resolved patch version.
3536

3637
While the `PATH` design of `mise` works great in most cases, there are some situations where `shims` are preferable. This is the case when you are not using an interactive shell (for example, when using `mise` in an IDE or a script).
3738

docs/environments/index.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ mise exec -- echo $MY_VAR
5353
You can of course combine them with [tools](/dev-tools/):
5454

5555
```sh
56-
mise use node@24
56+
mise use node@26
5757
mise set MY_VAR=123
5858
cat mise.toml
5959
# [tools]
@@ -81,7 +81,7 @@ If you are using [`shims`](/dev-tools/shims.html), the environment variables wil
8181

8282
```shell
8383
mise set NODE_ENV=production
84-
mise use node@24
84+
mise use node@26
8585
# using the absolute path for the example
8686
~/.local/share/mise/shims/node --eval 'console.log(process.env.NODE_ENV)'
8787
```

docs/getting-started.md

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -95,23 +95,23 @@ If `mise` isn't on `PATH` yet, use `~/.local/bin/mise` instead.
9595
```sh
9696
mise exec python@3 -- python
9797
# this will download and install Python if it is not already installed
98-
# Python 3.13.2
98+
# Python 3.15.0
9999
# >>> ...
100100
```
101101

102-
or run node 24:
102+
or run node 26:
103103

104104
```sh
105-
mise exec node@24 -- node -v
106-
# v24.x.x
105+
mise exec node@26 -- node -v
106+
# v26.x.x
107107
```
108108

109109
To install a tool permanently, use [`mise u|use`](/cli/use.html):
110110

111111
```shell
112-
mise use --global node@24 # install node 24 and set it as the global default
112+
mise use --global node@26 # install node 26 and set it as the global default
113113
mise exec -- node my-script.js
114-
# run my-script.js with node 24...
114+
# run my-script.js with node 26...
115115
```
116116

117117
[`mise r|run`](/cli/run.html) lets you run [tasks](/tasks/) or scripts with the full mise context (tools + env vars) loaded.
@@ -211,16 +211,16 @@ Restart your shell session after modifying your rc file. Run [`mise dr|doctor`](
211211
With mise activated, tools are available directly on `PATH`:
212212

213213
```sh
214-
mise use --global node@24
214+
mise use --global node@26
215215
node -v
216-
# v24.x.x
216+
# v26.x.x
217217
```
218218

219-
When you ran `mise use --global node@24`, mise updated your global config:
219+
When you ran `mise use --global node@26`, mise updated your global config:
220220

221221
```toml [~/.config/mise/config.toml]
222222
[tools]
223-
node = "24"
223+
node = "26"
224224
```
225225

226226
### Shell Feature Compatibility {#shell-feature-compatibility}

docs/lang/node.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ The code for this is inside the mise repository at [`./src/plugins/core/node.rs`
1111

1212
## Usage
1313

14-
The following installs the latest version of node-20.x and makes it the global
14+
The following installs the latest version of node-26.x and makes it the global
1515
default:
1616

1717
```sh
18-
mise use -g node@20
18+
mise use -g node@26
1919
```
2020

2121
See the [Node.JS Cookbook](/mise-cookbook/nodejs.html) for common tasks and examples.
@@ -28,7 +28,7 @@ you can pin it alongside Node in your `mise.toml`:
2828

2929
```toml [mise.toml]
3030
[tools]
31-
node = "24"
31+
node = "26"
3232
npm = "11"
3333
```
3434

@@ -42,7 +42,7 @@ This resolves aliases like `lts` and `latest` to exact version numbers in `mise.
4242

4343
```toml [mise.toml]
4444
[tools]
45-
node = "24.14.1"
45+
node = "26.1.0"
4646
npm = "11.12.1"
4747
```
4848

docs/lang/python.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,21 @@ at [`./src/plugins/core/python.rs`](https://github.com/jdx/mise/blob/main/src/pl
1111

1212
## Usage
1313

14-
The following installs the latest version of python-3.11.x and makes it the global
14+
The following installs the latest version of python-3.15.x and makes it the global
1515
default:
1616

1717
```sh
18-
mise use -g python@3.11
18+
mise use -g python@3.15
1919
```
2020

2121
You can also use multiple versions of python at the same time:
2222

2323
```sh
24-
$ mise use -g python@3.10 python@3.11
24+
$ mise use -g python@3.14 python@3.15
2525
$ python -V
26-
3.10.0
27-
$ python3.11 -V
28-
3.11.0
26+
3.14.0
27+
$ python3.15 -V
28+
3.15.0
2929
```
3030

3131
You can also install a specific python flavour. To get the latest version from a flavour just use the
@@ -64,14 +64,14 @@ Use `_.python.venv` in the `[env]` section of `mise.toml`:
6464

6565
```toml
6666
[tools]
67-
python = "3.11" # [optional] will be used for the venv
67+
python = "3.15" # [optional] will be used for the venv
6868

6969
[env]
7070
_.python.venv = ".venv" # relative to this file's directory
7171
_.python.venv = "/root/.venv" # can be absolute
7272
_.python.venv = "{{env.HOME}}/.cache/venv/myproj" # can use templates
7373
_.python.venv = { path = ".venv", create = true } # create the venv if it doesn't exist
74-
_.python.venv = { path = ".venv", create = true, python = "3.10" } # use a specific python version
74+
_.python.venv = { path = ".venv", create = true, python = "3.15" } # use a specific python version
7575
_.python.venv = {
7676
path = ".venv", create = true,
7777
python_create_args = ["--without-pip"], # pass args to python -m venv
@@ -125,7 +125,7 @@ install path instead:
125125

126126
```toml
127127
[tools]
128-
python = "3.12"
128+
python = "3.15"
129129

130130
[env]
131131
UV_PYTHON = { value = "{{ tools.python.path }}", tools = true }

docs/mise-cookbook/docker.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,15 +54,15 @@ ENV MISE_INSTALL_PATH="/usr/local/bin/mise"
5454
RUN curl https://mise.run | sh
5555

5656
# Pre-install tools to the system-wide shared directory
57-
RUN mise install --system node@22 python@3.13
57+
RUN mise install --system node@26 python@3.15
5858
```
5959

6060
Users in the container will see these tools automatically:
6161

6262
```shell
6363
$ mise ls
64-
node 22.0.0 (system)
65-
python 3.13.0 (system)
64+
node 26.0.0 (system)
65+
python 3.15.0 (system)
6666
```
6767

6868
Users can install additional versions in their own directory — those take priority over
@@ -83,7 +83,7 @@ this path is outside `~` and survives home directory mounts:
8383
```Dockerfile [Dockerfile]
8484
FROM debian:13-slim
8585
# ... install mise ...
86-
RUN mise install --system node@22 python@3.13
86+
RUN mise install --system node@26 python@3.15
8787
```
8888

8989
When the container starts with `~` mounted, users still see the system tools automatically.

0 commit comments

Comments
 (0)