You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
make install from a fresh clone fails when rustup's default is older than the workspace MSRV, and the error names xtask #29
From a fresh clone, on a machine whose rustup default was 1.94.0:
$ git clone https://github.com/tobi/disktree && cd disktree && make install
cargo xtask bundle
Updating crates.io index
error: rustc 1.94.0 is not supported by the following package:
xtask@0.10.1 requires rustc 1.97
make: *** [install] Error 101
Nothing is wrong with xtask. [workspace.package] rust-version = "1.97"
(Cargo.toml:8) is inherited by xtask/Cargo.toml via rust-version.workspace = true, and .cargo/config.toml aliases cargo xtask to cargo run --package xtask --, so xtask is the first
package in the build graph and the one cargo names. Cargo rejects the whole
workspace before compiling anything, so the failure arrives with no useful
platform, dependency or file context.
Why a fresh clone hits it
CI pins 1.97 (.github/workflows/{ci,release}.yml), the README says "Rust 1.97
or newer", but nothing provisions that toolchain for people building from
source. There is no rust-toolchain.toml, so a stale rustup default is a hard
failure rather than a nudge — and rustup update is not something the error
message or the README asks for at that point.
The 1.97 floor looks over-declared
No dependency in Cargo.lock sets rust-version (checked gpui-pre, gpui-kit, gpui-base, gpui-pre-platform, gpui-pre-apple, gpui-omarchy). Building the workspace with the MSRV check bypassed:
fails: error[E0658]: use of unstable library feature 'cold_path' at gpui-pre-0.3.6/src/profiler.rs:494
1.95.0
passes, entire workspace including disktree-app and xtask
1.97.1
passes; cargo xtask lint green, cargo xtask bundle produces a signed disktree.app
std::hint::cold_path is unstable in 1.94 and stable by 1.95, so the real floor
appears to be 1.95, not 1.97. That matters for anyone on a distro-packaged
cargo, which ignores rust-toolchain.toml entirely and can only be helped by
lowering the declared MSRV.
Caveat on that evidence: it is macOS/aarch64 only. The Linux path was not built
locally, so 1.95 on Linux is unverified.
Two things to decide
Provisioning — a rust-toolchain.toml pinning 1.97 (opened as a PR)
makes rustup fetch the right toolchain on the first build, whatever rustup default says. It cannot change update-to-update behaviour of the
gate either, since it pins the version CI already pins.
The floor — keep 1.97 deliberately, or lower rust-version to the
verified 1.95 so distro-cargo builders are not locked out. Your call; the
PR only does (1) so as not to declare a floor from one platform's evidence.
Activity
adi0x90 commentedon Oct 12, 2026