M9: release fonts: web build embeds craft-fonts, pin back to the Latin manifest (#885)

The browser has no system fonts, and since releases moved to the shared
workflow the web build was made without craft-fonts: no font list and no
text drawn. The Georgian change also re-pinned craft-fonts to its main,
which has no fonts/latin-manifest.txt, so the next release would fail
under CRAFT_FONTS_REQUIRED. Pin the Latin commit again until one commit
has both (craft-fonts#42); desktop Georgian uses an installed font.
This commit is contained in:
bflatastic
2026-10-20 04:26:04 +07:00
parent 4c1546eed2
commit ddde77db0a
4 changed files with 20 additions and 8 deletions
+9 -5
View File
@@ -95,13 +95,17 @@ examples from `packaging/server/` (systemd unit, Caddyfile, nginx; the Dockerfil
the sources). Linux only for now; elsewhere operators build it with
`cargo build --release -p figcraft-server`.
**Fonts.** Every build job checks out [craft-fonts](https://github.com/storytold/craft-fonts) at
`CRAFT_FONTS_REF` (top of `release.yml`) and builds with `CRAFT_FONTS_DIR` and
`CRAFT_FONTS_REQUIRED=1`, so releases embed its fonts and fail rather than ship without them.
**Fonts.** Every build job, the web one included (`web-craft-fonts`), checks out
[craft-fonts](https://github.com/storytold/craft-fonts) at `craft-fonts-ref` (in `release.yml`) and
builds with `CRAFT_FONTS_DIR` and `CRAFT_FONTS_REQUIRED=1`, so releases embed its fonts and fail
rather than ship without them. The browser has no system fonts, so a web build without craft-fonts
can't draw text.
`crates/text/build.rs` reads both `fonts/manifest.txt` and `fonts/latin-manifest.txt`, so the pin
must be a commit that has the Latin manifest (today `4391305`, on craft-fonts'
`pr/latin-presentation-fonts` branch; re-pin to `main` once that lands). The web build embeds
only Inter. Packages carry each embedded font's licence as `OFL-<family>.txt`
`pr/latin-presentation-fonts` branch; re-pin to `main` once that lands). That commit has no
Noto Sans Georgian (craft-fonts' main has it but no Latin manifest), so desktop Georgian uses an
installed font; re-pin when one commit has both (craft-fonts#42). The web build embeds only Inter,
Noto Sans Georgian and the Archivo SemiBold wordmark, when the pin has them. Packages carry each embedded font's licence as `OFL-<family>.txt`
(`copy_font_licences` in `packaging/env.sh`; `Contents/Resources/Licenses` in the macOS app).
### macOS