

After getting past the "weight cliff" issue (see previous doc), I've had more work to do in getting past errors and failures flagged by FontBakery.
I have had quite a bit of success in correcting issues by using a build script based on a shell script inherited from @mjlagattuta (NOTE: currently only works in my Python3 environment). This script strings together useful functionality, allowing a few options based on some set variables:
I have kept a log of FontBakery runs as a GitHub issue.
FAIL: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.
FAIL: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
To fix this: Set the instances to a common weight value in the script which morphs the designspace to be rectangular and matches instance weight values. Before, the instances were slightly off. This meant that something with a weight of 85 would map to 700, but something with a weight of 86 (as was the case in the SemiCondensed regular instance) would map to 403.7037.
💔 ERROR: Checking with Microsoft Font Validator.
- com.google.fonts/check/037
- 💔 ERROR Mono runtime and/or Microsoft Font Validator are not available!
- 💔 ERROR Failed with FileNotFoundError: [Errno 2] No such file or directory: 'FontValidator.exe': 'FontValidator.exe'
This probably doesn't have a final solution, because fontvalidator seems to be undergoing some changes. However, I've gotten past this error and received QA from Font Validator by:
chmod 755 FontValidator~/Environments/gfonts/bin).Find general.py in the FontBakery code, then find lines 160–166. Change:
1. Change FontValidator.exe to FontValidator2. Change + to -no-raster-tests
Update: the latest FontBakery just has this working, so now I've simply run pip3 install --upgrade fontbakery.
And now, I'm getting a bunch of FontValidator errors reporting! I'll next need to understand which to fix, and which to accept (assuming some might be fine).
MS FontVal duplicates errors a lot, because it reports them for every glyph checked. I literally have 11,000+ lines of errors from it, but they boil down to these:
A ton of these:
🔥 FAIL MS-FonVal: Intersecting contours DETAILS: Glyph index 1
🔥 FAIL MS-FonVal: The Mac PostScript string does not match the Microsoft PostScript string DETAILS: mac postscript = EncodeSans-ThinCondensed, MS postscript = EncodeSans-Regular
ℹ️ INFO Microsoft Font Validator returned an error code. Output follows :
ℹ️ INFO MS-FonVal: The MarkSetCount of the GDEF table DETAILS: MarkGlyphSetsDef: MarkSetCount=3
ℹ️ INFO MS-FonVal: Not an OpenType table, contents not validated
ℹ️ INFO MS-FonVal: Not an OpenType table, contents not validated DETAILS: This table type is defined in the Apple TrueType spec.
A bunch of these:
Plus:
ℹ️ INFO MS-FonVal: Loca references a zero-length entry in the glyf table DETAILS: Number of glyphs that are empty = 9
ℹ️ INFO MS-FonVal: maxSizeOfInstructions via method #1 DETAILS: maxSizeOfInstructions=0, computed from the glyf table
ℹ️ INFO MS-FonVal: No string for Typographic Family name (Name ID 16)
ℹ️ INFO MS-FonVal: No string for Typographic Subfamily name (Name ID 17)
ℹ️ INFO MS-FonVal: The post name has an unexpected value DETAILS: glyph = 1120, char = U+FFFF, name = uni0337
ℹ️ INFO MS-FonVal: The post name isn't in uniXXXX or uXXXXX format and there is no Adobe Glyph List entry DETAILS: glyph = 1217, char = U+000D, name = CR
ℹ️ INFO MS-FonVal: The post name isn't in uniXXXX or uXXXXX format and there is no Adobe Glyph List entry DETAILS: glyph = 1218, char = U+0000, name = NULL
/Germandbls , plus letters with slashes. https://github.com/thundernixon/Encode-Sans/tree/master/docs/04-visual-refinementsFinal steps for Encode will be:
- Splitting variable font into 5 separate width-based families, for use on Google Fonts before a width axis is supported