Files
ARCADIA-Studio/harness/release-msrv-readiness-20260906.md

3.8 KiB

Rust 1.90 Windows readiness audit

The locked Windows runtime/build dependency declarations do not rule out the workspace's Rust1.90 minimum. This is a declaration audit and toolchain preparation, not a successful MSRV compilation or runtime claim.

Fresh cargo metadata --locked --offline --format-version 1 --filter-platform x86_64-pc-windows-gnullvm was collected with the existing task-local stable toolchain. Starting at oa-desktop and oa-server, traversal of selected normal/build dependency edges yields 266 packages:183 declare rust_version,83 do not. None declares a minimum above1.90. Highest external declaration is ordered-float 5.5.0:1.90; Iced0.14, wgpu27.0.1 and the selected ICU2.3 packages declare1.88. Missing or inaccurate declarations and project source compatibility still require an actual compiler check. Dev-only and non-Windows target dependencies are outside this runtime declaration count.

Provenance is retained under .local/msrv-readiness/: target-filtered metadata, selected package names/versions/manifests/minima, summary, download manifest and installation logs. Cargo.lock SHA256: E7B95AFAC40A11823FA68D615FCAD97DEEB878C8FA1E83B28561BE5A81896112. No dependency, source, workspace target or global configuration was changed.

The exact requested host triple is unavailable in Rust1.90

rustup toolchain install 1.90.0-x86_64-pc-windows-gnullvm --profile minimal --no-self-update failed with “target ... not found in channel”. The official Rust1.90 distribution manifest contains gnullvm target standard libraries, but no gnullvm-host rustc/cargo packages. The Rust1.91 release announcement records promotion of Windows gnullvm to host-tools support. Raising the declared MSRV merely to use this host triple would confuse host packaging with language/ library compatibility.

The viable preparation uses 1.90.0-x86_64-pc-windows-gnu as compiler host and adds x86_64-pc-windows-gnullvm target libraries. Installation was launched using the existing task-local Rustup homes under .local/toolchain, minimal profile, --no-self-update, and explicit target. Installation completed successfully. rustup run reports rustc1.90.0 (1159e78c4, LLVM20.1.8) and cargo1.90.0 (840b83a10). Installed targets include both GNU and gnullvm. Exact version output and compiler hashes are in installed-provenance.txt and compiler-hashes.json in the ignored audit directory. The task environment still selects stable gnullvm, and Rustup's pre-existing GNU default/settings remain unchanged.

Subsequent verification, owned by the root build operator

After installation, dot-source .local/toolchain/env.ps1, invoke the compiler using an explicit +1.90.0-x86_64-pc-windows-gnu, and pass the explicit gnullvm target. Use a separate task-local target directory to avoid invalidating the current stable/native acceptance artifacts. For example, once target ownership is granted:

. .local/toolchain/env.ps1
$env:CARGO_TARGET_DIR = Join-Path (Get-Location) '.local/target-msrv190'
cargo +1.90.0-x86_64-pc-windows-gnu check --locked --workspace --all-targets --target x86_64-pc-windows-gnullvm

That check includes test code/dependencies and can reveal gaps beyond this runtime declaration audit. An actual build/link and appropriate tests are still needed before asserting MSRV support. The existing clang linker configuration applies to the gnullvm target; GNU host build scripts/proc macros use the installed GNU host toolchain. Linux/Docker Rust1.90 remains a separate platform verification gate. After this preparation, the user enabled WSL; the root operator may prefer a Linux1.90 check before allocating a second Windows compilation tree. No MSRV Cargo compilation was started by this audit.