# Patched upstream crates Each directory here is a crate exactly as crates.io publishes it, at the version `Cargo.lock` resolves, with a local patch on top. The root `Cargo.toml` routes the dependency here through `[patch.crates-io]`; the directory is excluded from the workspace, so `cargo test --workspace`, clippy and fmt leave it alone. The first commit that adds a directory is the pristine copy (from `~/.cargo/registry/src/*/-`, minus `.cargo-ok` and the crate's own `Cargo.lock`). Every later commit touching it is ours, so `git log -p -- third_party/` is the patch and nothing else. ## Carrying a patch forward When Slint or wgpu is bumped, the version here stops matching and cargo warns that the patch is unused — the build then silently goes back to the unpatched crate. So a bump is: 1. Copy the new version in beside the old one, as its own commit. 2. Re-apply the diff from `git log -p` on the old directory. 3. Point `[patch.crates-io]` at the new directory and delete the old one. 4. Re-check on the device (below) — both patches are behaviour that only a rotated Android display exercises. Drop a patch entirely once upstream has the fix; each section says what upstream change would make it unnecessary. ## wgpu-hal 29.0.4 — Vulkan pre-rotation on Android *(patch lands in the next commit)* ## i-slint-renderer-skia 1.17.1 — rotate the canvas to match *(patch lands in a later commit)*