Skip to content

Sandboxed Rust builds on the repo LLVM are not toolchain drift (3.5.0-B145) - #11

Merged
KeithRaghubar merged 1 commit into
mainfrom
fix/sandbox-rust-drift
Oct 25, 2026
Merged

KeithRaghubar merged 1 commit into
mainfrom
fix/sandbox-rust-drift

Conversation

@KeithRaghubar

Copy link
Copy Markdown
Owner

Summary

  • Bug: in the sandbox, a package that pulls Arch's rust builds with the repo LLVM that rust links, so build_sandbox.recorded_toolchain stamps it stock_llvm with a sandbox| fingerprint. Phase 4.25 compared that stamp with the host's sysforge-built toolchain. Every such package (all COSMIC -git packages, mesa) therefore drifted on every run and, under rebuild_on_drift, was rebuilt only to record the same stamp again.
  • Fix: the drift loop skips a sandbox-stamped record while the new flag_drift.builds_with_repo_compiler says the next build would do the same (current_sandboxed for its profile and needs_repo_rust). This is the B125 family exemption applied within one family. A package taken out of the sandbox, or one that no longer needs repo rust, is reported as before.
  • Known limitation (documented in §Reconverge and §makepkg wrapper): a repo LLVM update is not detected for these packages, because the sandbox's working copy is shared by every build.

Merge note

PR #10 adds B144 to the same ## Fixed section of docs/release-notes/unreleased.md. Whichever of the two merges second needs that conflict resolved with B144 before B145.

Test plan

  • make test: 7666 passed
  • New tests: test_toolchain_drift_phase_skips_a_repo_compiler_sandbox_build (5 cases) and test_builds_with_repo_compiler (4 cases)
  • lint, typecheck, check-design, check-standards, check-shipped, check-surface
  • Against live state: none of the 30 sandbox-stamped package bases is reported as drifted any more

🤖 Generated with Claude Code

…drift (3.5.0-B145)

In the sandbox a package that pulls Arch's rust builds with the repo
LLVM that rust links, and build_sandbox.recorded_toolchain records it
as stock_llvm with a sandbox| fingerprint. Phase 4.25 compared that with
the host's sysforge-built toolchain, so every such package (all the
COSMIC -git packages, mesa) drifted on every run and, under
rebuild_on_drift, was rebuilt only to record the same stamp again.

The drift loop now skips a sandbox-stamped record while
flag_drift.builds_with_repo_compiler says the next build would do the
same (current_sandboxed for its profile and needs_repo_rust), the B125
rule applied within one family. Turning the sandbox off for the
package, or it no longer needing repo rust, reports it as before.

A repo LLVM update is not detected for these packages: the sandbox's
working copy is shared by every build, so its compiler identity at
update time reflects the last build, not this package's next one.

ID note: make next-id offered B144 on this branch, which the fix in
#10 already uses, so this takes B145.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@KeithRaghubar
KeithRaghubar force-pushed the fix/sandbox-rust-drift branch from 1df9efb to aa0d8eb Compare October 25, 2026 19:24
@KeithRaghubar
KeithRaghubar merged commit cab040e into main Oct 25, 2026
2 checks passed
@KeithRaghubar
KeithRaghubar deleted the fix/sandbox-rust-drift branch October 25, 2026 20:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant