-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. Weβll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Pass fontbakery #10
Comments
@davelab6 does the fail on check 58 necessitate a change in the source file? The few problematic glyphs are intentionally named that way for automatic anchor generation and forming composite glyphs within Glyphs app π₯ FAIL: Glyph names are all valid? |
I think Adobe type team objected to this because the - is otherwise used as
a range indicator, but I forget if Georg actually convinced them this was
not a problem in practice. Please post on the glyphsapp forum to confirm if
these glyph names will actually cause any problems anywhere or not. If not,
file a FB issue and we'll get that check updated.
|
Posted here |
Down the rabbit hole we go =) |
In the mean time I can manually change the names since there are only 4, and push an updated version of the VF |
Yes, just make a built.py or something so that its repeatable and
documented, and file an issue to stop doing it when fontmake is updated
|
Is there a benefit to adding that in the build script and then removing it? I was just going to change it in the actual glyphs source and get a fresh VF from my current build.sh |
AFAIK the glyphs are named that way because GlyphsApp does fancy things
when they are named that way.
If you rename them, you kinda corrupt the sources from working as sources.
This is a build detail, so belongs in a build script. And spending a few
hours figuring out how to do it via scripting (with glyphsLib or whatever
scripting) is going to be time well spent to make you stronger :)
|
Sounds good |
Fontbakery report[23] Family checksπ₯ FAIL: Check font has a license.
π PASS: Checking all files are in the same directory.
π PASS: Fonts have equal unicode encodings?
π PASS: Make sure all font files have the same version value.
π PASS: Fonts have consistent PANOSE proportion?
π PASS: Fonts have consistent PANOSE family type?
π PASS: Fonts have consistent underline thickness?
π€ SKIP: Does DESCRIPTION file contain broken links?
π€ SKIP: Is this a proper HTML snippet?
π€ SKIP: DESCRIPTION.en_us.html must have more than 200 bytes.
π€ SKIP: DESCRIPTION.en_us.html must have less than 1000 bytes.
π€ SKIP: Font designer field in METADATA.pb must not be 'unknown'.
π€ SKIP: METADATA.pb: Ensure designer simple short name.
π€ SKIP: METADATA.pb: Fontfamily is listed on Google Fonts API?
π€ SKIP: METADATA.pb: check if fonts field only has unique "full_name" values.
π€ SKIP: METADATA.pb: check if fonts field only contains unique style:weight pairs.
π€ SKIP: METADATA.pb license is "APACHE2", "UFL" or "OFL"?
π€ SKIP: METADATA.pb should contain at least "menu" and "latin" subsets.
π€ SKIP: METADATA.pb subsets should be alphabetically ordered.
π€ SKIP: METADATA.pb: Copyright notice is the same in all fonts?
π€ SKIP: Check that METADATA.pb family values are all the same.
π€ SKIP: METADATA.pb: According Google Fonts standards, families should have a Regular style.
π€ SKIP: METADATA.pb: Regular should be 400.
[110] RobotoSlabBeta-VF.ttfπ ERROR: Checking with Microsoft Font Validator.
Unknown command line option: '-file'
|
π ERROR | π₯ FAIL | π€ SKIP | βΉοΈ INFO | π PASS | |
---|---|---|---|---|---|
1 | 1 | 6 | 63 | 4 | 58 |
1% | 1% | 5% | 47% | 3% | 44% |
Updated the build script and updated the beta VF, here is the latest Fontbakery report
Fontbakery report
[23] Family checks
π₯ FAIL: Check font has a license.
π PASS: Checking all files are in the same directory.
π PASS: Fonts have equal unicode encodings?
π PASS: Make sure all font files have the same version value.
π PASS: Fonts have consistent PANOSE proportion?
π PASS: Fonts have consistent PANOSE family type?
π PASS: Fonts have consistent underline thickness?
π€ SKIP: Does DESCRIPTION file contain broken links?
π€ SKIP: Is this a proper HTML snippet?
π€ SKIP: DESCRIPTION.en_us.html must have more than 200 bytes.
π€ SKIP: DESCRIPTION.en_us.html must have less than 1000 bytes.
π€ SKIP: Font designer field in METADATA.pb must not be 'unknown'.
π€ SKIP: METADATA.pb: Ensure designer simple short name.
π€ SKIP: METADATA.pb: Fontfamily is listed on Google Fonts API?
π€ SKIP: METADATA.pb: check if fonts field only has unique "full_name" values.
π€ SKIP: METADATA.pb: check if fonts field only contains unique style:weight pairs.
π€ SKIP: METADATA.pb license is "APACHE2", "UFL" or "OFL"?
π€ SKIP: METADATA.pb should contain at least "menu" and "latin" subsets.
π€ SKIP: METADATA.pb subsets should be alphabetically ordered.
π€ SKIP: METADATA.pb: Copyright notice is the same in all fonts?
π€ SKIP: Check that METADATA.pb family values are all the same.
π€ SKIP: METADATA.pb: According Google Fonts standards, families should have a Regular style.
π€ SKIP: METADATA.pb: Regular should be 400.
[110] RobotoSlabBeta-VF.ttf
π ERROR: Checking with Microsoft Font Validator.
Unknown command line option: '-file'
π₯ FAIL: Glyph names are all valid?
The following glyphs do not have the recommended number of contours:
Glyph name: K Counters detected: 3 Expected: 1 or 2
Glyph name: R Counters detected: 3 Expected: 1 or 2
Glyph name: k Counters detected: 3 Expected: 1 or 2
Glyph name: Eth Counters detected: 3 Expected: 2
Glyph name: aogonek Counters detected: 3 Expected: 2
Glyph name: Dcroat Counters detected: 3 Expected: 2
Glyph name: dcroat Counters detected: 3 Expected: 2
Glyph name: eogonek Counters detected: 3 Expected: 2
Glyph name: hbar Counters detected: 2 Expected: 1
Glyph name: uni0136 Counters detected: 4 Expected: 2 or 3
Glyph name: uni0137 Counters detected: 4 Expected: 2 or 3
Glyph name: kgreenlandic Counters detected: 3 Expected: 1 or 2
Glyph name: Lslash Counters detected: 2 Expected: 1
Glyph name: lslash Counters detected: 2 Expected: 1
Glyph name: Racute Counters detected: 4 Expected: 3
Glyph name: uni0156 Counters detected: 4 Expected: 3
Glyph name: Rcaron Counters detected: 4 Expected: 3
Glyph name: Tbar Counters detected: 2 Expected: 1
Glyph name: tbar Counters detected: 2 Expected: 1
Glyph name: Uogonek Counters detected: 2 Expected: 1
Glyph name: uogonek Counters detected: 2 Expected: 1
Glyph name: ohorn Counters detected: 3 Expected: 2
Glyph name: Uhorn Counters detected: 2 Expected: 1
Glyph name: uhorn Counters detected: 2 Expected: 1
Glyph name: Kappa Counters detected: 3 Expected: 1
Glyph name: kappa Counters detected: 3 Expected: 1
Glyph name: uni045B Counters detected: 2 Expected: 1
Glyph name: uni0462 Counters detected: 3 Expected: 2
Glyph name: uni046C Counters detected: 3 Expected: 2
Glyph name: uni046D Counters detected: 3 Expected: 2
Glyph name: uni047A Counters detected: 4 Expected: 2
Glyph name: uni047B Counters detected: 4 Expected: 2
Glyph name: uni048C Counters detected: 3 Expected: 2
Glyph name: uni048E Counters detected: 3 Expected: 1 or 2
Glyph name: uni048F Counters detected: 3 Expected: 2
Glyph name: uni0492 Counters detected: 2 Expected: 1
Glyph name: uni0493 Counters detected: 2 Expected: 1
Glyph name: uni049C Counters detected: 2 Expected: 1
Glyph name: uni049D Counters detected: 2 Expected: 1
Glyph name: uni049E Counters detected: 2 Expected: 1
Glyph name: uni04B0 Counters detected: 2 Expected: 1
Glyph name: uni04B1 Counters detected: 2 Expected: 1
Glyph name: uni04B8 Counters detected: 2 Expected: 1
Glyph name: uni04B9 Counters detected: 2 Expected: 1
Glyph name: uni04FE Counters detected: 2 Expected: 1
Glyph name: uni04FF Counters detected: 2 Expected: 1
Glyph name: uni0506 Counters detected: 2 Expected: 1
Glyph name: uni0507 Counters detected: 2 Expected: 1
Glyph name: uni1E9E Counters detected: 2 Expected: 1
Glyph name: uni1EDB Counters detected: 4 Expected: 3
Glyph name: uni1EDD Counters detected: 4 Expected: 3
Glyph name: uni1EDF Counters detected: 4 Expected: 3
Glyph name: uni1EE1 Counters detected: 4 Expected: 3
Glyph name: uni1EE3 Counters detected: 4 Expected: 3
Glyph name: uni1EE8 Counters detected: 3 Expected: 2
Glyph name: uni1EE9 Counters detected: 3 Expected: 2
Glyph name: uni1EEA Counters detected: 3 Expected: 2
Glyph name: uni1EEB Counters detected: 3 Expected: 2
Glyph name: uni1EEC Counters detected: 3 Expected: 2
Glyph name: uni1EED Counters detected: 3 Expected: 2
Glyph name: uni1EEE Counters detected: 3 Expected: 2
Glyph name: uni1EEF Counters detected: 3 Expected: 2
Glyph name: uni1EF0 Counters detected: 3 Expected: 2
Glyph name: uni1EF1 Counters detected: 3 Expected: 2
[('emdash', 1501.4, 803.0), ('emdash', 1501.4, 648.0), ('uni2015', 1501.4, 803.0), ('uni2015', 1501.4, 648.0), ('quotereversed', 334.0027, 1067.0)]
This happens a lot when points are not extremes, which is usually bad. However, fixing this alert by adding points on extremes may do more harm than good, especially with italics, calligraphic-script, handwriting, rounded and other fonts. So it is common to ignore this message
π€ SKIP: Checking OS/2 usWeightClass.
π€ SKIP: Check copyright namerecords match license file.
π€ SKIP: Checks METADATA.pb font.name field matches family name declared on the name table.
π€ SKIP: Checks METADATA.pb font.post_script_name matches postscript name declared on the name table.
π€ SKIP: METADATA.pb font.full_name value matches fullname declared on the name table?
π€ SKIP: METADATA.pb font.name value should be same as the family name declared on the name table.
π€ SKIP: METADATA.pb font.full_name and font.post_script_name fields have equivalent values ?
π€ SKIP: METADATA.pb font.filename and font.post_script_name fields have equivalent values?
π€ SKIP: METADATA.pb font.name field contains font name in right format?
π€ SKIP: METADATA.pb font.full_name field contains font name in right format?
π€ SKIP: METADATA.pb font.filename field contains font name in right format?
π€ SKIP: METADATA.pb font.post_script_name field contains font name in right format?
π€ SKIP: Copyright notice on METADATA.pb matches canonical pattern?
π€ SKIP: Copyright notice on METADATA.pb should not contain 'Reserved Font Name'.
π€ SKIP: METADATA.pb: Copyright notice shouldn't exceed 500 chars.
π€ SKIP: METADATA.pb: Filename is set canonically?
π€ SKIP: METADATA.pb font.style "italic" matches font internals?
π€ SKIP: METADATA.pb font.style "normal" matches font internals?
π€ SKIP: METADATA.pb font.name and font.full_name fields match the values declared on the name table?
π€ SKIP: METADATA.pb: Check if fontname is not camel cased.
π€ SKIP: METADATA.pb: Check font name is the same as family name.
π€ SKIP: METADATA.pb: Check that font weight has a canonical value.
π€ SKIP: Checking OS/2 usWeightClass matches weight specified at METADATA.pb.
π€ SKIP: METADATA.pb weight matches postScriptName.
π€ SKIP: METADATA.pb: Font styles are named canonically?
π€ SKIP: Version number has increased since previous release on Google Fonts?
π€ SKIP: Glyphs are similiar to Google Fonts version?
π€ SKIP: TTFAutohint x-height increase value is same as in previous release on Google Fonts?
π€ SKIP: Checking OS/2 fsSelection value.
π€ SKIP: Checking post.italicAngle value.
π€ SKIP: Checking head.macStyle value.
π€ SKIP: Check font has same encoded glyphs as version hosted on fonts.google.com
π€ SKIP: Copyright field for this font on METADATA.pb matches all copyright notice entries on the name table ?
π€ SKIP: Font has all mandatory 'name' table entries ?
π€ SKIP: Check name table: FONT_FAMILY_NAME entries.
π€ SKIP: Check name table: FONT_SUBFAMILY_NAME entries.
π€ SKIP: Check name table: FULL_FONT_NAME entries.
π€ SKIP: Check name table: POSTSCRIPT_NAME entries.
π€ SKIP: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.
π€ SKIP: Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.
π€ SKIP: FontForge validation outputs error messages?
π€ SKIP: FontForge checks.
π€ SKIP: Monospace font has hhea.advanceWidthMax equal to each glyph's advanceWidth?
π€ SKIP: The variable font 'wdth' (Width) axis coordinate must be 100 on the 'Regular' instance.
π€ SKIP: The variable font 'slnt' (Slant) axis coordinate must be zero on the 'Regular' instance.
π€ SKIP: The variable font 'ital' (Italic) axis coordinate must be zero on the 'Regular' instance.
π€ SKIP: The variable font 'opsz' (Optical Size) axis coordinate should be between 9 and 13 on the 'Regular' instance.
βΉοΈ INFO: Font has old ttfautohint applied?
βΉοΈ INFO: EPAR table present in font?
βΉοΈ INFO: Check for font-v versioning
The version string must ideally include a git commit hash and either a 'dev' or a 'release' suffix such as in the example below:
"Version 1.3; git-0d08353-release"
βΉοΈ INFO: Font contains all required tables?
π PASS: Checking file is named canonically.
π PASS: Fonts have equal numbers of glyphs?
π PASS: Fonts have equal glyph names?
π PASS: Checking OS/2 fsType.
π PASS: Checking OS/2 achVendID.
π PASS: Substitute copyright, registered and trademark symbols in name table entries.
π PASS: "License URL matches License text on name table?
π PASS: Description strings in the name table must not exceed 200 characters.
π PASS: Version format is correct in 'name' table?
π PASS: Is 'gasp' table set to optimize rendering?
π PASS: Make sure family name does not begin with a digit.
π PASS: Font has all expected currency sign characters?
π PASS: Are there non-ASCII characters in ASCII-only NAME table entries?
π PASS: Length of copyright notice must not exceed 500 characters.
π PASS: Familyname must be unique according to namecheck.fontdata.com
π PASS: Check a static ttf can be generated from a variable font.
π PASS: Checking OS/2 usWinAscent & usWinDescent.
π PASS: Checking OS/2 Metrics match hhea Metrics.
π PASS: Font enables smart dropout control in "prep" table instructions?
π PASS: Checking with ftxvalidator.
π PASS: Checking with ots-sanitize.
π PASS: Font contains .notdef as first glyph?
π PASS: Font contains glyphs for whitespace characters?
π PASS: Font has **proper** whitespace glyph names?
π PASS: Whitespace glyphs have ink?
π PASS: Are there unwanted tables?
π PASS: Font contains unique glyph names?
π PASS: Checking with fontTools.ttx
π PASS: Check glyphs have unique unicode codepoints.
π PASS: Check all glyphs have codepoints assigned.
π PASS: Checking unitsPerEm value is reasonable.
π PASS: Checking font version fields (head and name table).
π PASS: Font has correct post table version (2 for TTF, 3 for OTF)?
π PASS: Description strings in the name table must not contain copyright info.
π PASS: Checking correctness of monospaced metadata.
π PASS: Name table entries should not contain line-breaks.
π PASS: Does full font name begin with the font family name?
π PASS: Font follows the family naming recommendations?
π PASS: Name table strings must not contain the string 'Reserved Font Name'.
π PASS: Combined length of family and style must not exceed 20 characters.
π PASS: Checking Vertical Metric Linegaps.
π PASS: MaxAdvanceWidth is consistent with values in the Hmtx and Hhea tables?
π PASS: Does the font have a DSIG table?
π PASS: Whitespace and non-breaking space have the same width?
π PASS: Does GPOS table have kerning information?
π PASS: Is there a "kern" table declared in the font?
π PASS: Is there any unused data at the end of the glyf table?
π PASS: The variable font 'wght' (Weight) axis coordinate must be 400 on the 'Regular' instance.
π PASS: The variable font 'wght' (Weight) axis coordinate must be 700 on the 'Bold' instance.
π PASS: Does the number of glyphs in the loca table match the maxp table?
Summary
The text was updated successfully, but these errors were encountered: