Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion stacks/peerdb-server.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# syntax=docker/dockerfile:1@sha256:ecfaec9ed6d810b56388c508f4121597bfbba70d41a6dfeee4d8cad5f295fc32

FROM lukemathwalker/cargo-chef:latest-rust-1.97.1-alpine@sha256:ff60ee1358ec287344f421dc6055e66d98de47b58cba4176bc82b86a090251fd AS chef
FROM lukemathwalker/cargo-chef:latest-rust-1.98.0-alpine@sha256:917b051d1fc8e234a3aad123378b5263c95fa5d8739439ee25aa789c2db97a90 AS chef

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The Rust bump itself looks fine, but flagging that it is currently unverified: the nexus stages were still compiling when the Go stage failed the build, so buildkit cancelled them (#133 CANCELED / #135 CANCELED in the job log). Nothing here has been through a green build yet. rust-lint.yml runs cargo clippy on the runner default rustup stable rather than this image, so it does not cover this pin either.

From the 1.97.1 to 1.98.0 compatibility notes, the items that could bite a large dep tree (tokio, pgwire / aws-lc-rs, ssh2, refinery, sqlparser) are all compile-time, so they would fail loudly rather than silently:

  • ambiguous_glob_imports promoted from lint to hard error in some cases
  • where-bounds of the form Type = Type and Type == Type are no longer syntactically allowed
  • repr(transparent) is stricter about which fields count as having trivial layout
  • transmute() size checking corrected when some repr attributes are involved
  • fully elided lifetime bounds on trait object types may resolve differently, or be rejected, in niche cases

Two runtime-visible ones, both niche: derived PartialOrd is now optimized in a way that can misbehave alongside inconsistent hand-written Ord impls, and Debug formatting escapes more characters in strings and chars. Worth a glance at any Debug-formatted output that reaches the wire in the query router, though I did not find a concrete site.

No action needed beyond re-checking once the Go build is fixed and these stages actually run to completion.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Digest verified: sha256:917b051d…2db97a90 really is lukemathwalker/cargo-chef:latest-rust-1.98.0-alpine (same digest as 0.1.78-rust-1.98.0-alpine), amd64 + arm64.

Rust 1.97.1 β†’ 1.98.0 reviewed β€” no regressions expected for nexus. Release notes scan (1.98.0, released 2026-08-20):

  • New invalid_runtime_symbol_definitions (deny-by-default), suspicious_runtime_symbol_definitions and c_void_returns (warn-by-default) lints. These are the only changes in this release that could break the cargo build on line 39 or the cargo clippy -- -D warnings gate in .github/workflows/rust-lint.yml. Grepped the whole nexus/ workspace for #[no_mangle], #[export_name], extern "C" and c_void β€” zero hits, so nothing here can trip them.
  • Algebraic float methods (-ffast-math-style reordering) are opt-in new APIs, not a change to existing float semantics.
  • NumBuffer / format_into, str::substr_range, [T]::subslice_range, strip_circumfix, Send/Sync for CommandArgs, radix parsing on NonZero β€” purely additive.
  • Relaxed &mut lifetime shortening under unsize coercion, and thumbv7/thumbv8 promotion to Tier 2 β€” no impact on this workspace or its targets.

Also worth noting the toolchain here has no counterpart to keep in sync: nexus/ has no rust-toolchain.toml, and rust-lint.yml uses the runner default stable β€” so unlike the Go bump in the sibling file, this image version is the only pin.

No PII or secret exposure introduced by this change.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Rust 1.97.1 β†’ 1.98.0 β€” release-notes review, no regressions found

Digest verified: sha256:917b051d… matches lukemathwalker/cargo-chef:latest-rust-1.98.0-alpine (pushed 2026-08-21).

Rust 1.98.0 is additive β€” stabilizations (str::substr_range, [T]::subslice_range, core::fmt::NumBuffer plus format_into, the algebraic float ops, Atomic::from_mut, String::from_utf16le, strip_circumfix, NonZero::from_str_radix) plus a ManuallyDrop/Box documentation guarantee. No compatibility-breaking changes are called out in the announcement.

Nothing in nexus/ is exposed to the usual minor-bump breakage: no rust-toolchain.toml, no rust-version MSRV, no #![feature(...)], and no #![deny(warnings)] or [lints] table β€” so a new or tightened lint cannot fail the build. Crates are already on edition 2024 (parser is still 2021).

Pre-existing, not introduced here: ci.yml pins no Rust toolchain, so cargo check / cargo test run on whatever rustc the GitHub runner ships, independent of this pinned 1.98.0 builder image.


WORKDIR /root

Expand Down
Loading