If you think a check is flawed or have an idea for a check, please file an issue at https://github.com/fonttools/fontbakery/issues and remember to include a pointer to the repo and branch you're checking.
Summary
💥 ERROR | 🔥 FAIL | ⚠️ WARN | ⏩ SKIP | ℹ️ INFO | ✅ PASS |
---|---|---|---|---|---|
0 | 18 | 13 | 73 | 7 | 130 |
0% | 10% | 7% | 41% | 4% | 73% |
Note: The following loglevels were omitted in this report: SKIP, INFO, PASS, DEBUG
Meaning of check results:
- 💥 An ERROR is something wrong with FontBakery itself, possibly a bug.
- 🔥 A FAIL is a problem with the font that must be fixed.
- ⚠️ A WARN is something that you should consider addressing.
- ℹ️ An INFO result simply prints something useful. Typically stats.
- ✅ A PASS means the font looks good for the given checking routine.
- ⏩ And a SKIP happens when the check does not apply to the given font.
If you get ERRORs, please help us improve the tool by reporting them at our issue tracker.
(but other kinds of bug reports and/or feature requests are also always welcome, of course!)
FontBakery version: 0.9.2
Section: Google Fonts
🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥🔥⚠️⚠️⚠️⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️ℹ️ℹ️ℹ️Does DESCRIPTION file contain a upstream Git repo URL?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
Checking OS/2 fsType does not impose restrictions.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
In this font fsType is set to 1 meaning that:
- There are reserved bits set, which indicates an invalid setting.
No such DRM restrictions can be enabled on the Google Fonts collection, so the fsType field must be set to zero (Installable Embedding) instead. [code: drm]
Check Google Fonts glyph coverage.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Missing required codepoints:
- 0x00A0 (NO-BREAK SPACE) - 0x0308 (COMBINING DIAERESIS) - 0x0300 (COMBINING GRAVE ACCENT) - 0x0301 (COMBINING ACUTE ACCENT) - 0x030B (COMBINING DOUBLE ACUTE ACCENT) - 0x0304 (COMBINING MACRON) - 0x021A (LATIN CAPITAL LETTER T WITH COMMA BELOW) - 0x0131 (LATIN SMALL LETTER DOTLESS I) - 0x0237 (LATIN SMALL LETTER DOTLESS J) - 0x00DF (LATIN SMALL LETTER SHARP S) - 0x021B (LATIN SMALL LETTER T WITH COMMA BELOW) - 0x0307 (COMBINING DOT ABOVE) - 0x0302 (COMBINING CIRCUMFLEX ACCENT) - 0x030C (COMBINING CARON) - 0x0306 (COMBINING BREVE) - 0x030A (COMBINING RING ABOVE) - 0x0303 (COMBINING TILDE) - 0x0312 (COMBINING TURNED COMMA ABOVE) - 0x0327 (COMBINING CEDILLA) - 0x0328 (COMBINING OGONEK)
[code: missing-codepoints]
Check for codepoints not covered by METADATA subsets.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
The following codepoints supported by the font are not covered by any subsets defined in the font's metadata file, and will never be served. You can solve this by either manually adding additional subset declarations to METADATA.pb, or by editing the glyphset definitions.
- U+02C7 CARON: try adding one of: tifinagh, canadian-aboriginal
- U+02D8 BREVE: try adding canadian-aboriginal
- U+02D9 DOT ABOVE: try adding canadian-aboriginal
- U+02DB OGONEK: try adding canadian-aboriginal
- U+02DD DOUBLE ACUTE ACCENT: not included in any glyphset definition
- U+0326 COMBINING COMMA BELOW: not included in any glyphset definition
- U+2021 DOUBLE DAGGER: not included in any glyphset definition
- U+2030 PER MILLE SIGN: not included in any glyphset definition
- U+2117 SOUND RECORDING COPYRIGHT: not included in any glyphset definition
- U+2248 ALMOST EQUAL TO: not included in any glyphset definition
- U+2260 NOT EQUAL TO: not included in any glyphset definition
- U+2264 LESS-THAN OR EQUAL TO: not included in any glyphset definition
- U+2265 GREATER-THAN OR EQUAL TO: not included in any glyphset definition
- U+E100 : not included in any glyphset definition
- U+E101 : not included in any glyphset definition
- U+E102 : not included in any glyphset definition
- U+E103 : not included in any glyphset definition
- U+E104 : not included in any glyphset definition
- U+E105 : not included in any glyphset definition
- U+E106 : not included in any glyphset definition
- U+E107 : not included in any glyphset definition
- U+E108 : not included in any glyphset definition
- U+E109 : not included in any glyphset definition
- U+E10A : not included in any glyphset definition
- U+E10B : not included in any glyphset definition
- U+E10C : not included in any glyphset definition
- U+E10D : not included in any glyphset definition
- U+E10E : not included in any glyphset definition
- U+E10F : not included in any glyphset definition
- U+E110 : not included in any glyphset definition
- U+E111 : not included in any glyphset definition
- U+E112 : not included in any glyphset definition
- U+E113 : not included in any glyphset definition
- U+E114 : not included in any glyphset definition
- U+E115 : not included in any glyphset definition
- U+E116 : not included in any glyphset definition
- U+E117 : not included in any glyphset definition
- U+E118 : not included in any glyphset definition
- U+E119 : not included in any glyphset definition
- U+E11A : not included in any glyphset definition
- U+E11B : not included in any glyphset definition
- U+E11C : not included in any glyphset definition
- U+E11D : not included in any glyphset definition
- U+E11E : not included in any glyphset definition
- U+E11F : not included in any glyphset definition
- U+E120 : not included in any glyphset definition
- U+E121 : not included in any glyphset definition
- U+E122 : not included in any glyphset definition
- U+E123 : not included in any glyphset definition
- U+E124 : not included in any glyphset definition
- U+E125 : not included in any glyphset definition
- U+E126 : not included in any glyphset definition
- U+E127 : not included in any glyphset definition
- U+E128 : not included in any glyphset definition
- U+E129 : not included in any glyphset definition
- U+E12A : not included in any glyphset definition
- U+E12B : not included in any glyphset definition
- U+E12C : not included in any glyphset definition
- U+E12D : not included in any glyphset definition
- U+E12E : not included in any glyphset definition
- U+E12F : not included in any glyphset definition
- U+E130 : not included in any glyphset definition
- U+E131 : not included in any glyphset definition
- U+E132 : not included in any glyphset definition
- U+E133 : not included in any glyphset definition
- U+E134 : not included in any glyphset definition
- U+E135 : not included in any glyphset definition
- U+E138 : not included in any glyphset definition
- U+E139 : not included in any glyphset definition
- U+E13A : not included in any glyphset definition
- U+E13B : not included in any glyphset definition
Or you can add the above codepoints to one of the subsets supported by the font:
latin
,latin-ext
,menu
,vietnamese
[code: unreachable-subsetting]
Check license file has good copyright string.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
First line in license file is:
"copyright 2008 the bungee project authors (david@djr.com)"
which does not match the expected format, similar to:
"Copyright 2022 The Familyname Project Authors (git url)" [code: bad-format]
Check copyright namerecords match license file.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
- ⚠️ WARN
For now we're still accepting http URLs, but you should consider using https instead. [code: http]
License URL matches License text on name table?
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
- ⚠️ WARN
Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
- ⚠️ WARN
For now we're still accepting http URLs, but you should consider using https instead. [code: http]
Version format is correct in 'name' table?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000. Current version string is: "Version 0.0.1" [code: bad-version-strings]
- 🔥 FAIL
The NameID.VERSION_STRING (nameID=5) value must follow the pattern "Version X.Y" with X.Y greater than or equal to 1.000. Current version string is: "Version 0.0.1" [code: bad-version-strings]
Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Font is missing the 'gasp' table. Try exporting the font with autohinting enabled. If you are dealing with an unhinted font, it can be fixed by running the fonts through the command 'gftools fix-nonhinting' GFTools is available at https://pypi.org/project/gftools/ [code: lacks-gasp]
METADATA.pb font.name field contains font name in right format?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
METADATA.pb font.name field ("Bungee Spice") does not match correct font name format ("Bungee Spice Regular"). [code: mismatch]
- 🔥 FAIL
METADATA.pb font.name field ("Bungee Spice") does not match correct font name format ("Bungee Spice Regular"). [code: mismatch]
Copyright notices match canonical pattern in METADATA.pb
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
METADATA.pb: Copyright notices should match a pattern similar to: "Copyright 2020 The Familyname Project Authors (git url)" But instead we have got: "copyright 2021 roderick sheeter" [code: bad-notice-format]
Copyright notices match canonical pattern in fonts
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2021 Roderick Sheeter" [code: bad-notice-format]
- 🔥 FAIL
Name Table entry: Copyright notices should match a pattern similar to: "Copyright 2019 The Familyname Project Authors (git url)" But instead we have got: "Copyright 2021 Roderick Sheeter" [code: bad-notice-format]
Glyphs are similiar to Google Fonts version?
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
Following glyphs differ greatly from Google Fonts version: * glyph00650 and glyph00652
Check font names are correct
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Font names are incorrect:
| nameID | current | expected | | :--- | :--- | :--- | | Family Name | Bungee Spice Regular | Bungee Spice | | Subfamily Name | Regular | Regular | | Full Name | Bungee Spice Regular | Bungee Spice Regular | | Poscript Name | BungeeSpice-Regular | BungeeSpice-Regular | | Typographic Family Name | Bungee Spice | N/A | [code: bad-names]
Check glyphs do not have components which are themselves components.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
The following glyphs have components which themselves are component glyphs: * glyph00294 * glyph00296 * glyph00298 * glyph00300 * glyph00302 * glyph00306 * glyph00308 * glyph00310 * glyph00316 * glyph00318 * glyph00320 * glyph00322 * glyph00324 * glyph00328 * glyph00332 * glyph00334 * glyph00336 * glyph00338 * glyph00340 * glyph00342 * glyph00344 * glyph00346 * glyph00348 * glyph00354 * glyph00356 * glyph00358 * glyph00360 * glyph00364 * glyph00368 * glyph00370 * glyph00372 * glyph00374 * glyph00376 * glyph00378 * glyph00380 * glyph00382 * glyph00384 * glyph00388 * glyph00392 * glyph00396 * glyph00398 * glyph00400 * glyph00406 * glyph00408 * glyph00410 * glyph00412 * glyph00416 * glyph00418 * glyph00420 * glyph00422 * glyph00424 * glyph00426 * glyph00428 * glyph00430 * glyph00438 * glyph00440 * glyph00442 * glyph00446 * glyph00448 * glyph00450 * glyph00452 * glyph00454 * glyph00458 * glyph00460 * glyph00464 * glyph00466 * glyph00468 * glyph00470 * glyph00472 * glyph00474 * glyph00476 * glyph00478 * glyph00480 * glyph00482 * glyph00488 * glyph00490 * glyph00492 * glyph00494 * glyph00500 * glyph00502 * glyph00504 * glyph00506 * glyph00510 * glyph00512 * glyph00514 * glyph00524 * glyph00544 * glyph00546 * glyph00548 * glyph00550 * glyph00552 * glyph00556 * glyph00558 * glyph00560 * glyph00564 * glyph00566 * glyph00568 * glyph00570 * glyph00572 * glyph00574 * glyph00576 * glyph00578 * glyph00580 * glyph00588 * glyph00590 * glyph00592 * glyph00594 * glyph00596 * glyph00598 * glyph00600 * glyph00604 * glyph00606 * glyph00608 * glyph00610 * glyph00618 * glyph00620 * glyph00622 * glyph00624 * glyph00628 * glyph00630 * glyph00632 * glyph00634 * glyph00640 * glyph00642 * glyph00644 * glyph00646 * glyph00742 * glyph00744 * glyph00776 * glyph00788 and glyph00804 [code: found-nested-components]
Font enables smart dropout control in "prep" table instructions?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the
gftools fix-nonhinting
script. [code: lacks-smart-dropout]
Directory name in GFonts repo structure must match NameID 1 of the regular.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Family name on the name table ('Bungee Spice Regular') does not match directory name in the repo structure ('bungeespice'). Expected 'bungeespiceregular'. [code: mismatch]
A static fonts directory with at least two fonts must accompany variable fonts
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
Please consider adding a subdirectory called "static/" and including in it static font files. [code: missing]
Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Bungee Spice Regular: OS/2 sTypoAscender is 860 when it should be 1138 [code: bad-typo-ascender]
- 🔥 FAIL
Bungee Spice Regular: OS/2 sTypoDescender is -140 when it should be -362 [code: bad-typo-descender]
- 🔥 FAIL
Bungee Spice Regular: hhea Ascender is 860 when it should be 1138 [code: bad-hhea-ascender]
- 🔥 FAIL
Bungee Spice Regular: hhea Descender is -140 when it should be -362 [code: bad-hhea-descender]
On a family update, the DESCRIPTION.en_us.html file should ideally also be updated.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
The DESCRIPTION.en_us.html file in this family has not changed in comparison to the latest font release on the google/fonts github repo. Please consider mentioning note-worthy improvements made to the family recently. [code: description-not-updated]
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) is set in all fonts.
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
OS/2.fsSelection bit 7 (USE_TYPO_METRICS) wasNOT set in the following fonts: ['/Users/simon/others-repos/fonts/ofl/bungeespice/BungeeSpice-Regular.ttf']. [code: missing-os2-fsselection-bit7]
Ensure fonts have ScriptLangTags declared on the 'meta' table.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
This font file does not have a 'meta' table. [code: lacks-meta-table]
Section: Universal
🔥🔥⚠️⚠️⚠️⚠️⏩⏩⏩⏩⏩⏩⏩⏩⏩⏩ℹ️ℹ️Font contains glyphs for whitespace characters?
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Whitespace glyph missing for codepoint 0x00A0. [code: missing-whitespace-glyph-0x00A0]
Check font contains no unreachable glyphs
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
The following glyphs could not be reached by codepoint or substitution rules:
- glyph00650 - glyph00651 - glyph00652 - glyph00653
[code: unreachable-glyphs]
Check if each glyph has the recommended amount of contours.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
This check inspects the glyph outlines and detects the total number of contours in each of them. The expected values are infered from the typical ammounts of contours observed in a large collection of reference font families. The divergences listed below may simply indicate a significantly different design on some of your glyphs. On the other hand, some of these may flag actual bugs in the font such as glyphs mapped to an incorrect codepoint. Please consider reviewing the design and codepoint assignment of these to make sure they are correct.
The following glyphs do not have the recommended number of contours:
- Glyph name: numbersign Contours detected: 4 Expected: 2 - Glyph name: plus Contours detected: 2 Expected: 1 - Glyph name: at Contours detected: 1 Expected: 2 - Glyph name: B Contours detected: 3 Expected: 2 - Glyph name: E Contours detected: 1 Expected: 2 - Glyph name: G Contours detected: 1 Expected: 2 or 3 - Glyph name: I Contours detected: 1 Expected: 2 - Glyph name: J Contours detected: 1 Expected: 2 - Glyph name: R Contours detected: 2 Expected: 1 - Glyph name: Y Contours detected: 2 Expected: 1 - Glyph name: cent Contours detected: 3 Expected: 1 or 2 - Glyph name: currency Contours detected: 6 Expected: 2 - Glyph name: yen Contours detected: 3 Expected: 1 or 2 - Glyph name: plusminus Contours detected: 3 Expected: 1 or 2 - Glyph name: multiply Contours detected: 2 Expected: 1 - Glyph name: Egrave Contours detected: 2 Expected: 3 - Glyph name: Eacute Contours detected: 2 Expected: 3 - Glyph name: Ecircumflex Contours detected: 2 Expected: 3 - Glyph name: Edieresis Contours detected: 3 Expected: 4 - Glyph name: Eth Contours detected: 3 Expected: 2 - Glyph name: Yacute Contours detected: 3 Expected: 2 - Glyph name: Aogonek Contours detected: 3 Expected: 2 - Glyph name: Dcroat Contours detected: 3 Expected: 2 - Glyph name: Emacron Contours detected: 2 Expected: 3 - Glyph name: Ebreve Contours detected: 2 Expected: 3 - Glyph name: Edotaccent Contours detected: 2 Expected: 3 - Glyph name: Ecaron Contours detected: 2 Expected: 3 - Glyph name: Gcircumflex Contours detected: 2 Expected: 3 or 4 - Glyph name: Gbreve Contours detected: 2 Expected: 3 or 4 - Glyph name: Gdotaccent Contours detected: 2 Expected: 3 or 4 - Glyph name: uni0122 Contours detected: 2 Expected: 3 or 4 - Glyph name: Hbar Contours detected: 2 Expected: 1 - Glyph name: IJ Contours detected: 2 Expected: 3 or 4 - Glyph name: Lslash Contours detected: 2 Expected: 1 - Glyph name: Racute Contours detected: 3 Expected: 2 - Glyph name: uni0156 Contours detected: 3 Expected: 2 - Glyph name: Rcaron Contours detected: 3 Expected: 2 - Glyph name: Tbar Contours detected: 2 Expected: 1 - Glyph name: Uogonek Contours detected: 2 Expected: 1 - Glyph name: Ycircumflex Contours detected: 3 Expected: 2 - Glyph name: ydieresis Contours detected: 4 Expected: 3 - Glyph name: florin Contours detected: 2 Expected: 1 - Glyph name: Ygrave Contours detected: 3 Expected: 2 - Glyph name: Euro Contours detected: 3 Expected: 1 or 2 - Glyph name: notequal Contours detected: 3 Expected: 1 - Glyph name: AE Contours detected: 3 Expected: 2 - Glyph name: Dcroat Contours detected: 3 Expected: 2 - Glyph name: Eth Contours detected: 3 Expected: 2 - Glyph name: Euro Contours detected: 3 Expected: 1 or 2 - Glyph name: Lslash Contours detected: 2 Expected: 1 - Glyph name: OE Contours detected: 3 Expected: 2 - Glyph name: Tbar Contours detected: 2 Expected: 1 - Glyph name: Uogonek Contours detected: 2 Expected: 1 - Glyph name: Y Contours detected: 2 Expected: 1 - Glyph name: Yacute Contours detected: 3 Expected: 2 - Glyph name: Ycircumflex Contours detected: 3 Expected: 2 - Glyph name: Ygrave Contours detected: 3 Expected: 2 - Glyph name: at Contours detected: 1 Expected: 2 - Glyph name: cent Contours detected: 3 Expected: 1 or 2 - Glyph name: currency Contours detected: 6 Expected: 2 - Glyph name: multiply Contours detected: 2 Expected: 1 - Glyph name: notequal Contours detected: 3 Expected: 1 - Glyph name: numbersign Contours detected: 4 Expected: 2 - Glyph name: plus Contours detected: 2 Expected: 1 - Glyph name: plusminus Contours detected: 3 Expected: 1 or 2 - Glyph name: ydieresis Contours detected: 4 Expected: 3 - Glyph name: yen Contours detected: 3 Expected: 1 or 2
[code: contour-count]
Check math signs have the same width.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
The most common width is 734 among a set of 9 math glyphs. The following math glyphs have a different width, though:
Width = 714: less, greaterequal, lessequal, greater [code: width-outliers]
Checking Vertical Metric Linegaps.
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
hhea lineGap is not equal to 0. [code: hhea]
Check accent of Lcaron, dcaron, lcaron, tcaron (derived from com.google.fonts/check/alt_caron)
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
Dcaron uses component caron. [code: wrong-mark]
- 🔥 FAIL
Tcaron uses component caron. [code: wrong-mark]
Section: fontbakery.profiles.head
🔥⏩Checking font version fields (head and name table).
🔥 BungeeSpice-Regular.ttf
- 🔥 FAIL
head version is "1.00000" while name version string (for platform 1, encoding 0) is "Version 0.0.1". [code: mismatch]
- 🔥 FAIL
head version is "1.00000" while name version string (for platform 3, encoding 1) is "Version 0.0.1". [code: mismatch]
Section: fontbakery.profiles.post
⚠️Font has correct post table version?
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
Post table format 3 use has niche use case problems.Please review the check rationale for additional details. [code: post-table-version]
Section: fontbakery.profiles.dsig
⚠️Does the font have a DSIG table?
⚠️ BungeeSpice-Regular.ttf
- ⚠️ WARN
This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table. [code: found-DSIG]