Repository navigation
build: commit Cargo.lock and build the image with --locked - #52
Conversation
A fresh resolution floats pallas to 1.4.0, which does not compile against src/ledger/u5c (decision 0002). Track the lockfile with pallas pinned to 1.0.0-alpha.2 and the rustls trust components at the eMudhra floor (rustls-webpki 0.103.16, webpki-roots 1.0.10 / 0.26.11), and make the Docker build use it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The bullseye-security pool is gone from deb.debian.org (bullseye LTS ended), so apt install in the build stage 404s. Same toolchain, bookworm base. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The committed resolution needs rustc 1.88+ (psm, serde_with, time, icu_*), and an MSRV-capped resolution for 1.85 still fails to compile (ar_archive_writer 0.5 uses let chains). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info
📝 Walkthrough
Merge Risk: ⚪ Minimal · up to
|
QA review recordPass: first pass, head Diff in scope:
Size class: small. Apart from the generated lockfile, only 6 lines change, and no Rust source changes. Lenses
Checks at the exact head
Findings
PR conversation
Normalization
Outcomepassed. The PR stays draft. |
|
Merge observed. Plan: Trellis will verify the human merge evidence, adopt the domain pin, and retire the plan. No further merge action is needed. |
Summary
Boros does not build from a clean checkout.
Cargo.lockis gitignored, so every build resolves dependencies fresh, pallas floats to 1.4.0, andsrc/ledger/u5c/mod.rsfails with 10 errors (boros decision 0002). That covers the image job inbuild.yml, so no boros image can be built today, including one with patched TLS trust.This PR:
removes
Cargo.lockfrom.gitignoreand commits a lockfile that pins pallas to1.0.0-alpha.2, the last resolution that compiles. Every other dependency is at its latest compatible release;keeps the rustls trust components at the eMudhra distrust floor:
rustls 0.23.46,rustls-webpki 0.103.16,webpki-roots 1.0.10and0.26.11(which re-exports 1.x). The lockfile has nowebpki0.21/0.22 and norustlsolder than 0.23;builds the Dockerfile with
cargo build --release --locked, so the image uses the committed resolution;moves the builder image from
rust:1.85.0-slim-bullseyetorust:1.98.0-slim-bookworm. The Dockerfile was already unbuildable for two reasons:deb.debian.orgstill listsbullseye-securitypackages it no longer serves, soapt installreturns 404 (the same rot oura#958 fixed);ar_archive_writer0.5.x uses let-chains.The runtime base,
debian:stable-slim, is unchanged.It does not migrate to pallas 1.4. That follow-up belongs to decision 0002.
Verification (head
5fc95d6)Cargo.lock:at floor.cargo build --locked(rust 1.98.0): passes.cargo test --locked: 32 passed, 1 failed. The failure isnetwork::...::it_should_demonstrate_processing_speed_differences, which binds fixed ports 3001/3002. An unrelated local process already holds 127.0.0.1:3001, so the handshake fails. CI runs on a clean host.docker buildx build --platform linux/amd64from agit archiveof the head passes (--lockedrelease build in 29m under emulation). The binary starts in the image.Pre-existing, unrelated to this PR
cargo clippy -- -D warnings(current stable) reports 6 errors, all in source this PR does not touch: an unused import, the unusedFanoutErrorenum, and fourresult_large_errerrors ontonic::Status.cargo fmt --checkreports diffs in unchanged source files.debian:stable-slim, Debian 13.7) does not installca-certificates. TLS trust comes from the bundledwebpki-roots. The tonictls-rootsfeature has no system store to read.🤖 Generated with Claude Code
Summary by CodeRabbit