Skip to content
Merged
Changes from 1 commit
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
Prev Previous commit
test(setup-matrix): seed fnm/mise roots too — complete the TOOLCHAIN_…
…ROOTS mirror

Bugbot caught the gap: the run-case.sh seed loop claimed to mirror
cache_env.rs TOOLCHAIN_ROOTS but omitted FNM_DIR, MISE_DATA_DIR and
MISE_CONFIG_DIR. Since the block copies ~/.tool-versions (a mise file)
and redirects XDG_DATA_HOME/XDG_CONFIG_HOME into the empty case home,
a mise user under --host would have had shims that resolve no
toolchains. Same only-if-unset + dir-exists semantics as the rest.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
  • Loading branch information
mikolalysenko and claude committed Aug 5, 2026
commit e01295c4f322b21d536ef1ce3a7c333988901754
20 changes: 11 additions & 9 deletions tests/setup_matrix/run-case.sh
Original file line number Diff line number Diff line change
Expand Up @@ -677,16 +677,18 @@ export XDG_CACHE_HOME="$WORKDIR/.cache"
# even though CARGO_HOME is set. An already-exported RUSTUP_HOME (e.g. the
# cargo Docker image) is preserved.
export RUSTUP_HOME="${RUSTUP_HOME:-$HOME/.rustup}"
# Version-manager roots get the same treatment: rbenv/pyenv/nvm/volta/asdf/
# sdkman shims resolve their root from $HOME by default, so a redirected
# HOME with no root pinned makes ruby/python/node fail to launch at all
# under --host. Seed each root from the real home first — only when the
# variable is not already exported and the default directory actually
# exists, so this is a no-op on machines (and containers) without that
# manager.
# Version-manager roots get the same treatment: rbenv/pyenv/nvm/fnm/volta/
# asdf/sdkman/mise shims resolve their root from $HOME (or the XDG dirs,
# which are also redirected below) by default, so a redirected HOME with no
# root pinned makes ruby/python/node fail to launch at all under --host.
# Seed each root from the real home first — only when the variable is not
# already exported and the default directory actually exists, so this is a
# no-op on machines (and containers) without that manager. Same list as
# cache_env.rs TOOLCHAIN_ROOTS.
for _vm in RBENV_ROOT:.rbenv PYENV_ROOT:.pyenv NVM_DIR:.nvm \
VOLTA_HOME:.volta ASDF_DIR:.asdf ASDF_DATA_DIR:.asdf \
SDKMAN_DIR:.sdkman; do
FNM_DIR:.fnm VOLTA_HOME:.volta ASDF_DIR:.asdf ASDF_DATA_DIR:.asdf \
SDKMAN_DIR:.sdkman MISE_DATA_DIR:.local/share/mise \
MISE_CONFIG_DIR:.config/mise; do
_vm_var="${_vm%%:*}"
_vm_dir="$HOME/${_vm#*:}"
if [ -z "${!_vm_var:-}" ] && [ -d "$_vm_dir" ]; then
Expand Down
Loading