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

Stick: Version 1.100 added #3481

Merged
merged 3 commits into from
Aug 5, 2021
Merged

Stick: Version 1.100 added #3481

merged 3 commits into from
Aug 5, 2021

Conversation

aaronbell
Copy link
Collaborator

2d0856d: [gftools-packager] Stick: Version 1.100 added

@aaronbell
Copy link
Collaborator Author

Includes small improvements related to vert typesetting, and hinting removed.

@aaronbell aaronbell added - Ready for Review II CJK Chinese, Japanese, Korean scripts I Font Upgrade labels Jun 8, 2021
@aaronbell aaronbell linked an issue Jun 8, 2021 that may be closed by this pull request
@aaronbell aaronbell force-pushed the gftools_packager_ofl_stick branch from 620ab68 to f58ca0d Compare July 28, 2021 20:07
@aaronbell
Copy link
Collaborator Author

Fontbakery report

Fontbakery version: 0.7.16

[2] Family checks
🔥 FAIL: Do we have the latest version of FontBakery installed?
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 ftxvalidator is not available.

[15] Stick-Regular.ttf
🔥 FAIL: Check copyright namerecords match license file.
  • com.google.fonts/check/name/license

  • 🔥 FAIL License file OFL.txt exists but NameID 13 (LICENSE DESCRIPTION) value on platform 3 (WINDOWS) is not specified for that. Value was: "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://scripts.sil.org/OFL" Must be changed to "This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: http://scripts.sil.org/OFL" [code: wrong]

🔥 FAIL: License URL matches License text on name table?
🔥 FAIL: METADATA.pb font.name value should be same as the family name declared on the name table.
🔥 FAIL: METADATA.pb font.name field contains font name in right format?
🔥 FAIL: METADATA.pb font.full_name field contains font name in right format?
🔥 FAIL: METADATA.pb font.post_script_name field contains font name in right format?
🔥 FAIL: Check name table: FONT_FAMILY_NAME entries.
--- Rationale ---

Checks that the family name infered from the font filename matches the string
at nameID 1 (NAMEID_FONT_FAMILY_NAME) if it conforms to RIBBI and otherwise
checks that nameID 1 is the family name + the style name.


  • 🔥 FAIL Entry [FONT_FAMILY_NAME(1):WINDOWS(3)] on the "name" table: Expected "Stick" but got "ステッキ". [code: mismatch]
🔥 FAIL: Font enables smart dropout control in "prep" table instructions?
--- Rationale ---

This setup is meant to ensure consistent rendering quality for fonts across all
devices (with different rendering/hinting capabilities).

Below is the snippet of instructions we expect to see in the fonts:
B8 01 FF    PUSHW 0x01FF
85          SCANCTRL (unconditinally turn on
                      dropout control mode)
B0 04       PUSHB 0x04
8D          SCANTYPE (enable smart dropout control)

"Smart dropout control" means activating rules 1, 2 and 5:
Rule 1: If a pixel's center falls within the glyph outline,
        that pixel is turned on.
Rule 2: If a contour falls exactly on a pixel's center,
        that pixel is turned on.
Rule 5: If a scan line between two adjacent pixel centers
        (either vertical or horizontal) is intersected
        by both an on-Transition contour and an off-Transition
        contour and neither of the pixels was already turned on
        by rules 1 and 2, turn on the pixel which is closer to
        the midpoint between the on-Transition contour and
        off-Transition contour. This is "Smart" dropout control.

For more detailed info (such as other rules not enabled in this snippet),
please refer to the TrueType Instruction Set documentation.


  • 🔥 FAIL The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script. [code: lacks-smart-dropout]
🔥 FAIL: Check if the vertical metrics of a family are similar to the same family hosted on Google Fonts.
--- Rationale ---

If the family already exists on Google Fonts, we need to ensure that the
checked family's vertical metrics are similar. This check will test the
following schema which was outlined in Fontbakery issue #1162 [1]:

- The family should visually have the same vertical metrics as the
  Regular style hosted on Google Fonts.
- If the family on Google Fonts has differing hhea and typo metrics,
  the family being checked should use the typo metrics for both the
  hhea and typo entries.
