fix(mono): bump font binary version 1.700 → 1.703#238
Conversation
The internal font version stayed at 1.700 across the v1.7.1 and v1.7.2 npm releases even though the `liga` Standard Ligatures activation was reverted at source in vercel#217. Downstream consumers that key off the binary version (caches, font-validation pipelines, the `head.fontRevision` and `name` NameID-5 fields exposed in `fc-query`/DevTools) still see 1.700 and can't distinguish a pre- and post-revert binary. This bumps GeistMono and GeistMono-Italic to versionMinor = 701 and ships a `patch` changeset so the release pipeline can roll a v1.7.3 with the rebuilt binaries. Closes the second half of vercel#231.
|
@truffle-dev is attempting to deploy a commit to the Vercel Team on Vercel. A member of the Team first needs to authorize it. |
|
I would make it 1.702 since this would align more correctly with the release number; e.g.
edit: and if you were releasing 1.7.3, I would make it But there may be conventions around font file versioning here that I'm not aware of. |
…701) Per @danarnold's review: the established convention is 1.X.Y → 1.<Y>0<Z> (GeistMono at 1.700 came from v1.7.0; Geist at 1.800 came from v1.8.0). Since this changeset will release as v1.7.3, the binary should be 1.703. This commit just changes the target value; the rest of the PR is unchanged.
|
Good call on the convention — pushed 1d72288 bumping to 1.703 (and updated the changeset note). The existing data point I missed before opening: GeistMono at 1.700 lined up with v1.7.0 and Geist at 1.800 lined up with v1.8.0, so the |
|
@guidoferreyra we discussed about this but okay for you to merge? |
|
Yes, the change makes sense. The remaining issue is that the release version would not match the font version, the repo holds fonts with potentially three different version numbers. To avoid confusion, it would be better if the repo release version corresponded to the package version. We should also document this somewhere so that the relationship between the different version numbers is clear going forward. |
…ship guidoferreyra noted on vercel#238 that the relationship between the npm package version, the font binary version, and the GitHub release tag should be clearer for future contributors. Adds a 'Version Numbers' subsection to CONTRIBUTING.md naming the three values, where they live, and the binary-to-package mapping rule (`1.X.Y` ↔ `1.X0Y` for single-digit X and Y) confirmed in the discussion on this PR.
|
Both points acknowledged. The repo-release-vs-font-vs-package version mismatch is a structural tradeoff outside the scope of this fix, but the documentation gap is shippable here: pushed 59e4fac adding a Version Numbers subsection to |
|
Loosely related. The Geist Mono font files in the release artifacts (not NPM or whatnot) have version For me it is completely unclear which Geist Mono is in release 1.8. https://github.com/vercel/geist-font/releases
|
|
@Finii Good question, and it's the answer you were afraid of: the Geist Mono in release 1.8.0 is a distinct, bugfixed build that still self-reports I read nameID 5 (the font's own Version string) out of
Three different binaries, one version string. So the 1.8.0 file is genuinely not the same bytes as 1.7.0 — it carries the math-greek and style-name fixes from 5f44fc0 — but because the embedded version was never bumped, the font cannot tell you which build you are holding. For context, the embedded version has only ever moved on major rebuilds ( This is exactly the ambiguity #238 is meant to close: it bumps GeistMono's embedded version (to |
|
Good catch, and it's the exact ambiguity this PR is trying to close. Short answer: the Geist Mono in the 1.8.0 release (published 2026-03-03) is the not-bugfixed one, reporting `1.700`. The Mono source revert (`8a44bfbf`) landed 2026-04-03, a month after 1.8.0 shipped, so 1.8.0 predates it. There's no `1.702` anywhere. `versionMinor` on Mono has been pinned at `700` since the 2025-08-25 bump (`669d9f04`) and is still `700` on `main`, so every Mono build since then reports `1.700` regardless of what changed at source:
So a 1.8.0 Mono and a v1.7.2 Mono are different binaries that self-identify identically; you can only tell them apart by build date, not by the font's own version. That's the half of #231 this PR closes: bumping Mono to `1.703` so `head.fontRevision` tracks the package version again and the next rebuild stops colliding with the old one. (The sans side already does this right, which is why it's on `1.800` in your screenshot while Mono sits at `1.700`.) |

The internal font version stayed at 1.700 across the v1.7.1 and v1.7.2 npm releases even though the
ligaStandard Ligatures activation was reverted at source in #217. Downstream consumers that key off the binary version (caches, font-validation pipelines, thehead.fontRevisionandnameNameID-5 fields exposed infc-query/DevTools) still see 1.700 and can't distinguish a pre- and post-revert binary.This bumps GeistMono and GeistMono-Italic to
versionMinor = 701and ships apatchchangeset so the release pipeline can roll a v1.7.3 with the rebuilt binaries.Closes the second half of #231 (the version-not-incremented half flagged by @danarnold). The asset-zip half was closed by #233.