arrowtype / shantell-sans

Shantell Sans, from Shantell Martin, is a marker-style font built for creative expression, typographic play, and animation.

Home Page:https://shantellsans.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Fix [non-blocking] incompatible glyphs reported by fontTools.varLib during VF build

arrowtype opened this issue · comments

These aren't blocking the build, but they need to be fixed before the font gets shipped:

INFO:fontTools.varLib:Generating gvar
WARNING:fontTools.varLib:glyph Aring has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Yukrcyr has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Iocyr has incompatible masters; skipping
WARNING:fontTools.varLib:glyph lj has incompatible masters; skipping
WARNING:fontTools.varLib:glyph nj has incompatible masters; skipping
WARNING:fontTools.varLib:glyph iocyr has incompatible masters; skipping
WARNING:fontTools.varLib:glyph iukrcyr has incompatible masters; skipping
WARNING:fontTools.varLib:glyph jecyr has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Lj has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Nj has incompatible masters; skipping
WARNING:fontTools.varLib:glyph onequarter has incompatible masters; skipping
WARNING:fontTools.varLib:glyph onehalf has incompatible masters; skipping
WARNING:fontTools.varLib:glyph threequarters has incompatible masters; skipping
WARNING:fontTools.varLib:glyph onethird has incompatible masters; skipping
WARNING:fontTools.varLib:glyph twothirds has incompatible masters; skipping
WARNING:fontTools.varLib:glyph oneeighth has incompatible masters; skipping
WARNING:fontTools.varLib:glyph threeeighths has incompatible masters; skipping
WARNING:fontTools.varLib:glyph fiveeighths has incompatible masters; skipping
WARNING:fontTools.varLib:glyph seveneighths has incompatible masters; skipping
WARNING:fontTools.varLib:glyph bulletoperator has incompatible masters; skipping
WARNING:fontTools.varLib:glyph ijacute has incompatible masters; skipping
WARNING:fontTools.varLib:glyph fi has incompatible masters; skipping
WARNING:fontTools.varLib:glyph f_f_i has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Iigrave-cy.loclBGR has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Esdescender-cy.loclBSH has incompatible masters; skipping
WARNING:fontTools.varLib:glyph esdescender-cy.loclBSH has incompatible masters; skipping
WARNING:fontTools.varLib:glyph Esdescender-cy.loclCHU has incompatible masters; skipping
WARNING:fontTools.varLib:glyph esdescender-cy.loclCHU has incompatible masters; skipping
WARNING:fontTools.varLib:glyph periodcentered.case has incompatible masters; skipping
WARNING:fontTools.varLib:glyph periodcentered.loclCAT has incompatible masters; skipping
WARNING:fontTools.varLib:glyph periodcentered.loclCAT_case has incompatible masters; skipping

The Aring seems to be perfectly compatible in the sources, but probably gets decomposed by a ufo2ft filter for having It may be that I just need to decompose these glyphs.

For example, even in the generated sources, the Aring has the same components, in the same order, and none have scaled or flipped transformations:

[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]
[('A', (1.0, 0.0, 0.0, 1.0)), ('ringcomb.A', (1.0, 0.0, 0.0, 1.0))]

Decomposing these in the build prep does indeed do the trick!

The full variable TTF ends up being a little larger (1.6MB vs 1.5MB), but the woff2 is 508KB before and after, so this is pretty low-impact on that front.