Skip to content
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

Festive: Version 1.101; ttfautohint (v1.8.3) added #3314

Merged
merged 3 commits into from
Apr 26, 2021

Conversation

vv-monsalve
Copy link
Collaborator

f203533: [gftools-packager] Festive: Version 1.101; ttfautohint (v1.8.3) added

013272b: [gftools-packager] ofl/festive remove METADATA "source". #2587

@gf-bot
Copy link

gf-bot commented Apr 14, 2021

Fontbakery report

Fontbakery version: 0.7.34

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---

There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.

If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure
call (rpc).

There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN Could not find ftxvalidator.

[10] Festive-Regular.ttf
🔥 FAIL: Is this a proper HTML snippet?
--- Rationale ---

Sometimes people write malformed HTML markup. This check should ensure the file
is good.

Additionally, when packaging families for being pushed to the `google/fonts`
git repo, if there is no DESCRIPTION.en_us.html file, some older versions of
the `add_font.py` tool insert a dummy description file which contains invalid
html. This file needs to either be replaced with an existing description file
or edited by hand.


  • 🔥 FAIL ofl/festive/DESCRIPTION.en_us.html does not look like a propper HTML snippet. Please look for syntax errors. Maybe the following parser error message can help you find what's wrong:

xmlParseEntityRef: no name, line 2, column 235 (, line 2)

[code: malformed-snippet]

🔥 FAIL: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329


🔥 FAIL: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


WARN: DESCRIPTION.en_us.html should end in a linebreak.
--- Rationale ---

Some older text-handling tools sometimes misbehave if the last line of data in
a text file is not terminated with a newline character (also known as '\n').

We know that this is a very small detail, but for the sake of keeping all
DESCRIPTION.en_us.html files uniformly formatted throughout the GFonts
collection, we chose to adopt the practice of placing this final linebreak char
on them.


  • WARN The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it. [code: missing-eof-linebreak]
WARN: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • 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: percent Contours detected: 2 Expected: 5
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B2 Contours detected: 2 Expected: 1
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: Scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: dotbelowcomb Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 4 Expected: 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3
Glyph name: fl Contours detected: 4 Expected: 1 or 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: Wgrave Contours detected: 4 Expected: 2
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: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: fi Contours detected: 4 Expected: 3
Glyph name: fl Contours detected: 4 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: percent Contours detected: 2 Expected: 5
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Robert Leuschke is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Do any segments have colinear vectors?
--- Rationale ---

This test looks for consecutive line segments which have the same angle. This
normally happens if an outline point has been added by accident.

This test is not run for variable fonts, as they may legitimately have colinear
vectors.


  • WARN The following glyphs have colinear vectors:
    • BrideGroom: L<<443.0,496.0>--<440.0,521.0>> -> L<<440.0,521.0>--<436.0,557.0>>
    • FlowerBasket: L<<211.0,-11.0>--<201.0,12.0>> -> L<<201.0,12.0>--<196.0,27.0>>
    • GiftBox: L<<409.0,297.0>--<449.0,305.0>> -> L<<449.0,305.0>--<488.0,313.0>>
    • H: L<<441.0,272.0>--<454.0,269.0>> -> L<<454.0,269.0>--<462.0,267.0>>
    • Holly3: L<<988.0,444.0>--<997.0,451.0>> -> L<<997.0,451.0>--<1001.0,454.0>>
    • Holly4: L<<50.0,19.0>--<59.0,45.0>> -> L<<59.0,45.0>--<78.0,105.0>>
    • Leaf1: L<<156.0,79.0>--<133.0,61.0>> -> L<<133.0,61.0>--<103.0,36.0>>
    • Leaf1: L<<226.0,139.0>--<156.0,79.0>> -> L<<156.0,79.0>--<133.0,61.0>>
    • Leaves1: L<<737.0,298.0>--<696.0,263.0>> -> L<<696.0,263.0>--<682.0,253.0>>
    • M.ss11: L<<529.0,154.0>--<567.0,187.0>> -> L<<567.0,187.0>--<583.0,199.0>> and 77 more. [code: found-colinear-vectors]
WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • A.ss08: B<<715.0,468.5>-<742.0,528.0>-<779.0,565.0>>/B<<779.0,565.0>-<734.0,531.0>-<671.5,501.0>> = 7.926926682689609
    • A.ss08: B<<849.0,636.5>-<834.0,612.0>-<807.0,588.0>>/B<<807.0,588.0>-<824.0,597.0>-<843.0,597.0>> = 13.736268305622527
    • B.ss01: B<<657.5,245.5>-<630.0,145.0>-<621.0,52.0>>/B<<621.0,52.0>-<642.0,150.0>-<678.5,249.5>> = 6.567216925355868
    • B.ss05: B<<571.5,550.0>-<565.0,495.0>-<553.0,439.0>>/B<<553.0,439.0>-<569.0,474.0>-<590.0,516.5>> = 12.472414243589178
    • B.ss10: B<<287.5,245.5>-<260.0,145.0>-<251.0,52.0>>/B<<251.0,52.0>-<272.0,150.0>-<308.5,249.5>> = 6.567216925355868
    • B: B<<133.5,245.5>-<106.0,145.0>-<97.0,52.0>>/B<<97.0,52.0>-<118.0,150.0>-<154.5,249.5>> = 6.567216925355868
    • Beachball3: B<<842.5,304.5>-<862.0,278.0>-<863.0,252.0>>/B<<863.0,252.0>-<864.0,260.0>-<864.0,269.0>> = 9.32761451066755
    • Beachball4: B<<104.0,478.0>-<104.0,493.0>-<108.0,504.0>>/B<<108.0,504.0>-<89.0,464.0>-<75.0,415.5>> = 5.424611587048396
    • BrideGroom: B<<404.5,439.5>-<398.0,445.0>-<393.0,446.0>>/B<<393.0,446.0>-<398.0,444.0>-<405.0,442.5>> = 10.491477012331565
    • Crown: B<<260.0,62.0>-<280.0,62.0>-<299.0,59.0>>/L<<299.0,59.0>--<292.0,59.0>> = 8.972626614896358 and 1391 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • Snowflake4: L<<235.0,117.0>--<234.0,246.0>>
    • bushouse: L<<1241.0,297.0>--<1395.0,296.0>>
    • bushouse: L<<1258.0,550.0>--<1021.0,552.0>>
    • logicalnot: L<<336.0,301.0>--<106.0,299.0>>
    • schoolhouse: L<<375.0,316.0>--<490.0,315.0>>
    • u1F3D9: L<<2637.0,287.0>--<2638.0,433.0>>
    • u1F3D9: L<<2783.0,451.0>--<2784.0,260.0>> and uni0394: L<<650.0,-25.0>--<35.0,-27.0>> [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 3 8 43 8 133 0
0% 2% 4% 22% 4% 68% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@vv-monsalve vv-monsalve marked this pull request as draft April 14, 2021 20:21
@vv-monsalve
Copy link
Collaborator Author

Updated

Festive: Version 1.101; ttfautohint (v1.8.3) added


e6d95e0: [gftools-packager] Festive: Version 1.101; ttfautohint (v1.8.3) added

76ad99f: [gftools-packager] ofl/festive remove METADATA "source". #2587

@vv-monsalve vv-monsalve marked this pull request as ready for review April 22, 2021 17:21
@vv-monsalve vv-monsalve self-assigned this Apr 22, 2021
@gf-bot
Copy link

gf-bot commented Apr 22, 2021

Fontbakery report

Fontbakery version: 0.7.34

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---

There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.

If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure
call (rpc).

There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN Could not find ftxvalidator.

[7] Festive-Regular.ttf
🔥 FAIL: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329


🔥 FAIL: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


WARN: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • 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: percent Contours detected: 2 Expected: 5
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B2 Contours detected: 2 Expected: 1
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: Scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: dotbelowcomb Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 4 Expected: 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3
Glyph name: fl Contours detected: 4 Expected: 1 or 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: Wgrave Contours detected: 4 Expected: 2
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: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: fi Contours detected: 4 Expected: 3
Glyph name: fl Contours detected: 4 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: percent Contours detected: 2 Expected: 5
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Robert Leuschke is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • A.ss08: B<<715.0,468.5>-<742.0,528.0>-<779.0,565.0>>/B<<779.0,565.0>-<734.0,531.0>-<671.5,501.0>> = 7.926926682689609
    • A.ss08: B<<849.0,636.5>-<834.0,612.0>-<807.0,588.0>>/B<<807.0,588.0>-<824.0,597.0>-<843.0,597.0>> = 13.736268305622527
    • B.ss01: B<<657.5,245.5>-<630.0,145.0>-<621.0,52.0>>/B<<621.0,52.0>-<642.0,150.0>-<678.5,249.5>> = 6.567216925355868
    • B.ss05: B<<571.5,550.0>-<565.0,495.0>-<553.0,439.0>>/B<<553.0,439.0>-<569.0,474.0>-<590.0,516.5>> = 12.472414243589178
    • B.ss10: B<<287.5,245.5>-<260.0,145.0>-<251.0,52.0>>/B<<251.0,52.0>-<272.0,150.0>-<308.5,249.5>> = 6.567216925355868
    • B: B<<133.5,245.5>-<106.0,145.0>-<97.0,52.0>>/B<<97.0,52.0>-<118.0,150.0>-<154.5,249.5>> = 6.567216925355868
    • Beachball3: B<<842.5,304.5>-<862.0,278.0>-<863.0,252.0>>/B<<863.0,252.0>-<864.0,260.0>-<864.0,269.0>> = 9.32761451066755
    • Beachball4: B<<104.0,478.0>-<104.0,493.0>-<108.0,504.0>>/B<<108.0,504.0>-<89.0,464.0>-<75.0,415.5>> = 5.424611587048396
    • BrideGroom: B<<404.5,439.5>-<398.0,445.0>-<393.0,446.0>>/B<<393.0,446.0>-<398.0,444.0>-<405.0,442.5>> = 10.491477012331565
    • ChristmasTree4: B<<479.5,652.0>-<469.0,662.0>-<465.0,665.0>>/B<<465.0,665.0>-<467.0,664.0>-<468.5,665.0>> = 10.304846468766009 and 1490 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • Greetings14: L<<810.0,26.0>--<812.0,278.0>>
    • Snowflake4: L<<235.0,117.0>--<234.0,246.0>>
    • bushouse: L<<1241.0,297.0>--<1395.0,296.0>>
    • bushouse: L<<1258.0,550.0>--<1021.0,552.0>>
    • logicalnot: L<<336.0,301.0>--<106.0,299.0>>
    • schoolhouse: L<<375.0,316.0>--<490.0,315.0>>
    • u1F3D9: L<<2637.0,287.0>--<2638.0,433.0>>
    • u1F3D9: L<<2783.0,451.0>--<2784.0,260.0>> and uni0394: L<<650.0,-25.0>--<35.0,-27.0>> [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 2 6 41 9 137 0
0% 1% 3% 21% 5% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@vv-monsalve
Copy link
Collaborator Author

vv-monsalve commented Apr 22, 2021

Festive is part of Batch 1 of the TypeSetIt projects.
It is listed on GF but available from an external foundry link (Monotype)

🔥 FAIL: Are there caret positions declared for every ligature?
🔥 FAIL: Is there kerning info for non-ligated sequences?

Related to: fonttools/fontbakery#3131

@vv-monsalve vv-monsalve linked an issue Apr 22, 2021 that may be closed by this pull request
11 tasks
@vv-monsalve
Copy link
Collaborator Author

Updated

Festive: Version 1.101; ttfautohint (v1.8.3) added


0b41bbc: [gftools-packager] Festive: Version 1.101; ttfautohint (v1.8.3) added

b367c43: [gftools-packager] ofl/festive remove METADATA "source". #2587

@gf-bot
Copy link

gf-bot commented Apr 22, 2021

Fontbakery report

Fontbakery version: 0.7.34

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---

There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.

If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure
call (rpc).

There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN Could not find ftxvalidator.

[7] Festive-Regular.ttf
🔥 FAIL: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329


🔥 FAIL: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


WARN: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • 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: percent Contours detected: 2 Expected: 5
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B2 Contours detected: 2 Expected: 1
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: Scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: dotbelowcomb Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 4 Expected: 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3
Glyph name: fl Contours detected: 4 Expected: 1 or 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: Wgrave Contours detected: 4 Expected: 2
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: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: fi Contours detected: 4 Expected: 3
Glyph name: fl Contours detected: 4 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: percent Contours detected: 2 Expected: 5
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Robert Leuschke is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • A.ss08: B<<715.0,468.5>-<742.0,528.0>-<779.0,565.0>>/B<<779.0,565.0>-<734.0,531.0>-<671.5,501.0>> = 7.926926682689609
    • A.ss08: B<<849.0,636.5>-<834.0,612.0>-<807.0,588.0>>/B<<807.0,588.0>-<824.0,597.0>-<843.0,597.0>> = 13.736268305622527
    • B.ss01: B<<657.5,245.5>-<630.0,145.0>-<621.0,52.0>>/B<<621.0,52.0>-<642.0,150.0>-<678.5,249.5>> = 6.567216925355868
    • B.ss05: B<<571.5,550.0>-<565.0,495.0>-<553.0,439.0>>/B<<553.0,439.0>-<569.0,474.0>-<590.0,516.5>> = 12.472414243589178
    • B.ss10: B<<287.5,245.5>-<260.0,145.0>-<251.0,52.0>>/B<<251.0,52.0>-<272.0,150.0>-<308.5,249.5>> = 6.567216925355868
    • B: B<<133.5,245.5>-<106.0,145.0>-<97.0,52.0>>/B<<97.0,52.0>-<118.0,150.0>-<154.5,249.5>> = 6.567216925355868
    • Beachball3: B<<842.5,304.5>-<862.0,278.0>-<863.0,252.0>>/B<<863.0,252.0>-<864.0,260.0>-<864.0,269.0>> = 9.32761451066755
    • Beachball4: B<<104.0,478.0>-<104.0,493.0>-<108.0,504.0>>/B<<108.0,504.0>-<89.0,464.0>-<75.0,415.5>> = 5.424611587048396
    • BrideGroom: B<<404.5,439.5>-<398.0,445.0>-<393.0,446.0>>/B<<393.0,446.0>-<398.0,444.0>-<405.0,442.5>> = 10.491477012331565
    • ChristmasTree4: B<<479.5,652.0>-<469.0,662.0>-<465.0,665.0>>/B<<465.0,665.0>-<467.0,664.0>-<468.5,665.0>> = 10.304846468766009 and 1490 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • Greetings14: L<<810.0,26.0>--<812.0,278.0>>
    • Snowflake4: L<<235.0,117.0>--<234.0,246.0>>
    • bushouse: L<<1241.0,297.0>--<1395.0,296.0>>
    • bushouse: L<<1258.0,550.0>--<1021.0,552.0>>
    • logicalnot: L<<336.0,301.0>--<106.0,299.0>>
    • schoolhouse: L<<375.0,316.0>--<490.0,315.0>>
    • u1F3D9: L<<2637.0,287.0>--<2638.0,433.0>>
    • u1F3D9: L<<2783.0,451.0>--<2784.0,260.0>> and uni0394: L<<650.0,-25.0>--<35.0,-27.0>> [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 2 6 41 9 137 0
0% 1% 3% 21% 5% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@vv-monsalve vv-monsalve requested a review from m4rc1e April 22, 2021 17:44
@vv-monsalve
Copy link
Collaborator Author

Updated

Festive: Version 1.101; ttfautohint (v1.8.3) added


e6b5fb8: [gftools-packager] Festive: Version 1.101; ttfautohint (v1.8.3) added

7bb9d40: [gftools-packager] ofl/festive remove METADATA "source". #2587

@vv-monsalve
Copy link
Collaborator Author

Update done changing to a single empty line in OFL.

@gf-bot
Copy link

gf-bot commented Apr 23, 2021

Fontbakery report

Fontbakery version: 0.7.34

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---

There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.

If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure
call (rpc).

There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN Could not find ftxvalidator.

[7] Festive-Regular.ttf
🔥 FAIL: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329


🔥 FAIL: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


WARN: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • 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: percent Contours detected: 2 Expected: 5
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B2 Contours detected: 2 Expected: 1
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: Scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: dotbelowcomb Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 4 Expected: 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3
Glyph name: fl Contours detected: 4 Expected: 1 or 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: Wgrave Contours detected: 4 Expected: 2
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: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: fi Contours detected: 4 Expected: 3
Glyph name: fl Contours detected: 4 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: percent Contours detected: 2 Expected: 5
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Robert Leuschke is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • A.ss08: B<<715.0,468.5>-<742.0,528.0>-<779.0,565.0>>/B<<779.0,565.0>-<734.0,531.0>-<671.5,501.0>> = 7.926926682689609
    • A.ss08: B<<849.0,636.5>-<834.0,612.0>-<807.0,588.0>>/B<<807.0,588.0>-<824.0,597.0>-<843.0,597.0>> = 13.736268305622527
    • B.ss01: B<<657.5,245.5>-<630.0,145.0>-<621.0,52.0>>/B<<621.0,52.0>-<642.0,150.0>-<678.5,249.5>> = 6.567216925355868
    • B.ss05: B<<571.5,550.0>-<565.0,495.0>-<553.0,439.0>>/B<<553.0,439.0>-<569.0,474.0>-<590.0,516.5>> = 12.472414243589178
    • B.ss10: B<<287.5,245.5>-<260.0,145.0>-<251.0,52.0>>/B<<251.0,52.0>-<272.0,150.0>-<308.5,249.5>> = 6.567216925355868
    • B: B<<133.5,245.5>-<106.0,145.0>-<97.0,52.0>>/B<<97.0,52.0>-<118.0,150.0>-<154.5,249.5>> = 6.567216925355868
    • Beachball3: B<<842.5,304.5>-<862.0,278.0>-<863.0,252.0>>/B<<863.0,252.0>-<864.0,260.0>-<864.0,269.0>> = 9.32761451066755
    • Beachball4: B<<104.0,478.0>-<104.0,493.0>-<108.0,504.0>>/B<<108.0,504.0>-<89.0,464.0>-<75.0,415.5>> = 5.424611587048396
    • BrideGroom: B<<404.5,439.5>-<398.0,445.0>-<393.0,446.0>>/B<<393.0,446.0>-<398.0,444.0>-<405.0,442.5>> = 10.491477012331565
    • ChristmasTree4: B<<479.5,652.0>-<469.0,662.0>-<465.0,665.0>>/B<<465.0,665.0>-<467.0,664.0>-<468.5,665.0>> = 10.304846468766009 and 1490 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • Greetings14: L<<810.0,26.0>--<812.0,278.0>>
    • Snowflake4: L<<235.0,117.0>--<234.0,246.0>>
    • bushouse: L<<1241.0,297.0>--<1395.0,296.0>>
    • bushouse: L<<1258.0,550.0>--<1021.0,552.0>>
    • logicalnot: L<<336.0,301.0>--<106.0,299.0>>
    • schoolhouse: L<<375.0,316.0>--<490.0,315.0>>
    • u1F3D9: L<<2637.0,287.0>--<2638.0,433.0>>
    • u1F3D9: L<<2783.0,451.0>--<2784.0,260.0>> and uni0394: L<<650.0,-25.0>--<35.0,-27.0>> [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 2 6 41 9 137 0
0% 1% 3% 21% 5% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@gf-bot
Copy link

gf-bot commented Apr 26, 2021

Fontbakery report

Fontbakery version: 0.7.34

[1] Family checks
WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available?
--- Rationale ---

There's no reasonable (and legal) way to run the command `ftxvalidator` of the
Apple Font Tool Suite on a non-macOS machine. I.e. on GNU+Linux or Windows etc.

If Font Bakery is not running on an OSX machine, the machine running Font
Bakery could access `ftxvalidator` on OSX, e.g. via ssh or a remote procedure
call (rpc).

There's an ssh example implementation at:
https://github.com/googlefonts/fontbakery/blob/master/prebuilt/workarounds
/ftxvalidator/ssh-implementation/ftxvalidator


  • WARN Could not find ftxvalidator.

[7] Festive-Regular.ttf
🔥 FAIL: Are there caret positions declared for every ligature?
--- Rationale ---

All ligatures in a font must have corresponding caret (text cursor) positions
defined in the GDEF table, otherwhise, users may experience issues with caret
rendering.

If using GlyphsApp, ligature carets can be set directly on canvas by accessing
the `Glyph -> Set Anchors` menu option or by pressing the `Cmd+U` keyboard
shortcut.

If designing with UFOs, (as of Oct 2020) ligature carets are not yet compiled
by ufo2ft, and therefore will not build via FontMake. See
googlefonts/ufo2ft/issues/329


🔥 FAIL: Is there kerning info for non-ligated sequences?
--- Rationale ---

Fonts with ligatures should have kerning on the corresponding non-ligated
sequences for text where ligatures aren't used (eg
https://github.com/impallari/Raleway/issues/14).


WARN: METADATA.pb: Fontfamily is listed on Google Fonts API?
WARN: Check if each glyph has the recommended amount of contours.
--- Rationale ---

Visually QAing thousands of glyphs by hand is tiring. Most glyphs can only be
constructured in a handful of ways. This means a glyph's contour count will
only differ slightly amongst different fonts, e.g a 'g' could either be 2 or 3
contours, depending on whether its double story or single story.

However, a quotedbl should have 2 contours, unless the font belongs to a
display family.

This check currently does not cover variable fonts because there's plenty of
alternative ways of constructing glyphs with multiple outlines for each feature
in a VarFont. The expected contour count data for this check is currently
optimized for the typical construction of glyphs in static fonts.


  • 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: percent Contours detected: 2 Expected: 5
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B2 Contours detected: 2 Expected: 1
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: Scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: scedilla Contours detected: 3 Expected: 1 or 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Ycircumflex Contours detected: 3 Expected: 2
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: dotbelowcomb Contours detected: 2 Expected: 1
Glyph name: Wgrave Contours detected: 4 Expected: 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: fi Contours detected: 4 Expected: 1, 2 or 3
Glyph name: fl Contours detected: 4 Expected: 1 or 2
Glyph name: A Contours detected: 3 Expected: 2
Glyph name: Aacute Contours detected: 4 Expected: 3
Glyph name: Abreve Contours detected: 4 Expected: 3
Glyph name: Acircumflex Contours detected: 4 Expected: 3
Glyph name: Adieresis Contours detected: 5 Expected: 4
Glyph name: Agrave Contours detected: 4 Expected: 3
Glyph name: Amacron Contours detected: 4 Expected: 3
Glyph name: Aogonek Contours detected: 4 Expected: 2 or 3
Glyph name: Aring Contours detected: 5 Expected: 3 or 4
Glyph name: Atilde Contours detected: 4 Expected: 3
Glyph name: B Contours detected: 7 Expected: 2 or 3
Glyph name: Dcroat Contours detected: 3 Expected: 2
Glyph name: Edotaccent Contours detected: 3 Expected: 2
Glyph name: Eth Contours detected: 3 Expected: 2
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: G Contours detected: 3 Expected: 1
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: Ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: Omacron Contours detected: 2 Expected: 3
Glyph name: Oslash Contours detected: 6 Expected: 2 or 3
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: P Contours detected: 4 Expected: 1 or 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: R Contours detected: 4 Expected: 1 or 2
Glyph name: Racute Contours detected: 5 Expected: 3
Glyph name: Rcaron Contours detected: 5 Expected: 3
Glyph name: S Contours detected: 2 Expected: 1
Glyph name: Sacute Contours detected: 3 Expected: 2
Glyph name: Scaron Contours detected: 3 Expected: 2
Glyph name: Tbar Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 3 Expected: 1
Glyph name: Uacute Contours detected: 4 Expected: 2
Glyph name: Ucircumflex Contours detected: 4 Expected: 2
Glyph name: Udieresis Contours detected: 5 Expected: 3
Glyph name: Ugrave Contours detected: 4 Expected: 2
Glyph name: Uhorn Contours detected: 4 Expected: 1
Glyph name: Uhungarumlaut Contours detected: 5 Expected: 3
Glyph name: Umacron Contours detected: 4 Expected: 2
Glyph name: Uogonek Contours detected: 4 Expected: 1
Glyph name: Uring Contours detected: 5 Expected: 3
Glyph name: Utilde Contours detected: 4 Expected: 2
Glyph name: V Contours detected: 2 Expected: 1
Glyph name: W Contours detected: 3 Expected: 1 or 2
Glyph name: Wacute Contours detected: 4 Expected: 2
Glyph name: Wcircumflex Contours detected: 4 Expected: 2
Glyph name: Wdieresis Contours detected: 5 Expected: 3
Glyph name: Wgrave Contours detected: 4 Expected: 2
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: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Ygrave Contours detected: 3 Expected: 2
Glyph name: Z Contours detected: 3 Expected: 1
Glyph name: Zacute Contours detected: 4 Expected: 2
Glyph name: Zcaron Contours detected: 4 Expected: 2
Glyph name: Zdotaccent Contours detected: 5 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: abreve Contours detected: 2 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: amacron Contours detected: 2 Expected: 3
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: dcroat Contours detected: 3 Expected: 2
Glyph name: dotaccent Contours detected: 2 Expected: 1
Glyph name: edotaccent Contours detected: 4 Expected: 3
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: eogonek Contours detected: 3 Expected: 2
Glyph name: f Contours detected: 3 Expected: 1
Glyph name: fi Contours detected: 4 Expected: 3
Glyph name: fl Contours detected: 4 Expected: 2
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: l Contours detected: 2 Expected: 1
Glyph name: lacute Contours detected: 3 Expected: 2
Glyph name: lcaron Contours detected: 3 Expected: 2
Glyph name: lslash Contours detected: 2 Expected: 1
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: oe Contours detected: 2 Expected: 3
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: ohorn Contours detected: 1 Expected: 2
Glyph name: ohungarumlaut Contours detected: 3 Expected: 4
Glyph name: omacron Contours detected: 2 Expected: 3
Glyph name: onehalf Contours detected: 4 Expected: 3
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: percent Contours detected: 2 Expected: 5
Glyph name: perthousand Contours detected: 3 Expected: 6 or 7
Glyph name: q Contours detected: 3 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: racute Contours detected: 3 Expected: 2
Glyph name: rcaron Contours detected: 3 Expected: 2
Glyph name: s Contours detected: 2 Expected: 1
Glyph name: sacute Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2
Glyph name: t Contours detected: 3 Expected: 1
Glyph name: tbar Contours detected: 4 Expected: 1
Glyph name: tcaron Contours detected: 4 Expected: 2
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: two Contours detected: 2 Expected: 1
Glyph name: uhorn Contours detected: 2 Expected: 1
Glyph name: uni0122 Contours detected: 4 Expected: 2
Glyph name: uni013C Contours detected: 3 Expected: 2
Glyph name: uni0156 Contours detected: 5 Expected: 3
Glyph name: uni0157 Contours detected: 3 Expected: 2
Glyph name: uni0163 Contours detected: 4 Expected: 1 or 2
Glyph name: uni0307 Contours detected: 2 Expected: 1
Glyph name: uni1E9E Contours detected: 4 Expected: 1
Glyph name: uni1EA0 Contours detected: 5 Expected: 3
Glyph name: uni1EA2 Contours detected: 4 Expected: 3
Glyph name: uni1EA3 Contours detected: 2 Expected: 3
Glyph name: uni1EA4 Contours detected: 5 Expected: 4
Glyph name: uni1EA5 Contours detected: 3 Expected: 4
Glyph name: uni1EA6 Contours detected: 5 Expected: 4
Glyph name: uni1EA7 Contours detected: 3 Expected: 4
Glyph name: uni1EA8 Contours detected: 5 Expected: 4
Glyph name: uni1EA9 Contours detected: 3 Expected: 4
Glyph name: uni1EAA Contours detected: 5 Expected: 4
Glyph name: uni1EAB Contours detected: 3 Expected: 4
Glyph name: uni1EAC Contours detected: 6 Expected: 4
Glyph name: uni1EAE Contours detected: 5 Expected: 4
Glyph name: uni1EAF Contours detected: 3 Expected: 4
Glyph name: uni1EB0 Contours detected: 5 Expected: 4
Glyph name: uni1EB1 Contours detected: 3 Expected: 4
Glyph name: uni1EB2 Contours detected: 5 Expected: 4
Glyph name: uni1EB3 Contours detected: 3 Expected: 4
Glyph name: uni1EB4 Contours detected: 5 Expected: 4
Glyph name: uni1EB5 Contours detected: 3 Expected: 4
Glyph name: uni1EB6 Contours detected: 6 Expected: 4
Glyph name: uni1EB8 Contours detected: 3 Expected: 2
Glyph name: uni1EB9 Contours detected: 4 Expected: 3
Glyph name: uni1EC6 Contours detected: 4 Expected: 3
Glyph name: uni1EC7 Contours detected: 5 Expected: 4
Glyph name: uni1ECA Contours detected: 3 Expected: 2
Glyph name: uni1ECB Contours detected: 4 Expected: 3
Glyph name: uni1ECE Contours detected: 2 Expected: 3
Glyph name: uni1ECF Contours detected: 2 Expected: 3
Glyph name: uni1ED0 Contours detected: 3 Expected: 4
Glyph name: uni1ED1 Contours detected: 3 Expected: 4
Glyph name: uni1ED2 Contours detected: 3 Expected: 4
Glyph name: uni1ED3 Contours detected: 3 Expected: 4
Glyph name: uni1ED4 Contours detected: 3 Expected: 4
Glyph name: uni1ED5 Contours detected: 3 Expected: 4
Glyph name: uni1ED6 Contours detected: 3 Expected: 4
Glyph name: uni1ED7 Contours detected: 3 Expected: 4
Glyph name: uni1EDB Contours detected: 2 Expected: 3
Glyph name: uni1EDD Contours detected: 2 Expected: 3
Glyph name: uni1EDF Contours detected: 2 Expected: 3
Glyph name: uni1EE1 Contours detected: 2 Expected: 3
Glyph name: uni1EE4 Contours detected: 5 Expected: 2
Glyph name: uni1EE5 Contours detected: 3 Expected: 2
Glyph name: uni1EE6 Contours detected: 4 Expected: 2
Glyph name: uni1EE8 Contours detected: 5 Expected: 2
Glyph name: uni1EE9 Contours detected: 3 Expected: 2
Glyph name: uni1EEA Contours detected: 5 Expected: 2
Glyph name: uni1EEB Contours detected: 3 Expected: 2
Glyph name: uni1EEC Contours detected: 5 Expected: 2
Glyph name: uni1EED Contours detected: 3 Expected: 2
Glyph name: uni1EEE Contours detected: 5 Expected: 2
Glyph name: uni1EEF Contours detected: 3 Expected: 2
Glyph name: uni1EF0 Contours detected: 6 Expected: 2
Glyph name: uni1EF1 Contours detected: 4 Expected: 2
Glyph name: uni1EF4 Contours detected: 4 Expected: 2
Glyph name: uni1EF5 Contours detected: 3 Expected: 2
Glyph name: uni1EF6 Contours detected: 3 Expected: 2
Glyph name: uni1EF8 Contours detected: 3 Expected: 2
Glyph name: uogonek Contours detected: 2 Expected: 1
Glyph name: zdotaccent Contours detected: 3 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: METADATA.pb: Designer is listed with the correct name on the Google Fonts catalog of designers?
  • com.google.fonts/check/metadata/designer_profiles

  • WARN It seems that Robert Leuschke is still not listed on the designers catalog. Please submit a photo and a link to a webpage where people can learn more about the work of this designer/typefoundry. [code: profile-not-found]

WARN: Do outlines contain any jaggy segments?
--- Rationale ---

This test heuristically detects outline segments which form a particularly
small angle, indicative of an outline error. This may cause false positives in
cases such as extreme ink traps, so should be regarded as advisory and backed
up by manual inspection.


  • WARN The following glyphs have jaggy segments:
    • A.ss08: B<<715.0,468.5>-<742.0,528.0>-<779.0,565.0>>/B<<779.0,565.0>-<734.0,531.0>-<671.5,501.0>> = 7.926926682689609
    • A.ss08: B<<849.0,636.5>-<834.0,612.0>-<807.0,588.0>>/B<<807.0,588.0>-<824.0,597.0>-<843.0,597.0>> = 13.736268305622527
    • B.ss01: B<<657.5,245.5>-<630.0,145.0>-<621.0,52.0>>/B<<621.0,52.0>-<642.0,150.0>-<678.5,249.5>> = 6.567216925355868
    • B.ss05: B<<571.5,550.0>-<565.0,495.0>-<553.0,439.0>>/B<<553.0,439.0>-<569.0,474.0>-<590.0,516.5>> = 12.472414243589178
    • B.ss10: B<<287.5,245.5>-<260.0,145.0>-<251.0,52.0>>/B<<251.0,52.0>-<272.0,150.0>-<308.5,249.5>> = 6.567216925355868
    • B: B<<133.5,245.5>-<106.0,145.0>-<97.0,52.0>>/B<<97.0,52.0>-<118.0,150.0>-<154.5,249.5>> = 6.567216925355868
    • Beachball3: B<<842.5,304.5>-<862.0,278.0>-<863.0,252.0>>/B<<863.0,252.0>-<864.0,260.0>-<864.0,269.0>> = 9.32761451066755
    • Beachball4: B<<104.0,478.0>-<104.0,493.0>-<108.0,504.0>>/B<<108.0,504.0>-<89.0,464.0>-<75.0,415.5>> = 5.424611587048396
    • BrideGroom: B<<404.5,439.5>-<398.0,445.0>-<393.0,446.0>>/B<<393.0,446.0>-<398.0,444.0>-<405.0,442.5>> = 10.491477012331565
    • ChristmasTree4: B<<479.5,652.0>-<469.0,662.0>-<465.0,665.0>>/B<<465.0,665.0>-<467.0,664.0>-<468.5,665.0>> = 10.304846468766009 and 1490 more. [code: found-jaggy-segments]
WARN: Do outlines contain any semi-vertical or semi-horizontal lines?
--- Rationale ---

This test detects line segments which are nearly, but not quite, exactly
horizontal or vertical. Sometimes such lines are created by design, but often
they are indicative of a design error.

This test is disabled for italic styles, which often contain nearly-upright
lines.


  • WARN The following glyphs have semi-vertical/semi-horizontal lines:
    • Greetings14: L<<810.0,26.0>--<812.0,278.0>>
    • Snowflake4: L<<235.0,117.0>--<234.0,246.0>>
    • bushouse: L<<1241.0,297.0>--<1395.0,296.0>>
    • bushouse: L<<1258.0,550.0>--<1021.0,552.0>>
    • logicalnot: L<<336.0,301.0>--<106.0,299.0>>
    • schoolhouse: L<<375.0,316.0>--<490.0,315.0>>
    • u1F3D9: L<<2637.0,287.0>--<2638.0,433.0>>
    • u1F3D9: L<<2783.0,451.0>--<2784.0,260.0>> and uni0394: L<<650.0,-25.0>--<35.0,-27.0>> [code: found-semi-vertical]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 2 6 41 9 137 0
0% 1% 3% 21% 5% 70% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@m4rc1e m4rc1e merged commit 7d43ecc into main Apr 26, 2021
@m4rc1e m4rc1e deleted the gftools_packager_ofl_festive branch April 26, 2021 08:25
@RosaWagner RosaWagner added --- Live Font is visible on API and removed --- to_production labels Jul 8, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
--- Live Font is visible on API I New Font
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add Festive
4 participants