From 33ada23fa90450313a1e58be99bfbdad346fc6a5 Mon Sep 17 00:00:00 2001 From: Albert Hui Date: Thu, 20 Aug 2026 16:58:48 +0000 Subject: [PATCH] fix(msrv): lower the declared floor to 1.75, which is the measured one `rust-version = "1.81"` was a claim, not a measurement. shellitem compiles cleanly on 1.75 -- library and all targets -- so the declaration was the only thing requiring 1.81. Cargo refuses on the DECLARATION, before compiling a line, so the error this produced downstream package `shellitem v0.2.0` cannot be built because it requires rustc 1.81 or newer, while the currently active rustc version is 1.75.0 was never evidence about shellitem's code. It only proved someone had written 1.81. Measured properly, with the lockfile removed first because a v4 lock fakes an MSRV result on an older toolchain: rust-version = "1.75" -> cargo +1.75 check --all-features OK cargo +1.75 check --all-features --all-targets OK rust-version = "1.81" -> cargo +1.75 refuses at the manifest That second line is the control: it proves the declaration was the blocker rather than the toolchain. This is a propagated constraint, so it was worth fixing at the root. Four fleet repos depend on shellitem -- memory-forensic, lnk-forensic, peripheral-forensic and winreg-forensic -- and every one of them inherited a floor that does not exist. winreg-forensic found it: two of its published crates declare 1.75, and their MSRV jobs failed on shellitem's declaration alone, not on anything in their own code. 1.75 is the fleet's low library floor, matching forensicnomicon and the other published readers. --- Cargo.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.toml b/Cargo.toml index 806f001..5aa4dab 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -2,7 +2,7 @@ name = "shellitem" version = "0.2.2" edition = "2021" -rust-version = "1.81" +rust-version = "1.75" license = "Apache-2.0" authors = ["Albert Hui "] description = "Windows Shell Item / ITEMIDLIST (PIDL) parser — decode shell-item blobs from .lnk LinkTargetIDList and registry ShellBags into typed items and a reconstructed path. A reusable forensic primitive, no findings."