- If the family on Google Fonts has use typo metrics not enabled and the
  family being checked has it enabled, the hhea and typo metrics
  should use the family on Google Fonts winAscent and winDescent values.
- If the upms differ, the values must be scaled so the visual appearance
  is the same.

[1] https://github.com/googlefonts/fontbakery/issues/1162


  • 🔥 FAIL Stick Regular: hhea Ascender is 1160 when it should be 880 [code: bad-hhea-ascender]
  • 🔥 FAIL Stick Regular: hhea Descender is -288 when it should be -120 [code: bad-hhea-descender]
🔥 FAIL: Checking OS/2 Metrics match hhea Metrics.
--- Rationale ---

When OS/2 and hhea vertical metrics match, the same linespacing results on
macOS, GNU+Linux and Windows. Unfortunately as of 2018, Google Fonts has
released many fonts with vertical metrics that don't match in this way. When we
fix this issue in these existing families, we will create a visible change in
line/paragraph layout for either Windows or macOS users, which will upset some
of them.

But we have a duty to fix broken stuff, and inconsistent paragraph layout is
unacceptably broken when it is possible to avoid it.

If users complain and prefer the old broken version, they have the freedom to
take care of their own situation.


  • 🔥 FAIL OS/2 sTypoAscender (880) and hhea ascent (1160) must be equal. [code: ascender]
WARN: Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
--- Rationale ---

Traditionally version 0 'gasp' tables were set so that font sizes below 8 ppem
had no grid fitting but did have antialiasing. From 9-16 ppem, just grid
fitting. And fonts above 17ppem had both antialiasing and grid fitting toggled
on. The use of accelerated graphics cards and higher resolution screens make
this approach obsolete. Microsoft's DirectWrite pushed this even further with
much improved rendering built into the OS and apps.

In this scenario it makes sense to simply toggle all 4 flags ON for all font
sizes.


  • WARN The gasp range 0xFFFF value 0x0A should be set to 0x0F. [code: unset-flags]
WARN: Stricter unitsPerEm criteria for Google Fonts.
--- Rationale ---

Even though the OpenType spec allows unitsPerEm to be any value between 16 and
16384, the Google Fonts project aims at a narrower set of reasonable values.

The spec suggests usage of powers of two in order to get some performance
improvements on legacy renderers, so those values are acceptable.

But value of 500 or 1000 are also acceptable, with the added benefit that it
makes upm math easier for designers, while the performance hit of not using a
power of two is most likely negligible nowadays.

Another acceptable value is 2000. Since TT outlines are all integers (no
floats), then instances in a VF suffer rounding compromises, and therefore a
1000 UPM is to small because it forces too many such compromises.

Therefore 2000 is a good 'new VF standard', because 2000 is a simple 2x
conversion from existing fonts drawn on a 1000 UPM, and anyone who knows what
10 units can do for 1000 UPM will know what 20 units does too.

