1
0
mirror of https://github.com/emilk/egui.git synced 2026-06-26 22:53:14 -04:00

Document why the font and SVG crates can't be updated yet (#8253)

The font-shaping and SVG crate families can't be bumped right now
without splitting a transitive crate into two versions in `Cargo.lock`.
Every blocker is an upstream crate that hasn't caught up, so this PR
just records the reasons inline in `Cargo.toml` instead of forcing
duplicates.

## Blockers

| Crate | Wanted | Blocked by |
|---|---|---|
| `skrifa` 0.42 → 0.43 | | `vello_cpu` → `glifo` 0.1.1 pins `skrifa
^0.42` (no newer `glifo`) |
| `font-types` 0.11 → 0.12 | | same `glifo` chain pins `font-types` 0.11
|
| `harfrust` 0.7 → 0.10 | | needs `read-fonts` 0.40 / `font-types` 0.12;
`glifo` pins 0.39 / 0.11 |
| `resvg` 0.45 → 0.47 | | `winit` 0.30's `sctk-adwaita` stuck on
`tiny-skia ^0.11`; resvg 0.47 needs 0.12 |
| `image` 0.25.6 → 0.25.10 | | needs `png` 0.18, which only matches
resvg once resvg is on `tiny-skia` 0.12 |

On `main`, epaint and `glifo` *share* `skrifa` 0.42 / `font-types` 0.11,
so there is a single copy of each. Any epaint-side bump splits them.
resvg 0.46 avoids the tiny-skia split but its `fontconfig-parser`
duplicates `roxmltree`.

Revisit once `glifo` (for the font stack) and `sctk-adwaita` (for
tiny-skia) update.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Emil Ernerfeldt
2026-06-23 05:42:22 +02:00
committed by GitHub
parent b409bf3f72
commit 7be2e9a2ae

View File

@@ -91,13 +91,15 @@ document-features = "0.2.12"
ehttp = { version = "0.7.1", default-features = false } ehttp = { version = "0.7.1", default-features = false }
enum-map = "2.7" enum-map = "2.7"
env_logger = { version = "0.11.8", default-features = false } # 0.11.9+ pulls env_filter 1.x, duplicating the 0.1.x that android_logger needs env_logger = { version = "0.11.8", default-features = false } # 0.11.9+ pulls env_filter 1.x, duplicating the 0.1.x that android_logger needs
font-types = { version = "0.11.3", default-features = false, features = ["std"] } font-types = { version = "0.11.3", default-features = false, features = [
"std",
] } # Can't update to 0.12: vello_cpu's glifo 0.1.1 pins font-types 0.11 (via skrifa/read-fonts), so bumping splits it into two versions
glow = "0.17.0" glow = "0.17.0"
glutin = { version = "0.32.3", default-features = false } glutin = { version = "0.32.3", default-features = false }
glutin-winit = { version = "0.5.0", default-features = false } glutin-winit = { version = "0.5.0", default-features = false }
harfrust = "0.7.0" harfrust = "0.7.0" # Can't update to 0.10: it needs read-fonts 0.40/font-types 0.12, but vello_cpu's glifo 0.1.1 pins read-fonts 0.39/font-types 0.11, so bumping duplicates them
home = "0.5.12" home = "0.5.12"
image = { version = "0.25.6", default-features = false } # 0.25.7+ pulls png 0.18, duplicating the png 0.17 that resvg's tiny-skia needs image = { version = "0.25.6", default-features = false } # Can't update to 0.25.7+: it needs png 0.18, which only matches resvg once resvg moves to tiny-skia 0.12 — blocked, see resvg below
itertools = "0.14.0" # 0.15 splits us from puffin 0.20's itertools 0.14, adding a cargo-deny duplicate itertools = "0.14.0" # 0.15 splits us from puffin 0.20's itertools 0.14, adding a cargo-deny duplicate
jiff = { version = "0.2.29", default-features = false } jiff = { version = "0.2.29", default-features = false }
js-sys = "0.3.77" js-sys = "0.3.77"
@@ -123,7 +125,7 @@ puffin_http = "0.17.0"
rand = "0.10.1" rand = "0.10.1"
raw-window-handle = "0.6.2" raw-window-handle = "0.6.2"
rayon = "1.12" rayon = "1.12"
resvg = { version = "0.45.1", default-features = false } resvg = { version = "0.45.1", default-features = false } # Can't update to 0.47: it needs tiny-skia 0.12, but winit 0.30's sctk-adwaita is stuck on tiny-skia 0.11, so bumping duplicates tiny-skia. (0.46 keeps tiny-skia 0.11 but its fontconfig-parser duplicates roxmltree.)
rfd = "0.17.2" rfd = "0.17.2"
rmp-serde = "1.3" rmp-serde = "1.3"
ron = "0.12.2" ron = "0.12.2"
@@ -131,7 +133,10 @@ self_cell = "1.2"
serde = { version = "1.0", features = ["derive"] } serde = { version = "1.0", features = ["derive"] }
serde_bytes = "0.11.19" serde_bytes = "0.11.19"
similar-asserts = "2.0.0" similar-asserts = "2.0.0"
skrifa = { version = "0.42.1", default-features = false, features = ["std", "autohint_shaping"] } skrifa = { version = "0.42.1", default-features = false, features = [
"std",
"autohint_shaping",
] } # Can't update to 0.43: vello_cpu's glifo 0.1.1 pins skrifa 0.42, so bumping splits it into two versions
smallvec = "1.15" smallvec = "1.15"
smithay-clipboard = "0.7.2" # 0.7.3 pulls smithay-client-toolkit 0.20 (calloop 0.14), duplicating the 0.19/0.13 that winit 0.30 needs smithay-clipboard = "0.7.2" # 0.7.3 pulls smithay-client-toolkit 0.20 (calloop 0.14), duplicating the 0.19/0.13 that winit 0.30 needs
static_assertions = "1.1" static_assertions = "1.1"