ci(dependabot): hold sha2 at 0.10 until rsa 0.10 ships - #246
Conversation
sha2 0.11 is built on digest 0.11; rsa 0.9 -- the newest stable release, 0.10 being a release candidate -- is built on digest 0.10. The trait sets are not interchangeable, so under sha2 0.11 the SigningKey<Sha256> and VerifyingKey<Sha256> uses in rocm-core no longer satisfy rsa's bounds and the release-signing path fails to compile. No change on our side fixes that, and moving signing onto a release candidate is not a trade worth making. Without this, Dependabot reopens the same unmergeable PR every week. Scoped to the major so security updates and minor/patch bumps still come through: an unscoped ignore would suppress advisories too. Signed-off-by: Roman Inflianskas <Roman.Inflianskas@amd.com>
|
Reviewed at The security-update carve-out is correct. This is the load-bearing claim: that scoping the ignore to The incompatibility story matches the tree. Placement is right. The One thing I checked that could have been a gap, and isn't: I wondered whether the same breakage could arrive by a different route, since the real incompatibility is in The comment carrying the revisit condition — bump both together when rsa 0.10 ships stable, then delete the entry — is the right call for a hold like this; it's the part that usually rots. Recommendation: ready to approve. Trivial diff, correctly scoped, claims verified, CI green (18/18). Note this is currently the only review on the PR, and that it needs an approving review before it can merge — it's |
Summary
Holds
sha2at 0.10 for major bumps, so Dependabot stops reopening a PR thatcannot be merged.
Root cause. sha2 0.11 is built on
digest0.11.rsa0.9.10 — the neweststable release, 0.10 still being at
0.10.0-rc.18— is built ondigest0.10. The two generic trait sets are not interchangeable, so under sha2 0.11
the
SigningKey::<Sha256>andVerifyingKey::<Sha256>uses incrates/rocm-core/src/lib.rsstop satisfyingHashMarker/FixedOutputandthe release-signing path fails to compile. That is #226 in full: six trait
errors, none of them fixable on our side.
The alternative is moving the signing path onto an rsa release candidate, which
isn't a trade worth making for a routine bump. So the major is held and #226
gets closed, with the revisit condition written into the config: when rsa 0.10
ships stable, bump both together and delete the entry.
Scoped to the major deliberately. An unscoped
ignorewould also suppresssecurity updates for the dependency. Restricting it to a
version-update:type does not, because those types never match a security-driven update — so
advisories and minor/patch bumps keep flowing.
Risk: low, and it is the reversible kind — deleting three lines restores the
bumps.
Test plan
prek run --all-files --no-group local-toolspasses (check-yamlparses thefile).
The incompatibility is not inferred from the version numbers: it is the actual
compiler output on build(deps): bump sha2 from 0.10.9 to 0.11.0 #226, reproduced against
rsa0.9.10 inCargo.lock, andcargo search rsaconfirms 0.10 has no stable release.Whether Dependabot honors the entry is only observable after merge; if build(deps): bump sha2 from 0.10.9 to 0.11.0 #226
reappears, that is the signal it did not take.
Not a bug fix; no
tests/e2e-cucumber/expectations.tomlxfail rows to narrow.