fix(msrv): lower the declared floor to 1.75, which is the measured one - #13
Merged
Merged
Conversation
`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.
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
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:
cargo +1.751.75check --all-featuresOK1.75check --all-features --all-targetsOK1.81That 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.