Additionally, values above 2048 would result in filesize increases with not
much added benefit.


  • WARN Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations. [code: legacy-value]
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: zero Contours detected: 1 Expected: 2 or 3
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: five Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: E Contours detected: 3 Expected: 1
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: N Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: T Contours detected: 2 Expected: 1
Glyph name: U Contours detected: 2 Expected: 1
Glyph name: X Contours detected: 2 Expected: 1
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: Z Contours detected: 2 Expected: 1
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: b Contours detected: 1 Expected: 2
Glyph name: d Contours detected: 1 Expected: 2
Glyph name: e Contours detected: 1 Expected: 2
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: m Contours detected: 2 Expected: 1
Glyph name: n 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: 1 Expected: 2
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: u Contours detected: 2 Expected: 1
Glyph name: w Contours detected: 2 Expected: 1
Glyph name: y Contours detected: 2 Expected: 1
Glyph name: section Contours detected: 1 Expected: 2
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni00B3 Contours detected: 2 Expected: 1
Glyph name: uni00B5 Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3
Glyph name: AE Contours detected: 4 Expected: 2
Glyph name: Egrave Contours detected: 4 Expected: 2
Glyph name: Eacute Contours detected: 4 Expected: 2
Glyph name: Ecircumflex Contours detected: 4 Expected: 2
Glyph name: Edieresis Contours detected: 5 Expected: 3
Glyph name: Ntilde 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: Ugrave Contours detected: 3 Expected: 2
Glyph name: Uacute Contours detected: 3 Expected: 2
Glyph name: Ucircumflex Contours detected: 3 Expected: 2
Glyph name: Udieresis Contours detected: 4 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: ae Contours detected: 1 Expected: 3
Glyph name: egrave Contours detected: 2 Expected: 3
Glyph name: eacute Contours detected: 2 Expected: 3
Glyph name: ecircumflex Contours detected: 2 Expected: 3
Glyph name: edieresis Contours detected: 3 Expected: 4
Glyph name: eth Contours detected: 1 Expected: 2
Glyph name: ntilde 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: 2 Expected: 3
Glyph name: ugrave Contours detected: 3 Expected: 2
Glyph name: uacute Contours detected: 3 Expected: 2
Glyph name: ucircumflex Contours detected: 3 Expected: 2
Glyph name: udieresis Contours detected: 4 Expected: 3
Glyph name: yacute Contours detected: 3 Expected: 2
Glyph name: thorn Contours detected: 1 Expected: 2
Glyph name: ydieresis Contours detected: 4 Expected: 3
Glyph name: uni210A Contours detected: 3 Expected: 2
Glyph name: uni2113 Contours detected: 1 Expected: 2
Glyph name: trademark Contours detected: 4 Expected: 2
Glyph name: OE Contours detected: 4 Expected: 2
Glyph name: oe Contours detected: 1 Expected: 3
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: Zcaron Contours detected: 3 Expected: 2
Glyph name: partialdiff.full Contours detected: 1 Expected: 2
Glyph name: summation.full Contours detected: 2 Expected: 1
Glyph name: Gamma Contours detected: 2 Expected: 1
Glyph name: uni0394 Contours detected: 1 Expected: 2
Glyph name: Epsilon Contours detected: 3 Expected: 1
Glyph name: Zeta Contours detected: 2 Expected: 1
Glyph name: Eta Contours detected: 2 Expected: 1
Glyph name: Theta Contours detected: 2 Expected: 3
Glyph name: Kappa Contours detected: 2 Expected: 1
Glyph name: Mu Contours detected: 2 Expected: 1
Glyph name: Nu Contours detected: 2 Expected: 1
Glyph name: Omicron Contours detected: 1 Expected: 2
Glyph name: Pi Contours detected: 2 Expected: 1
Glyph name: Sigma Contours detected: 2 Expected: 1
Glyph name: Tau Contours detected: 2 Expected: 1
Glyph name: Upsilon Contours detected: 2 Expected: 1
Glyph name: Phi Contours detected: 1 Expected: 3
Glyph name: Chi Contours detected: 2 Expected: 1
Glyph name: Psi Contours detected: 2 Expected: 1
Glyph name: uni03A9 Contours detected: 2 Expected: 1
Glyph name: alpha Contours detected: 1 Expected: 2
Glyph name: delta Contours detected: 1 Expected: 2
Glyph name: epsilon Contours detected: 2 Expected: 1
Glyph name: zeta Contours detected: 2 Expected: 1
Glyph name: eta Contours detected: 2 Expected: 1
Glyph name: theta Contours detected: 1 Expected: 3
Glyph name: lambda Contours detected: 2 Expected: 1
Glyph name: uni03BC Contours detected: 2 Expected: 1
Glyph name: xi Contours detected: 2 Expected: 1
Glyph name: omicron Contours detected: 1 Expected: 2
Glyph name: rho Contours detected: 1 Expected: 2
Glyph name: sigma Contours detected: 1 Expected: 2
Glyph name: upsilon Contours detected: 2 Expected: 1
Glyph name: phi Contours detected: 1 Expected: 2 or 3
Glyph name: psi Contours detected: 2 Expected: 1
Glyph name: omega Contours detected: 2 Expected: 1
Glyph name: uni0401 Contours detected: 5 Expected: 3
Glyph name: uni0413 Contours detected: 2 Expected: 1
Glyph name: uni0414 Contours detected: 1 Expected: 2
Glyph name: uni0415 Contours detected: 3 Expected: 1
Glyph name: uni0416 Contours detected: 3 Expected: 1
Glyph name: uni0417 Contours detected: 2 Expected: 1
Glyph name: uni0418 Contours detected: 2 Expected: 1
Glyph name: uni0419 Contours detected: 3 Expected: 2
Glyph name: uni041A Contours detected: 2 Expected: 1
Glyph name: uni041B Contours detected: 2 Expected: 1
Glyph name: uni041C Contours detected: 2 Expected: 1
Glyph name: uni041D Contours detected: 2 Expected: 1
Glyph name: uni041E Contours detected: 1 Expected: 2
Glyph name: uni041F Contours detected: 2 Expected: 1
Glyph name: uni0422 Contours detected: 2 Expected: 1
Glyph name: uni0423 Contours detected: 2 Expected: 1
Glyph name: uni0424 Contours detected: 1 Expected: 3
Glyph name: uni0425 Contours detected: 2 Expected: 1
Glyph name: uni0426 Contours detected: 2 Expected: 1
Glyph name: uni0427 Contours detected: 2 Expected: 1
Glyph name: uni0428 Contours detected: 2 Expected: 1
Glyph name: uni0429 Contours detected: 2 Expected: 1
Glyph name: uni042A Contours detected: 1 Expected: 2
Glyph name: uni042B Contours detected: 2 Expected: 3
Glyph name: uni042C Contours detected: 1 Expected: 2
Glyph name: uni042D Contours detected: 2 Expected: 1
Glyph name: uni042E Contours detected: 1 Expected: 2
Glyph name: uni0430 Contours detected: 1 Expected: 2
Glyph name: uni0431 Contours detected: 1 Expected: 2
Glyph name: uni0432 Contours detected: 2 Expected: 3
Glyph name: uni0433 Contours detected: 2 Expected: 1
Glyph name: uni0434 Contours detected: 1 Expected: 2
Glyph name: uni0435 Contours detected: 1 Expected: 2
Glyph name: uni0436 Contours detected: 3 Expected: 1
Glyph name: uni0437 Contours detected: 2 Expected: 1
Glyph name: uni0438 Contours detected: 2 Expected: 1
Glyph name: uni0439 Contours detected: 3 Expected: 2
Glyph name: uni043A Contours detected: 2 Expected: 1
Glyph name: uni043B Contours detected: 2 Expected: 1
Glyph name: uni043C Contours detected: 2 Expected: 1
Glyph name: uni043D Contours detected: 2 Expected: 1
Glyph name: uni043E Contours detected: 1 Expected: 2
Glyph name: uni043F Contours detected: 2 Expected: 1
Glyph name: uni0440 Contours detected: 1 Expected: 2
Glyph name: uni0442 Contours detected: 2 Expected: 1
Glyph name: uni0443 Contours detected: 2 Expected: 1
Glyph name: uni0444 Contours detected: 1 Expected: 3
Glyph name: uni0446 Contours detected: 2 Expected: 1
Glyph name: uni0447 Contours detected: 2 Expected: 1
Glyph name: uni0448 Contours detected: 2 Expected: 1
Glyph name: uni0449 Contours detected: 2 Expected: 1
Glyph name: uni044A Contours detected: 1 Expected: 2
Glyph name: uni044B Contours detected: 2 Expected: 3
Glyph name: uni044C Contours detected: 1 Expected: 2
Glyph name: uni044D Contours detected: 2 Expected: 1
Glyph name: uni044E Contours detected: 1 Expected: 2
Glyph name: uni0451 Contours detected: 3 Expected: 4
Glyph name: uni255E Contours detected: 1 Expected: 2
Glyph name: uni2561 Contours detected: 1 Expected: 2
Glyph name: Q Contours detected: 1 Expected: 2
Glyph name: uni043C Contours detected: 2 Expected: 1
Glyph name: Ucircumflex Contours detected: 3 Expected: 2
Glyph name: section Contours detected: 1 Expected: 2
Glyph name: Upsilon Contours detected: 2 Expected: 1
Glyph name: Zcaron Contours detected: 3 Expected: 2
Glyph name: E Contours detected: 3 Expected: 1
Glyph name: uni0433 Contours detected: 2 Expected: 1
Glyph name: five Contours detected: 2 Expected: 1
Glyph name: uni0415 Contours detected: 3 Expected: 1
Glyph name: uni0401 Contours detected: 5 Expected: 3
Glyph name: OE Contours detected: 4 Expected: 2
Glyph name: H Contours detected: 2 Expected: 1
Glyph name: lambda Contours detected: 2 Expected: 1
Glyph name: uni0439 Contours detected: 3 Expected: 2
Glyph name: uni041B Contours detected: 2 Expected: 1
Glyph name: uni041D Contours detected: 2 Expected: 1
Glyph name: aacute Contours detected: 2 Expected: 3
Glyph name: Ocircumflex Contours detected: 2 Expected: 3
Glyph name: Ugrave Contours detected: 3 Expected: 2
Glyph name: uni044A Contours detected: 1 Expected: 2
Glyph name: Pi Contours detected: 2 Expected: 1
Glyph name: Gamma Contours detected: 2 Expected: 1
Glyph name: uni0424 Contours detected: 1 Expected: 3
Glyph name: Zeta Contours detected: 2 Expected: 1
Glyph name: Eacute Contours detected: 4 Expected: 2
Glyph name: oslash Contours detected: 2 Expected: 3
Glyph name: uni0438 Contours detected: 2 Expected: 1
Glyph name: uni0430 Contours detected: 1 Expected: 2
Glyph name: uni03BC Contours detected: 2 Expected: 1
Glyph name: uni042E Contours detected: 1 Expected: 2
Glyph name: y Contours detected: 2 Expected: 1
Glyph name: uni041C Contours detected: 2 Expected: 1
Glyph name: Phi Contours detected: 1 Expected: 3
Glyph name: uni0422 Contours detected: 2 Expected: 1
Glyph name: uni0416 Contours detected: 3 Expected: 1
Glyph name: uni0414 Contours detected: 1 Expected: 2
Glyph name: Omicron Contours detected: 1 Expected: 2
Glyph name: w Contours detected: 2 Expected: 1
Glyph name: Theta Contours detected: 2 Expected: 3
Glyph name: q Contours detected: 1 Expected: 2
Glyph name: zero Contours detected: 1 Expected: 2 or 3
Glyph name: uni041A Contours detected: 2 Expected: 1
Glyph name: uni0434 Contours detected: 1 Expected: 2
Glyph name: zeta Contours detected: 2 Expected: 1
Glyph name: Egrave Contours detected: 4 Expected: 2
Glyph name: ordfeminine Contours detected: 1 Expected: 2 or 3
Glyph name: uni0443 Contours detected: 2 Expected: 1
Glyph name: uni043D Contours detected: 2 Expected: 1
Glyph name: F Contours detected: 3 Expected: 1
Glyph name: uni042D Contours detected: 2 Expected: 1
Glyph name: uni044E Contours detected: 1 Expected: 2
Glyph name: agrave Contours detected: 2 Expected: 3
Glyph name: Sigma Contours detected: 2 Expected: 1
Glyph name: Oacute Contours detected: 2 Expected: 3
Glyph name: Uacute Contours detected: 3 Expected: 2
Glyph name: ograve Contours detected: 2 Expected: 3
Glyph name: uni0437 Contours detected: 2 Expected: 1
Glyph name: uni042A Contours detected: 1 Expected: 2
Glyph name: uni0440 Contours detected: 1 Expected: 2
Glyph name: uni043B Contours detected: 2 Expected: 1
Glyph name: uni0417 Contours detected: 2 Expected: 1
Glyph name: N Contours detected: 2 Expected: 1
Glyph name: udieresis Contours detected: 4 Expected: 3
Glyph name: uni0431 Contours detected: 1 Expected: 2
Glyph name: theta Contours detected: 1 Expected: 3
Glyph name: oe Contours detected: 1 Expected: 3
Glyph name: Odieresis Contours detected: 3 Expected: 4
Glyph name: egrave Contours detected: 2 Expected: 3
Glyph name: m Contours detected: 2 Expected: 1
Glyph name: uni0436 Contours detected: 3 Expected: 1
Glyph name: Otilde Contours detected: 2 Expected: 3
Glyph name: uni0429 Contours detected: 2 Expected: 1
Glyph name: otilde Contours detected: 2 Expected: 3
Glyph name: uni0427 Contours detected: 2 Expected: 1
Glyph name: uni0423 Contours detected: 2 Expected: 1
Glyph name: r Contours detected: 2 Expected: 1
Glyph name: uni03A9 Contours detected: 2 Expected: 1
Glyph name: edieresis Contours detected: 3 Expected: 4
Glyph name: trademark Contours detected: 4 Expected: 2
Glyph name: ydieresis Contours detected: 4 Expected: 3
Glyph name: uni043A Contours detected: 2 Expected: 1
Glyph name: Chi Contours detected: 2 Expected: 1
Glyph name: three Contours detected: 2 Expected: 1
Glyph name: uni042B Contours detected: 2 Expected: 3
Glyph name: b Contours detected: 1 Expected: 2
Glyph name: d Contours detected: 1 Expected: 2
Glyph name: uni043F Contours detected: 2 Expected: 1
Glyph name: uni0418 Contours detected: 2 Expected: 1
Glyph name: rho Contours detected: 1 Expected: 2
Glyph name: uni043E Contours detected: 1 Expected: 2
Glyph name: ntilde Contours detected: 3 Expected: 2
Glyph name: Edieresis Contours detected: 5 Expected: 3
Glyph name: uni0394 Contours detected: 1 Expected: 2
Glyph name: Eta Contours detected: 2 Expected: 1
Glyph name: ugrave Contours detected: 3 Expected: 2
Glyph name: Psi Contours detected: 2 Expected: 1
Glyph name: O Contours detected: 1 Expected: 2
Glyph name: X Contours detected: 2 Expected: 1
Glyph name: uni0448 Contours detected: 2 Expected: 1
Glyph name: Udieresis Contours detected: 4 Expected: 3
Glyph name: oacute Contours detected: 2 Expected: 3
Glyph name: thorn Contours detected: 1 Expected: 2
Glyph name: adieresis Contours detected: 3 Expected: 4
Glyph name: delta Contours detected: 1 Expected: 2
Glyph name: epsilon Contours detected: 2 Expected: 1
Glyph name: uni0419 Contours detected: 3 Expected: 2
Glyph name: uni041E Contours detected: 1 Expected: 2
Glyph name: Epsilon Contours detected: 3 Expected: 1
Glyph name: uni0444 Contours detected: 1 Expected: 3
Glyph name: Y Contours detected: 2 Expected: 1
Glyph name: uni0447 Contours detected: 2 Expected: 1
Glyph name: uni0426 Contours detected: 2 Expected: 1
Glyph name: uni042C Contours detected: 1 Expected: 2
Glyph name: uacute Contours detected: 3 Expected: 2
Glyph name: Yacute Contours detected: 3 Expected: 2
Glyph name: uni2113 Contours detected: 1 Expected: 2
Glyph name: eta Contours detected: 2 Expected: 1
Glyph name: uni0451 Contours detected: 3 Expected: 4
Glyph name: Mu Contours detected: 2 Expected: 1
Glyph name: Tau Contours detected: 2 Expected: 1
Glyph name: Ograve Contours detected: 2 Expected: 3
Glyph name: phi Contours detected: 1 Expected: 2 or 3
Glyph name: uni044B Contours detected: 2 Expected: 3
Glyph name: h Contours detected: 2 Expected: 1
Glyph name: uni041F Contours detected: 2 Expected: 1
Glyph name: ocircumflex Contours detected: 2 Expected: 3
Glyph name: uni044D Contours detected: 2 Expected: 1
Glyph name: eight Contours detected: 2 Expected: 3
Glyph name: ecircumflex Contours detected: 2 Expected: 3
Glyph name: yacute Contours detected: 3 Expected: 2
Glyph name: a Contours detected: 1 Expected: 2
Glyph name: n Contours detected: 2 Expected: 1
Glyph name: omicron Contours detected: 1 Expected: 2
Glyph name: uni0413 Contours detected: 2 Expected: 1
Glyph name: uni210A Contours detected: 3 Expected: 2
Glyph name: ucircumflex Contours detected: 3 Expected: 2
Glyph name: omega Contours detected: 2 Expected: 1
Glyph name: eth Contours detected: 1 Expected: 2
Glyph name: psi Contours detected: 2 Expected: 1
Glyph name: uni0435 Contours detected: 1 Expected: 2
Glyph name: p Contours detected: 1 Expected: 2
Glyph name: uni0428 Contours detected: 2 Expected: 1
Glyph name: M Contours detected: 2 Expected: 1
Glyph name: Ydieresis Contours detected: 4 Expected: 3
Glyph name: acircumflex Contours detected: 2 Expected: 3
Glyph name: upsilon Contours detected: 2 Expected: 1
Glyph name: Kappa Contours detected: 2 Expected: 1
Glyph name: at Contours detected: 1 Expected: 2
Glyph name: atilde Contours detected: 2 Expected: 3
Glyph name: Z Contours detected: 2 Expected: 1
Glyph name: e Contours detected: 1 Expected: 2
Glyph name: o Contours detected: 1 Expected: 2
Glyph name: uni0425 Contours detected: 2 Expected: 1
Glyph name: uni0432 Contours detected: 2 Expected: 3
Glyph name: xi Contours detected: 2 Expected: 1
Glyph name: uni0442 Contours detected: 2 Expected: 1
Glyph name: uni0449 Contours detected: 2 Expected: 1
Glyph name: uni0446 Contours detected: 2 Expected: 1
Glyph name: aring Contours detected: 3 Expected: 4
Glyph name: germandbls Contours detected: 2 Expected: 1
Glyph name: uni044C Contours detected: 1 Expected: 2
Glyph name: Nu Contours detected: 2 Expected: 1
Glyph name: alpha Contours detected: 1 Expected: 2
Glyph name: Ntilde Contours detected: 3 Expected: 2
Glyph name: Ecircumflex Contours detected: 4 Expected: 2
Glyph name: odieresis Contours detected: 3 Expected: 4
Glyph name: U Contours detected: 2 Expected: 1
Glyph name: uni00B5 Contours detected: 2 Expected: 1
Glyph name: T Contours detected: 2 Expected: 1
Glyph name: sigma Contours detected: 1 Expected: 2
Glyph name: ae Contours detected: 1 Expected: 3
Glyph name: eacute Contours detected: 2 Expected: 3
Glyph name: AE Contours detected: 4 Expected: 2
Glyph name: u Contours detected: 2 Expected: 1
Glyph name: ordmasculine Contours detected: 1 Expected: 2 or 3 [code: contour-count]

WARN: 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.


  • WARN This font lacks caret position values for ligature glyphs on its GDEF table. [code: lacks-caret-pos]
WARN: 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 GPOS table lacks kerning info for the following non-ligated sequences:

    • f + i
    • i + l

    [code: lacks-kern-info]


Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 11 6 27 6 113 0
0% 7% 4% 17% 4% 69% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@RosaWagner
Copy link
Contributor

LGTM

Stick_QA.zip

@RosaWagner RosaWagner merged commit 74eda7a into main Aug 5, 2021
@RosaWagner RosaWagner deleted the gftools_packager_ofl_stick branch August 5, 2021 11:34
@RosaWagner RosaWagner added --- Live Font is visible on API and removed --- to_production labels Sep 22, 2021
@RosaWagner RosaWagner added I Small Fix bugs fixed but nothing added and removed I Font Upgrade labels Dec 9, 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 Small Fix bugs fixed but nothing added II CJK Chinese, Japanese, Korean scripts
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Stick
2 participants