Skip to content

fix(msrv): lower the declared floor to 1.75, which is the measured one - #13

Merged
h4x0r merged 1 commit into
mainfrom
fix/msrv-declared-floor
Aug 20, 2026
Merged

h4x0r merged 1 commit into
mainfrom
fix/msrv-declared-floor

Conversation

@h4x0r

@h4x0r h4x0r commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

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, with a control

The lockfile was removed first, because a v4 lock fakes an MSRV result on an older toolchain:

declared cargo +1.75
1.75 check --all-features OK
1.75 check --all-features --all-targets OK
1.81 refuses at the manifest

That last row is the control: it proves the declaration was the blocker, not the toolchain.

Why it was worth fixing at the root

This is a propagated constraint. Four fleet repos depend on shellitem — memory-forensic, lnk-forensic, peripheral-forensic, winreg-forensic — and every one 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. Raising their floors would have reported an inherited number as their own.

1.75 is the fleet's low library floor, matching forensicnomicon and the other published readers.

`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.
@h4x0r
h4x0r merged commit 94aad64 into main Aug 20, 2026
19 checks passed
@h4x0r h4x0r mentioned this pull request Aug 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant