Compare commits

..

2 Commits

Author SHA1 Message Date
Skyler Lehmkuhl 91543202ed Release 1.0.10-alpha (rebuild: egui fork patch fix) 2026-07-14 14:15:10 -04:00
Skyler Lehmkuhl 73104e5803 CI: fail fast when the egui fork's patch doesn't apply
A [patch.crates-io] whose version doesn't satisfy the dependency
requirement is silently IGNORED by cargo — it emits a warning ('patch was
not used in the crate graph') and builds against the real crates.io crate
instead. The 1.0.10-alpha release build hit exactly this: the fork's
version bump to 0.33.3 had never been committed, so CI cloned 0.33.2, the
patch was dropped, and the build failed four minutes later with 'cannot
find type CursorImage' in a file that had nothing to do with the cause.
The one line that explained it was scrolled far above the errors.

Check for the warning right after cloning the fork and fail there, naming
both versions.
2026-07-14 14:14:59 -04:00
1 changed files with 21 additions and 0 deletions

View File

@ -54,6 +54,27 @@ jobs:
with:
targets: ${{ matrix.target != '' && matrix.target || '' }}
# A [patch.crates-io] whose version doesn't satisfy the dependency requirement is silently
# IGNORED by cargo: it warns "patch ... was not used in the crate graph" and builds against the
# real crates.io crate instead. That's how a stale egui fork got us a `cannot find type
# CursorImage` error four minutes into the build, in a file that had nothing to do with the
# cause. Fail here instead, with the actual reason.
- name: Verify egui fork patch applies
shell: bash
working-directory: ./lightningbeam-ui
run: |
unused=$(cargo metadata --format-version 1 2>&1 >/dev/null | grep "was not used in the crate graph" || true)
if [ -n "$unused" ]; then
echo "::error::The egui fork's [patch.crates-io] entries are being ignored — cargo is building against stock crates.io egui, not the fork."
echo "$unused"
echo ""
echo "The fork's version must SATISFY the requirement in lightningbeam-ui/Cargo.toml."
echo "Fork workspace version: $(grep -m1 '^version' ../egui-fork/Cargo.toml)"
echo "Required by us: $(grep -m1 '^eframe' Cargo.toml)"
exit 1
fi
echo "egui fork patch applies cleanly."
- name: Rust cache
uses: swatinem/rust-cache@v2
with: