Each job fetched the prebuilt SMLib into target/ before Swatinem/rust-cache restored target/,
which replaced it, so every build that links SMLib stopped with "SMLib ... is not fetched"
(the Docker image of #7403). The fetch now follows the cache restore in every job.
develop (the SMLib kernel's trunk until it merges into main) gets main's push runs: CI runs on
pushes to it, a push compares against the last passing push to its own branch, and its runs save
the Rust caches the PRs into it restore.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Every job that builds the kernel with SMLib runs scripts/fetch-smlib.sh after the toolchain:
the host's prebuilt archive, the matrix target's for cross builds, wasm32's for the web jobs.
RISC-V has no archive, so its check compiles the sources with g++-riscv64-linux-gnu.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01HoZgkCdAVrscuw2kjQTWDs
From the review: the web app embeds ATTRIBUTION.md, so the Docker image's Markdown exclusion now
keeps it; and THIRD-PARTY-LICENSES.txt also reads the vendored crates' licence files and the
fonts' OFL texts, so changes there regenerate it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWhMwdqJYQKQq8RCLSL1LT
- Pushes to main use the same code/no-code rule as pull requests (`touches_code` in Select
checks): a push changing only documentation, packaging, other workflows or the bots' scripts
runs the repository checks only. With the merge queue off, every push to main ran the full suite
and the Windows jobs, docs-only ones included.
- affected.py: test data under tests/ selects the packages that read it (robustness, hole matrix,
projection, taper: solidcraft-engine; oracle: the CLI, the kernel, xtask; action matrix: the
CLI, the engine, xtask), and a vendored crate the packages that use it (truck: the kernel and up;
egui-wgpu: the UI and the apps), instead of the whole workspace. tests/tools and unknown vendored
crates still select everything.
- Docker (the web app image) skips pushes touching only docs, test data or bot scripts; Pages skips
test data and bot scripts; Generated files runs only when the manifests, lockfile, command
registry, CLI or xtask change.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QWhMwdqJYQKQq8RCLSL1LT