Files

65 lines
3.8 KiB
Markdown
Raw Permalink Normal View History

# 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](https://static.rust-lang.org/dist/channel-rust-1.90.0.toml)
contains gnullvm target standard libraries, but no gnullvm-host rustc/cargo packages.
The [Rust1.91 release announcement](https://blog.rust-lang.org/2025/10/30/Rust-1.91.0/)
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:
```powershell
. .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.