[chore] Supply chain and build hardening#393
Merged
Merged
Conversation
e7a3f14 to
0420558
Compare
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.
Closes #348
Makes builds reproducible, adds supply-chain policy, and brings all dependencies to their latest versions.
Pinning and policy
rust-toolchain.toml); pin image bases by digest andiroh-doctorby version; add--lockedto CI and Docker builds.deny.toml(advisories, license allowlist, git-source allowlist) and CI jobs for cargo-deny, ShellCheck, and compose-config; sha-pin all GitHub Actions; least-privilege workflow token.Dependency updates
AccessbecomesService;AccessorInfo,OperatorBuilderandfinish()are gone), so the service builder and the fault-injection backend used by the blob close-failure tests are adapted to the new trait.Ulid::new()no longer exists and is replaced byUlid::gen(), spelledUlid::r#gen()becausegenis a reserved keyword in edition 2024. Display, serde and postcard representations are unchanged, so the HTTP and storage formats are unaffected.ed25519-dalek stays at 2.2.0. iroh declares an exact
=3.0.0-rc.0requirement, which is in the same major-3 compatibility range as^3.0.0, so cargo cannot select a version that satisfies both and the resolve fails outright. Tracked in #396.Deployment note
With the
.dockerignorechange, portal-embed image builds must pass--build-arg PORTAL_EMBED_DIR=<dir outside docker/>(documented at the Dockerfile ARG); the deploy runbook's portal staging step needs updating before the next cluster image rebuild.irokle stays on
branch = mainbecause craqle re-exports its types and a rev-pin would resolve it as a second version; it is pinned in effect via the lockfile plus--locked. A true rev-pin requires an upstream craqle change.