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

Be Vietnam: Version 5.000 added #3288

Closed
wants to merge 5 commits into from
Closed

Conversation

bettergui
Copy link
Contributor

@RosaWagner RosaWagner linked an issue Apr 9, 2021 that may be closed by this pull request
@bettergui
Copy link
Contributor Author

Hi Rosa,
For some reason, the Google Fonts QA task above ran for a long time and was canceled at the end.
Is there anything we should do right now? We have checked and passed fontbakery tests locally.

@RosaWagner
Copy link
Contributor

Hi, Thanks for the PR ! Our gh action got broken by a bunch of funny guys. I'll try to re-run it.

@m4rc1e
Copy link
Collaborator

m4rc1e commented Apr 12, 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.

[12] BeVietnam-Black.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1E9E: X=317.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=317.0,Y=-2.0 (should be at baseline 0?)
    • uni1EA3: X=329.0,Y=738.5 (should be at cap-height 740?)
    • atilde: X=328.0,Y=739.0 (should be at cap-height 740?)
    • uni1EBB: X=346.0,Y=739.5 (should be at cap-height 740?)
    • uni0123: X=397.0,Y=738.0 (should be at cap-height 740?)
    • uni1EC9: X=186.0,Y=738.5 (should be at cap-height 740?)
    • itilde: X=185.0,Y=739.0 (should be at cap-height 740?)
    • j: X=255.0,Y=2.0 (should be at baseline 0?)
    • ntilde: X=337.0,Y=739.0 (should be at cap-height 740?) and 46 more. [code: found-misalignments]
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:
    • Euro: L<<92.0,350.0>--<92.0,370.0>> -> L<<92.0,370.0>--<92.0,389.0>>
    • onehalf: L<<576.0,80.0>--<609.0,102.0>> -> L<<609.0,102.0>--<635.0,119.0>>
    • two.dnom: L<<-148.0,80.0>--<-115.0,102.0>> -> L<<-115.0,102.0>--<-89.0,119.0>>
    • two.numr: L<<-148.0,430.0>--<-115.0,452.0>> -> L<<-115.0,452.0>--<-89.0,469.0>>
    • uni00B2: L<<43.0,505.0>--<157.0,587.0>> -> L<<157.0,587.0>--<183.0,605.0>> and uni2082: L<<43.0,-110.0>--<157.0,-28.0>> -> L<<157.0,-28.0>--<183.0,-10.0>> [code: found-colinear-vectors]
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:
    • Aacute: L<<464.0,809.0>--<331.0,810.0>>
    • Agrave: L<<464.0,810.0>--<331.0,809.0>>
    • Cacute: L<<476.0,807.0>--<343.0,808.0>>
    • Eacute: L<<396.0,809.0>--<263.0,810.0>>
    • Egrave: L<<396.0,810.0>--<263.0,809.0>>
    • Iacute: L<<224.0,809.0>--<91.0,810.0>>
    • Igrave: L<<224.0,810.0>--<91.0,809.0>>
    • Lacute: L<<224.0,809.0>--<91.0,810.0>>
    • Nacute: L<<444.0,809.0>--<311.0,810.0>>
    • Oacute: L<<483.0,819.0>--<350.0,820.0>> and 75 more. [code: found-semi-vertical]

[11] BeVietnam-BlackItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1E9E: X=274.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=274.0,Y=-2.0 (should be at baseline 0?)
    • uni1EA3: X=396.5,Y=739.5 (should be at cap-height 740?)
    • atilde: X=398.0,Y=739.0 (should be at cap-height 740?)
    • eth: X=552.0,Y=739.0 (should be at cap-height 740?)
    • uni1EBB: X=404.5,Y=739.5 (should be at cap-height 740?)
    • eogonek: X=396.0,Y=1.0 (should be at baseline 0?)
    • uni1EBD: X=406.0,Y=739.0 (should be at cap-height 740?)
    • uni0123: X=444.0,Y=738.0 (should be at cap-height 740?)
    • uni1EC9: X=253.5,Y=739.5 (should be at cap-height 740?) and 47 more. [code: found-misalignments]
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:
    • Ohorn: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • ampersand: L<<379.0,152.0>--<264.0,295.0>> -> L<<264.0,295.0>--<250.0,313.0>>
    • logicalnot: L<<614.0,530.0>--<591.0,383.0>> -> L<<591.0,383.0>--<569.0,248.0>>
    • thorn: L<<-11.0,-195.0>--<19.0,0.0>> -> L<<19.0,0.0>--<44.0,159.0>>
    • thorn: L<<19.0,0.0>--<44.0,159.0>> -> L<<44.0,159.0>--<101.0,530.0>>
    • thorn: L<<44.0,159.0>--<101.0,530.0>> -> L<<101.0,530.0>--<137.0,760.0>>
    • two: L<<42.0,131.0>--<210.0,246.0>> -> L<<210.0,246.0>--<239.0,267.0>>
    • uni1EDA: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>>
    • uni1EDB: L<<351.0,540.0>--<366.0,540.0>> -> L<<366.0,540.0>--<494.0,540.0>>
    • uni1EDC: L<<459.0,750.0>--<469.0,750.0>> -> L<<469.0,750.0>--<641.0,750.0>> and 3 more. [code: found-colinear-vectors]

[14] BeVietnam-Bold.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, acircumflex, adieresis, ae, amacron, ampersand, aogonek, aring, asciicircum, asterisk, at, atilde, b, backslash, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon, colon.case, colon_d_d_colon.liga, colon_s_t_a_r_colon.liga, copyright, currency, d, dagger, daggerdbl, dcaron, dcroat, degree, dieresis, divide, dollar, dong, dotaccent, dotlessi, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, endash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, greater, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, hyphen, i, i.loclTRK, iacute, icircumflex, idieresis, igrave, imacron, iogonek, itilde, j, k, l, lacute, less, logicalnot, m, macron, minus, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, oneeighth, ordfeminine, ordmasculine, oslash, otilde, p, paragraph, parenleft, parenright, percent, perthousand, plusminus, q, question, questiondown, quotedbl, quotedblbase, quotedblleft, quotedblright, r, racute, rcaron, registered, ring, s, sacute, scaron, scedilla, section, semicolon, seven, seven.dnom, seven.numr, six, six.dnom, six.numr, slash, t, tbar, tcaron, thorn, three, three.dnom, three.numr, threequarters, tilde, tildecomb, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00AD, uni00B2, uni00B3, uni00B5, uni00B9, uni0162, uni0163, uni03020303, uni0304, uni0306, uni03060300, uni03060301, uni03060303, uni03060309, uni0307, uni0308, uni030A, uni031B, uni0327, uni1EA0, uni1EA1, uni1EA2, uni1EA3, uni1EA4, uni1EA6, uni1EA8, uni1EA9, uni1EAA, uni1EAB, uni1EAC, uni1EAD, uni1EAE, uni1EAF, uni1EB0, uni1EB1, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2081, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=485.5,Y=1195.5 (should be at ascender 1196?)
    • J: X=40.0,Y=-1.0 (should be at baseline 0?)
    • J: X=40.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=300.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=230.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=69.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=300.0,Y=-2.0 (should be at baseline 0?)
    • uni1EA9: X=455.0,Y=739.0 (should be at cap-height 740?)
    • uni1EA3: X=274.5,Y=739.0 (should be at cap-height 740?)
    • uni1EC3: X=471.0,Y=739.0 (should be at cap-height 740?) and 53 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---

This test looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).

This test is not run for variable fonts, as they may legitimately have short
segments. As this test is liable to generate significant numbers of false
positives, the test will pass if there are more than 100 reported short
segments.


  • WARN The following glyphs have segments which seem very short:
    • Ccedilla contains a short segment B<<421.0,-58.0>-<433.0,-56.0>-<441.0,-56.0>>
    • Ccedilla contains a short segment B<<450.0,-160.0>-<450.0,-146.0>-<439.0,-137.5>>
    • Scedilla contains a short segment B<<347.0,-63.0>-<359.0,-61.0>-<367.0,-61.0>>
    • Scedilla contains a short segment B<<376.0,-164.0>-<376.0,-150.0>-<365.0,-141.5>>
    • uni0162 contains a short segment B<<357.0,-62.0>-<369.0,-60.0>-<377.0,-60.0>>
    • a contains a short segment L<<379.0,63.0>--<372.0,63.0>>
    • aacute contains a short segment L<<378.0,63.0>--<371.0,63.0>>
    • abreve contains a short segment L<<378.0,63.0>--<371.0,63.0>>
    • uni1EAF contains a short segment L<<378.0,63.0>--<371.0,63.0>>
    • uni1EB7 contains a short segment L<<378.0,63.0>--<371.0,63.0>> and 83 more. [code: found-short-segments]
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:
    • onehalf: L<<579.0,72.0>--<619.0,101.0>> -> L<<619.0,101.0>--<651.0,124.0>>
    • two.dnom: L<<-127.0,72.0>--<-87.0,101.0>> -> L<<-87.0,101.0>--<-52.0,126.0>>
    • two.numr: L<<-127.0,425.0>--<-87.0,454.0>> -> L<<-87.0,454.0>--<-52.0,479.0>>
    • uni00B2: L<<54.0,495.0>--<153.0,568.0>> -> L<<153.0,568.0>--<182.0,589.0>> and uni2082: L<<54.0,-121.0>--<153.0,-47.0>> -> L<<153.0,-47.0>--<182.0,-26.0>> [code: found-colinear-vectors]
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:
    • Aacute: L<<447.0,812.0>--<330.0,813.0>>
    • Agrave: L<<449.0,813.0>--<331.0,812.0>>
    • Cacute: L<<467.0,811.0>--<349.0,812.0>>
    • Eacute: L<<390.0,812.0>--<272.0,813.0>>
    • Egrave: L<<391.0,813.0>--<274.0,812.0>>
    • Iacute: L<<210.0,812.0>--<93.0,813.0>>
    • Igrave: L<<212.0,813.0>--<95.0,812.0>>
    • Lacute: L<<213.0,812.0>--<96.0,813.0>>
    • Nacute: L<<435.0,812.0>--<318.0,813.0>>
    • Oacute: L<<474.0,822.0>--<357.0,823.0>> and 55 more. [code: found-semi-vertical]

[13] BeVietnam-BoldItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: Check name table: TYPOGRAPHIC_FAMILY_NAME entries.
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, acircumflex, adieresis, ae, amacron, ampersand, aogonek, aring, asciicircum, asterisk, at, atilde, b, backslash, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon, colon.case, colon_d_d_colon.liga, colon_s_t_a_r_colon.liga, copyright, currency, d, dagger, daggerdbl, dcaron, dcroat, degree, dieresis, divide, dollar, dong, dotaccent, dotlessi, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, endash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, greater, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, hyphen, i, i.loclTRK, iacute, icircumflex, idieresis, igrave, imacron, iogonek, itilde, j, k, l, lacute, lcaron, less, logicalnot, m, macron, minus, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, ordfeminine, ordmasculine, oslash, otilde, p, paragraph, parenleft, parenright, percent, perthousand, plusminus, q, question, questiondown, quotedblbase, quotedblleft, quotedblright, r, racute, rcaron, registered, ring, s, sacute, scedilla, section, semicolon, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, slash, sterling, t, tbar, tcaron, thorn, three, three.dnom, three.numr, threeeighths, threequarters, tilde, tildecomb, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00AD, uni00B2, uni00B3, uni00B5, uni00B9, uni0162, uni0163, uni03020303, uni0304, uni0306, uni03060300, uni03060301, uni03060303, uni03060309, uni0307, uni0308, uni030A, uni031B, uni0327, uni1EA0, uni1EA1, uni1EA2, uni1EA3, uni1EA4, uni1EA6, uni1EA8, uni1EA9, uni1EAA, uni1EAB, uni1EAC, uni1EAD, uni1EAE, uni1EAF, uni1EB0, uni1EB1, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2081, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=612.5,Y=1194.5 (should be at ascender 1196?)
    • Ccedilla: X=409.0,Y=-266.5 (should be at descender -265?)
    • uni1E9E: X=255.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=186.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=25.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=255.0,Y=-2.0 (should be at baseline 0?)
    • oslash: X=227.0,Y=-2.0 (should be at baseline 0?)
    • q: X=478.0,Y=529.0 (should be at x-height 530?)
    • q: X=640.0,Y=529.0 (should be at x-height 530?)
    • germandbls: X=25.0,Y=-1.0 (should be at baseline 0?) and 44 more. [code: found-misalignments]
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:
    • Ohorn: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • hbar: L<<308.0,572.0>--<296.0,500.0>> -> L<<296.0,500.0>--<289.0,454.0>>
    • logicalnot: L<<615.0,530.0>--<595.0,403.0>> -> L<<595.0,403.0>--<571.0,255.0>>
    • ordfeminine: L<<309.0,614.0>--<310.0,620.0>> -> L<<310.0,620.0>--<311.0,629.0>>
    • two: L<<355.0,182.0>--<336.0,169.0>> -> L<<336.0,169.0>--<298.0,142.0>>
    • two: L<<43.0,112.0>--<222.0,242.0>> -> L<<222.0,242.0>--<251.0,263.0>>
    • uni1EDA: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EDB: L<<344.0,540.0>--<355.0,540.0>> -> L<<355.0,540.0>--<481.0,540.0>>
    • uni1EDC: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EDE: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>>
    • uni1EE0: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>> and uni1EE2: L<<455.0,750.0>--<462.0,750.0>> -> L<<462.0,750.0>--<636.0,750.0>> [code: found-colinear-vectors]

[14] BeVietnam-Italic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, ae, ampersand, aring, asterisk, at, b, bar, braceleft, braceright, bracketleft, bracketright, brokenbar, bullet, ccedilla, cedilla, cent, copyright, d, dagger, daggerdbl, dcroat, degree, dollar, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, emacron, emdash, eogonek, equal, eth, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, guillemotleft, guillemotright, hbar, imacron, itilde, k, macron, multiply, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, oneeighth, onehalf, onequarter, ordfeminine, ordmasculine, oslash, otilde, p, parenleft, parenright, percent, perthousand, q, question, questiondown, quotedbl, rcaron, registered, ring, scaron, scedilla, section, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, slash, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, udieresis, umacron, uni00B2, uni00B3, uni00B5, uni0162, uni0163, uni0304, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAC, uni1EAE, uni1EB0, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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: scaron Contours detected: 4 Expected: 2
Glyph name: scaron Contours detected: 4 Expected: 2 [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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • K: X=562.0,Y=739.0 (should be at cap-height 740?)
    • K: X=691.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=562.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=691.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=136.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=44.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=576.0,Y=738.5 (should be at cap-height 740?)
    • atilde: X=331.0,Y=739.5 (should be at cap-height 740?)
    • uni1EBD: X=343.0,Y=739.5 (should be at cap-height 740?)
    • itilde: X=173.0,Y=739.5 (should be at cap-height 740?) and 41 more. [code: found-misalignments]
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:
    • Ohorn: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • hbar: L<<266.0,530.0>--<260.0,496.0>> -> L<<260.0,496.0>--<253.0,451.0>>
    • hbar: L<<89.0,0.0>--<174.0,530.0>> -> L<<174.0,530.0>--<184.0,591.0>>
    • logicalnot: L<<618.0,530.0>--<606.0,454.0>> -> L<<606.0,454.0>--<576.0,271.0>>
    • thorn: L<<13.0,-195.0>--<130.0,530.0>> -> L<<130.0,530.0>--<167.0,760.0>>
    • thorn: L<<259.0,760.0>--<222.0,530.0>> -> L<<222.0,530.0>--<209.0,451.0>>
    • uni1EDA: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EDC: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EDE: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>>
    • uni1EE0: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>> and uni1EE2: L<<445.0,750.0>--<446.0,750.0>> -> L<<446.0,750.0>--<620.0,750.0>> [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:
    • scaron: L<<314.0,635.0>--<329.0,653.0>>/L<<329.0,653.0>--<314.0,633.0>> = 2.935673446421223
    • scaron: L<<366.0,704.0>--<403.0,741.0>>/L<<403.0,741.0>--<329.0,653.0>> = 4.9392155421262265 and scaron: L<<403.0,741.0>--<329.0,653.0>>/L<<329.0,653.0>--<366.0,704.0>> = 4.100267261228921 [code: found-jaggy-segments]

[14] BeVietnam-Light.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, AE, Aring, D, Dcaron, M, N, Nacute, Ncaron, Ntilde, OE, Ocircumflex, Racute, S, Sacute, Scaron, Scedilla, W, Wacute, Wcircumflex, Wdieresis, Wgrave, Z, Zacute, Zcaron, Zdotaccent, a, aacute, abreve, acircumflex, adieresis, ae, agrave, amacron, ampersand, aogonek, atilde, b, backslash, c, cacute, ccaron, cdotaccent, colon_d_d_colon.liga, copyright, currency, d, dagger, daggerdbl, dcaron, dcroat, degree, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight.dnom, eight.numr, eogonek, f_f.liga, f_i.liga, five.dnom, five.numr, four.dnom, four.numr, germandbls, greaterequal, h, hbar, j, l, lacute, lcaron, m, n, nacute, ncaron, nine, nine.dnom, nine.numr, ntilde, oacute, ocircumflex, odieresis, oe, ograve, one, one.dnom, one.numr, oneeighth, onehalf, ordfeminine, ordmasculine, oslash, p, paragraph, plusminus, q, quotedbl, quotedblbase, quotedblleft, quotedblright, quotesingle, registered, ring, s, sacute, scaron, scedilla, section, seven.dnom, seven.numr, six, six.dnom, six.numr, slash, sterling, t, tbar, tcaron, thorn, three.dnom, three.numr, trademark, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B5, uni030A, uni1EA1, uni1EA3, uni1EA5, uni1EA7, uni1EA9, uni1EAB, uni1EAD, uni1EAF, uni1EB1, uni1EB3, uni1EB5, uni1EB7, uni1EB9, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC3, uni1EC5, uni1EC7, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EE5, uni1EE7, uni1EE9, uni1EEB, uni1EED, uni1EEF, uni1EF1, uni2076, uni2079, uni2086, uni2089, uogonek, utilde, w, wacute, wcircumflex, wdieresis, wgrave, x, zacute, zcaron, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • K: X=499.0,Y=739.0 (should be at cap-height 740?)
    • K: X=583.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=583.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=499.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=474.5,Y=739.0 (should be at cap-height 740?)
    • ccedilla: X=318.0,Y=-263.0 (should be at descender -265?)
    • eth: X=267.0,Y=742.0 (should be at cap-height 740?)
    • g: X=306.0,Y=-2.0 (should be at baseline 0?)
    • gbreve: X=306.0,Y=-2.0 (should be at baseline 0?)
    • gcaron: X=306.0,Y=-2.0 (should be at baseline 0?) and 29 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---

This test looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).

This test is not run for variable fonts, as they may legitimately have short
segments. As this test is liable to generate significant numbers of false
positives, the test will pass if there are more than 100 reported short
segments.


  • WARN The following glyphs have segments which seem very short:
    • uni0162 contains a short segment L<<351.0,0.0>--<340.0,0.0>>
    • uni0162 contains a short segment L<<292.0,0.0>--<288.0,0.0>>
    • a contains a short segment L<<434.0,89.0>--<426.0,89.0>>
    • aacute contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • abreve contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • uni1EAF contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • uni1EB7 contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • uni1EB1 contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • uni1EB3 contains a short segment L<<432.0,89.0>--<424.0,89.0>>
    • uni1EB5 contains a short segment L<<432.0,89.0>--<424.0,89.0>> and 69 more. [code: found-short-segments]
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:
    • onehalf: L<<545.0,35.0>--<617.0,100.0>> -> L<<617.0,100.0>--<646.0,125.0>>
    • two.dnom: L<<-56.0,35.0>--<15.0,100.0>> -> L<<15.0,100.0>--<46.0,127.0>>
    • two.numr: L<<-56.0,392.0>--<15.0,457.0>> -> L<<15.0,457.0>--<46.0,484.0>>
    • two: L<<334.0,222.0>--<297.0,187.0>> -> L<<297.0,187.0>--<162.0,58.0>>
    • two: L<<70.0,46.0>--<248.0,217.0>> -> L<<248.0,217.0>--<286.0,253.0>>
    • uni00B2: L<<69.0,467.0>--<147.0,538.0>> -> L<<147.0,538.0>--<176.0,563.0>> and uni2082: L<<69.0,-148.0>--<147.0,-77.0>> -> L<<147.0,-77.0>--<176.0,-52.0>> [code: found-colinear-vectors]
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:
    • asterisk: L<<223.0,571.0>--<222.0,740.0>>
    • exclam: L<<100.0,161.0>--<96.0,740.0>>
    • exclam: L<<156.0,740.0>--<154.0,161.0>>
    • exclamdown: L<<154.0,363.0>--<156.0,-216.0>>
    • exclamdown: L<<96.0,-216.0>--<100.0,363.0>>
    • four: L<<410.0,183.0>--<45.0,184.0>>
    • l: L<<90.0,0.0>--<91.0,760.0>>
    • lacute: L<<90.0,0.0>--<91.0,760.0>>
    • lcaron: L<<90.0,0.0>--<91.0,760.0>>
    • one: L<<173.0,613.0>--<49.0,612.0>> and uni013C: L<<90.0,0.0>--<91.0,760.0>> [code: found-semi-vertical]

[14] BeVietnam-LightItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, Aring, D, Dcaron, Ecircumflex, M, N, Nacute, Ncaron, Ntilde, OE, Oacute, Ocircumflex, Odieresis, Ograve, Q, Racute, Rcaron, S, Sacute, Scaron, Scedilla, Uring, W, Wacute, Wcircumflex, Wdieresis, Wgrave, Zacute, a, aacute, abreve, acircumflex, adieresis, ae, agrave, amacron, aogonek, approxequal, at, atilde, b, backslash, c, cacute, ccaron, ccedilla, cdotaccent, colon_d_d_colon.liga, copyright, currency, d, dagger, daggerdbl, dcaron, dcroat, degree, dollar, dong, eacute, ecaron, edieresis, egrave, eight.dnom, eight.numr, f, f_f.liga, f_i.liga, five.dnom, five.numr, four.dnom, four.numr, germandbls, h, hbar, j, l, lacute, lcaron, lessequal, m, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, ntilde, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, one, one.dnom, one.numr, oneeighth, onehalf, ordfeminine, ordmasculine, oslash, otilde, p, paragraph, perthousand, plusminus, q, quotedbl, quotedblbase, quotedblleft, quotedblright, registered, ring, s, sacute, scaron, scedilla, section, seven.dnom, seven.numr, six, six.dnom, six.numr, sterling, t, tbar, tcaron, thorn, three.dnom, three.numr, trademark, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni030A, uni1EA1, uni1EA3, uni1EA5, uni1EA7, uni1EA9, uni1EAB, uni1EAD, uni1EAF, uni1EB1, uni1EB3, uni1EB5, uni1EB7, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC5, uni1EC6, uni1EC7, uni1ECD, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDB, uni1EDD, uni1EDF, uni1EE1, uni1EE3, uni1EE5, uni1EE7, uni1EE9, uni1EEB, uni1EED, uni1EEF, uni1EF1, uni2074, uni2075, uni2076, uni2078, uni2079, uni2082, uni2083, uni2084, uni2085, uni2086, uni2088, uni2089, uni2215, uogonek, utilde, w, wacute, wcircumflex, wdieresis, wgrave, zero, zero.dnom, zero.numr]

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: scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2 [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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • J: X=6.0,Y=-2.0 (should be at baseline 0?)
    • J: X=6.0,Y=-2.0 (should be at baseline 0?)
    • K: X=562.0,Y=739.0 (should be at cap-height 740?)
    • K: X=650.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=562.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=650.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=549.5,Y=739.0 (should be at cap-height 740?)
    • ccedilla: X=216.0,Y=-263.0 (should be at descender -265?)
    • eth: X=334.0,Y=742.0 (should be at cap-height 740?)
    • uni1EBD: X=301.0,Y=739.0 (should be at cap-height 740?) and 44 more. [code: found-misalignments]
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:
    • Ohorn: L<<443.0,750.0>--<444.0,750.0>> -> L<<444.0,750.0>--<602.0,750.0>>
    • ampersand: L<<303.0,402.0>--<312.0,389.0>> -> L<<312.0,389.0>--<474.0,173.0>>
    • ampersand: L<<439.0,125.0>--<273.0,348.0>> -> L<<273.0,348.0>--<250.0,380.0>>
    • hbar: L<<84.0,0.0>--<169.0,530.0>> -> L<<169.0,530.0>--<183.0,616.0>>
    • scaron: L<<303.0,642.0>--<295.0,633.0>> -> L<<295.0,633.0>--<275.0,607.0>>
    • thorn: L<<126.0,110.0>--<108.0,0.0>> -> L<<108.0,0.0>--<76.0,-195.0>>
    • thorn: L<<15.0,-195.0>--<46.0,0.0>> -> L<<46.0,0.0>--<64.0,109.0>>
    • thorn: L<<230.0,760.0>--<193.0,530.0>> -> L<<193.0,530.0>--<178.0,437.0>>
    • thorn: L<<46.0,0.0>--<64.0,109.0>> -> L<<64.0,109.0>--<131.0,530.0>>
    • uni1EDA: L<<443.0,750.0>--<444.0,750.0>> -> L<<444.0,750.0>--<602.0,750.0>> and 4 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:
    • eth: B<<439.0,507.5>-<481.0,478.0>-<505.0,434.0>>/B<<505.0,434.0>-<466.0,577.0>-<323.0,683.0>> = 13.355340962907409
    • scaron: L<<303.0,642.0>--<390.0,740.0>>/L<<390.0,740.0>--<370.0,704.0>> = 12.542626129861114
    • uni2075: L<<219.0,762.0>--<189.0,641.0>>/L<<189.0,641.0>--<190.0,644.0>> = 4.510175602512516 and uni2085: L<<121.0,147.0>--<92.0,26.0>>/L<<92.0,26.0>--<93.0,29.0>> = 4.957126069680521 [code: found-jaggy-segments]

[13] BeVietnam-Medium.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, ae, amacron, ampersand, aring, asterisk, at, atilde, b, backslash, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon_d_d_colon.liga, copyright, d, dagger, daggerdbl, dcaron, dcroat, degree, divide, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, greater, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, i, i.loclTRK, iacute, icircumflex, idieresis, igrave, imacron, iogonek, itilde, j, k, less, m, macron, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, onehalf, onequarter, ordfeminine, ordmasculine, oslash, otilde, p, paragraph, parenleft, parenright, percent, perthousand, q, question, questiondown, quotedbl, r, racute, rcaron, registered, ring, s, sacute, scaron, scedilla, section, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, slash, t, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni0162, uni0163, uni0304, uni0306, uni03060300, uni03060301, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAB, uni1EAC, uni1EAD, uni1EAE, uni1EAF, uni1EB0, uni1EB1, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • K: X=502.0,Y=739.0 (should be at cap-height 740?)
    • K: X=651.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=651.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=502.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=199.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=84.0,Y=-2.0 (should be at baseline 0?)
    • adieresis: X=197.0,Y=742.0 (should be at cap-height 740?)
    • adieresis: X=399.0,Y=742.0 (should be at cap-height 740?) and 80 more. [code: found-misalignments]
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:
    • onehalf: L<<584.0,59.0>--<635.0,100.0>> -> L<<635.0,100.0>--<674.0,131.0>>
    • two.dnom: L<<-92.0,59.0>--<-41.0,100.0>> -> L<<-41.0,100.0>--<-2.0,131.0>>
    • two.numr: L<<-92.0,417.0>--<-41.0,458.0>> -> L<<-41.0,458.0>--<-2.0,489.0>>
    • two: L<<351.0,198.0>--<329.0,179.0>> -> L<<329.0,179.0>--<246.0,104.0>>
    • uni00B2: L<<72.0,477.0>--<147.0,537.0>> -> L<<147.0,537.0>--<181.0,564.0>> and uni2082: L<<72.0,-138.0>--<147.0,-78.0>> -> L<<147.0,-78.0>--<181.0,-51.0>> [code: found-colinear-vectors]
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:
    • four: L<<411.0,165.0>--<51.0,166.0>>
    • l: L<<84.0,0.0>--<85.0,760.0>>
    • lacute: L<<84.0,0.0>--<85.0,760.0>>
    • lcaron: L<<84.0,0.0>--<85.0,760.0>>
    • one: L<<181.0,559.0>--<41.0,558.0>>
    • uni013C: L<<84.0,0.0>--<85.0,760.0>>
    • uni2074: L<<256.0,492.0>--<61.0,493.0>> and uni2084: L<<246.0,-123.0>--<51.0,-122.0>> [code: found-semi-vertical]

[13] BeVietnam-MediumItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, ae, amacron, ampersand, aring, asterisk, at, atilde, b, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon_d_d_colon.liga, copyright, d, dagger, daggerdbl, dcaron, dcroat, degree, divide, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, i, i.loclTRK, iacute, icircumflex, idieresis, imacron, iogonek, itilde, j, k, logicalnot, m, macron, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, oneeighth, onehalf, onequarter, ordfeminine, ordmasculine, oslash, otilde, p, parenleft, parenright, percent, perthousand, q, question, questiondown, r, racute, rcaron, registered, ring, s, sacute, scaron, scedilla, section, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, slash, t, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni00B9, uni0162, uni0163, uni0304, uni0306, uni03060300, uni03060301, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAC, uni1EAD, uni1EAE, uni1EAF, uni1EB0, uni1EB1, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • Ccedilla: X=234.0,Y=-264.0 (should be at descender -265?)
    • J: X=4.0,Y=1.0 (should be at baseline 0?)
    • J: X=4.0,Y=1.0 (should be at baseline 0?)
    • K: X=560.0,Y=739.0 (should be at cap-height 740?)
    • K: X=716.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=560.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=716.0,Y=739.0 (should be at cap-height 740?)
    • Scedilla: X=172.0,Y=-266.0 (should be at descender -265?)
    • uni1E9E: X=153.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=38.0,Y=-2.0 (should be at baseline 0?) and 62 more. [code: found-misalignments]
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:
    • Ohorn: L<<448.0,750.0>--<451.0,750.0>> -> L<<451.0,750.0>--<626.0,750.0>>
    • ampersand: L<<413.0,134.0>--<264.0,329.0>> -> L<<264.0,329.0>--<247.0,352.0>>
    • hbar: L<<288.0,583.0>--<276.0,513.0>> -> L<<276.0,513.0>--<267.0,453.0>>
    • logicalnot: L<<618.0,530.0>--<603.0,437.0>> -> L<<603.0,437.0>--<575.0,266.0>>
    • ordfeminine: L<<319.0,613.0>--<320.0,622.0>> -> L<<320.0,622.0>--<321.0,632.0>>
    • thorn: L<<100.0,380.0>--<124.0,530.0>> -> L<<124.0,530.0>--<161.0,760.0>>
    • thorn: L<<276.0,760.0>--<239.0,530.0>> -> L<<239.0,530.0>--<227.0,457.0>>
    • thorn: L<<39.0,0.0>--<100.0,380.0>> -> L<<100.0,380.0>--<124.0,530.0>>
    • thorn: L<<8.0,-195.0>--<39.0,0.0>> -> L<<39.0,0.0>--<100.0,380.0>>
    • two: L<<46.0,81.0>--<244.0,235.0>> -> L<<244.0,235.0>--<278.0,261.0>> and 6 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:
    • scaron: L<<368.0,707.0>--<414.0,744.0>>/L<<414.0,744.0>--<322.0,632.0>> = 11.787955299762132 [code: found-jaggy-segments]

[15] BeVietnam-Regular.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, ae, amacron, ampersand, aring, asterisk, at, b, bar, braceleft, braceright, bracketleft, bracketright, brokenbar, bullet, ccedilla, cedilla, cent, colon_d_d_colon.liga, copyright, d, dagger, daggerdbl, dcroat, degree, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, emacron, emdash, eogonek, equal, eth, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, guillemotleft, guillemotright, hbar, imacron, iogonek, itilde, k, lcaron, macron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, oneeighth, onehalf, onequarter, ordfeminine, ordmasculine, oslash, otilde, p, parenleft, parenright, percent, perthousand, q, question, questiondown, quotedbl, rcaron, registered, ring, sacute, scedilla, section, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, udieresis, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni0162, uni0163, uni0304, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAC, uni1EAE, uni1EB0, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • uni1EB2: X=367.0,Y=1195.0 (should be at ascender 1196?)
    • K: X=507.0,Y=739.0 (should be at cap-height 740?)
    • K: X=630.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=630.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=507.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=182.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=90.0,Y=-2.0 (should be at baseline 0?)
    • uni1E9E: X=503.5,Y=738.0 (should be at cap-height 740?)
    • ccedilla: X=243.0,Y=-266.0 (should be at descender -265?)
    • uni1EBD: X=292.0,Y=739.0 (should be at cap-height 740?) and 40 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---

This test looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).

This test is not run for variable fonts, as they may legitimately have short
segments. As this test is liable to generate significant numbers of false
positives, the test will pass if there are more than 100 reported short
segments.


  • WARN The following glyphs have segments which seem very short:
    • uni0162 contains a short segment L<<371.0,0.0>--<351.0,0.0>>
    • uni0162 contains a short segment L<<286.0,0.0>--<277.0,0.0>>
    • a contains a short segment L<<420.0,73.0>--<412.0,73.0>>
    • aacute contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • abreve contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • uni1EAF contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • uni1EB7 contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • uni1EB1 contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • uni1EB3 contains a short segment L<<415.0,73.0>--<407.0,73.0>>
    • uni1EB5 contains a short segment L<<415.0,73.0>--<407.0,73.0>> and 73 more. [code: found-short-segments]
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:
    • onehalf: L<<581.0,52.0>--<639.0,100.0>> -> L<<639.0,100.0>--<679.0,133.0>>
    • two.dnom: L<<-75.0,52.0>--<-18.0,100.0>> -> L<<-18.0,100.0>--<22.0,133.0>>
    • two.numr: L<<-75.0,411.0>--<-18.0,460.0>> -> L<<-18.0,460.0>--<18.0,489.0>>
    • two: L<<363.0,218.0>--<324.0,183.0>> -> L<<324.0,183.0>--<219.0,85.0>>
    • two: L<<80.0,66.0>--<244.0,219.0>> -> L<<244.0,219.0>--<295.0,266.0>>
    • uni00B2: L<<78.0,470.0>--<144.0,526.0>> -> L<<144.0,526.0>--<178.0,554.0>> and uni2082: L<<78.0,-145.0>--<144.0,-89.0>> -> L<<144.0,-89.0>--<178.0,-61.0>> [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:
    • eogonek: B<<476.0,50.0>-<430.0,2.0>-<353.0,-8.0>>/L<<353.0,-8.0>--<354.0,-8.0>> = 7.399594659887074 [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:
    • asterisk: L<<285.0,740.0>--<284.0,582.0>>
    • exclam: L<<96.0,188.0>--<92.0,740.0>>
    • exclamdown: L<<92.0,-216.0>--<96.0,336.0>>
    • four: L<<416.0,173.0>--<54.0,174.0>>
    • l: L<<90.0,0.0>--<91.0,760.0>>
    • lacute: L<<90.0,0.0>--<91.0,760.0>>
    • lcaron: L<<90.0,0.0>--<91.0,760.0>>
    • one: L<<178.0,579.0>--<41.0,578.0>>
    • uni013C: L<<90.0,0.0>--<91.0,760.0>>
    • uni2074: L<<253.0,495.0>--<63.0,496.0>> and uni2084: L<<244.0,-120.0>--<54.0,-119.0>> [code: found-semi-vertical]

[14] BeVietnam-SemiBold.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, ae, ampersand, aring, asciicircum, asterisk, at, b, backslash, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon_d_d_colon.liga, copyright, d, dagger, daggerdbl, dcaron, dcroat, degree, divide, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, endash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, greater, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, i, i.loclTRK, icircumflex, idieresis, imacron, iogonek, itilde, j, k, less, m, macron, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, oneeighth, ordfeminine, ordmasculine, oslash, otilde, p, paragraph, parenleft, parenright, percent, perthousand, q, question, questiondown, quotedbl, r, racute, rcaron, registered, ring, s, sacute, scaron, scedilla, section, seven, seven.dnom, seven.numr, six, six.dnom, six.numr, slash, t, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni0162, uni0163, uni0304, uni0306, uni03060300, uni03060301, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAC, uni1EAE, uni1EB0, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • J: X=40.0,Y=-2.0 (should be at baseline 0?)
    • K: X=496.0,Y=739.0 (should be at cap-height 740?)
    • K: X=666.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=666.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=496.0,Y=739.0 (should be at cap-height 740?)
    • uni1E9E: X=211.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=78.0,Y=-1.0 (should be at baseline 0?)
    • uni0123: X=337.0,Y=742.0 (should be at cap-height 740?)
    • j: X=83.0,Y=-1.0 (should be at baseline 0?) and 30 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---

This test looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).

This test is not run for variable fonts, as they may legitimately have short
segments. As this test is liable to generate significant numbers of false
positives, the test will pass if there are more than 100 reported short
segments.


  • WARN The following glyphs have segments which seem very short:
    • Ccedilla contains a short segment B<<413.0,-63.0>-<427.0,-61.0>-<436.0,-61.0>>
    • Scedilla contains a short segment B<<327.0,-65.0>-<339.0,-62.0>-<352.0,-62.0>>
    • a contains a short segment L<<396.0,67.0>--<388.0,67.0>>
    • aacute contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • abreve contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • uni1EAF contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • uni1EB7 contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • uni1EB1 contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • uni1EB3 contains a short segment L<<393.0,67.0>--<385.0,67.0>>
    • uni1EB5 contains a short segment L<<393.0,67.0>--<385.0,67.0>> and 71 more. [code: found-short-segments]
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:
    • two: L<<66.0,94.0>--<205.0,217.0>> -> L<<205.0,217.0>--<265.0,268.0>> [code: found-colinear-vectors]
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:
    • four: L<<406.0,158.0>--<47.0,159.0>>
    • l: L<<78.0,0.0>--<79.0,760.0>>
    • lacute: L<<78.0,0.0>--<79.0,760.0>>
    • lcaron: L<<78.0,0.0>--<79.0,760.0>>
    • uni013C: L<<78.0,0.0>--<79.0,760.0>>
    • uni2074: L<<256.0,491.0>--<57.0,492.0>> and uni2084: L<<246.0,-124.0>--<47.0,-123.0>> [code: found-semi-vertical]

[12] BeVietnam-SemiBoldItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, AE, Aacute, Abreve, Acircumflex, Adieresis, Agrave, Amacron, Aogonek, Aring, Atilde, B, C, Cacute, Ccaron, Ccedilla, Cdotaccent, D, Dcaron, Dcroat, E, Eacute, Ecaron, Ecircumflex, Edieresis, Edotaccent, Egrave, Emacron, Eogonek, Eth, Euro, F, G, Gbreve, Gdotaccent, H, Hbar, I, Iacute, Icircumflex, Idieresis, Idotaccent, Igrave, Imacron, Iogonek, Itilde, J, K, L, Lacute, Lcaron, M, N, Nacute, Ncaron, Ntilde, O, OE, Oacute, Ocircumflex, Odieresis, Ograve, Ohorn, Omacron, Oslash, Otilde, P, Q, R, Racute, Rcaron, S, Sacute, Scaron, Scedilla, T, Tbar, Tcaron, Thorn, U, Uacute, Ucircumflex, Udieresis, Ugrave, Uhorn, Umacron, Uogonek, Uring, Utilde, V, W, Wacute, Wcircumflex, Wdieresis, Wgrave, X, Y, Yacute, Ycircumflex, Ydieresis, Ygrave, Z, Zacute, Zcaron, Zdotaccent, abreve, ae, amacron, ampersand, aring, asciicircum, asterisk, at, b, bar, braceleft, braceright, bracketleft, bracketright, breve, brokenbar, bullet, c, cacute, ccaron, ccedilla, cdotaccent, cedilla, cent, colon_d_d_colon.liga, copyright, d, dagger, daggerdbl, dcaron, dcroat, degree, divide, dollar, dong, e, eacute, ecaron, ecircumflex, edieresis, edotaccent, egrave, eight, eight.dnom, eight.numr, ellipsis, emacron, emdash, endash, eogonek, equal, eth, exclam, exclamdown, f, f_f.liga, f_i.liga, five, five.dnom, five.numr, fiveeighths, four, four.dnom, four.numr, g, gbreve, gdotaccent, germandbls, greater, guillemotleft, guillemotright, guilsinglleft, guilsinglright, h, hbar, i, i.loclTRK, icircumflex, idieresis, imacron, iogonek, itilde, j, k, less, logicalnot, m, macron, multiply, n, nacute, ncaron, nine, nine.dnom, nine.numr, notequal, ntilde, numbersign, o, oacute, ocircumflex, odieresis, oe, ograve, ohorn, omacron, one, one.dnom, one.numr, ordfeminine, ordmasculine, oslash, otilde, p, parenleft, parenright, percent, perthousand, q, question, questiondown, quotedbl, r, racute, rcaron, registered, ring, s, sacute, scaron, scedilla, section, seven, seven.dnom, seven.numr, seveneighths, six, six.dnom, six.numr, slash, t, tbar, thorn, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two, two.dnom, two.numr, u, uacute, ucircumflex, udieresis, ugrave, uhorn, umacron, uni00B2, uni00B3, uni00B5, uni00B9, uni0162, uni0163, uni0304, uni0306, uni03060303, uni03060309, uni030A, uni031B, uni0327, uni1EA0, uni1EA2, uni1EA4, uni1EA6, uni1EA8, uni1EAA, uni1EAC, uni1EAE, uni1EB0, uni1EB2, uni1EB3, uni1EB4, uni1EB5, uni1EB6, uni1EB7, uni1EB8, uni1EB9, uni1EBA, uni1EBB, uni1EBC, uni1EBD, uni1EBE, uni1EBF, uni1EC0, uni1EC1, uni1EC2, uni1EC3, uni1EC4, uni1EC5, uni1EC6, uni1EC7, uni1EC8, uni1EC9, uni1ECA, uni1ECB, uni1ECC, uni1ECD, uni1ECE, uni1ECF, uni1ED0, uni1ED1, uni1ED2, uni1ED3, uni1ED4, uni1ED5, uni1ED6, uni1ED7, uni1ED8, uni1ED9, uni1EDA, uni1EDB, uni1EDC, uni1EDD, uni1EDE, uni1EDF, uni1EE0, uni1EE1, uni1EE2, uni1EE3, uni1EE4, uni1EE5, uni1EE6, uni1EE7, uni1EE8, uni1EE9, uni1EEA, uni1EEB, uni1EEC, uni1EED, uni1EEE, uni1EEF, uni1EF0, uni1EF1, uni1EF4, uni1EF5, uni1EF6, uni1EF7, uni1EF8, uni1EF9, uni2070, uni2074, uni2075, uni2076, uni2077, uni2078, uni2079, uni2080, uni2081, uni2082, uni2083, uni2084, uni2085, uni2086, uni2087, uni2088, uni2089, uni2215, uogonek, uring, utilde, v, w, wacute, wcircumflex, wdieresis, wgrave, x, y, yacute, ycircumflex, ydieresis, yen, ygrave, z, zacute, zcaron, zdotaccent, zero, zero.dnom, zero.numr]

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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • K: X=558.0,Y=739.0 (should be at cap-height 740?)
    • K: X=737.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=558.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=737.0,Y=739.0 (should be at cap-height 740?)
    • Scedilla: X=349.0,Y=-264.0 (should be at descender -265?)
    • uni1E9E: X=166.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=33.0,Y=-1.0 (should be at baseline 0?)
    • uni1E9E: X=596.0,Y=738.0 (should be at cap-height 740?)
    • uni0162: X=323.0,Y=-264.0 (should be at descender -265?)
    • uni1EA9: X=570.0,Y=741.0 (should be at cap-height 740?) and 40 more. [code: found-misalignments]
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:
    • Ohorn: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • thorn: L<<3.0,-195.0>--<118.0,530.0>> -> L<<118.0,530.0>--<155.0,760.0>>
    • two: L<<45.0,94.0>--<235.0,238.0>> -> L<<235.0,238.0>--<263.0,259.0>>
    • uni1EDA: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EDB: L<<338.0,540.0>--<344.0,540.0>> -> L<<344.0,540.0>--<468.0,540.0>>
    • uni1EDC: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EDE: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>>
    • uni1EE0: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>> and uni1EE2: L<<451.0,750.0>--<456.0,750.0>> -> L<<456.0,750.0>--<630.0,750.0>> [code: found-colinear-vectors]

[16] BeVietnam-Thin.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, Aring, Dcroat, Eth, M, Uring, ampersand, asterisk, at, bracketleft, bracketright, colon_d_d_colon.liga, dagger, daggerdbl, degree, dollar, dong, eight, eight.dnom, eight.numr, five, five.dnom, five.numr, four.dnom, four.numr, germandbls, lcaron, nine, nine.dnom, nine.numr, one.dnom, one.numr, ordfeminine, ordmasculine, perthousand, quotedbl, registered, section, seven.dnom, seven.numr, six, six.dnom, six.numr, three, three.dnom, three.numr, trademark, two.dnom, two.numr, zero.dnom, zero.numr]

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: uni2075 Contours detected: 2 Expected: 1
Glyph name: uni2085 Contours detected: 2 Expected: 1 [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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • K: X=492.0,Y=739.0 (should be at cap-height 740?)
    • K: X=542.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=542.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=492.0,Y=739.0 (should be at cap-height 740?)
    • f: X=274.0,Y=739.0 (should be at cap-height 740?)
    • uni0123: X=310.0,Y=738.0 (should be at cap-height 740?)
    • scaron: X=120.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=157.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=342.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=379.0,Y=739.0 (should be at cap-height 740?) and 31 more. [code: found-misalignments]
WARN: Are any segments inordinately short?
--- Rationale ---

This test looks for outline segments which seem particularly short (less than
0.006%% of the overall path length).

This test is not run for variable fonts, as they may legitimately have short
segments. As this test is liable to generate significant numbers of false
positives, the test will pass if there are more than 100 reported short
segments.


  • WARN The following glyphs have segments which seem very short:
    • M contains a short segment L<<440.0,191.0>--<410.0,191.0>>
    • uni0162 contains a short segment L<<333.0,0.0>--<330.0,0.0>>
    • a contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • aacute contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • abreve contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • uni1EAF contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • uni1EB7 contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • uni1EB1 contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • uni1EB3 contains a short segment L<<447.0,103.0>--<439.0,103.0>>
    • uni1EB5 contains a short segment L<<447.0,103.0>--<439.0,103.0>> and 77 more. [code: found-short-segments]
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:
    • onehalf: L<<514.0,21.0>--<598.0,100.0>> -> L<<598.0,100.0>--<619.0,120.0>>
    • onehalf: L<<645.0,100.0>--<628.0,84.0>> -> L<<628.0,84.0>--<568.0,28.0>>
    • two.dnom: L<<-40.0,21.0>--<44.0,100.0>> -> L<<44.0,100.0>--<65.0,120.0>>
    • two.dnom: L<<91.0,100.0>--<74.0,84.0>> -> L<<74.0,84.0>--<14.0,28.0>>
    • two.numr: L<<-40.0,376.0>--<44.0,455.0>> -> L<<44.0,455.0>--<65.0,475.0>>
    • two.numr: L<<91.0,455.0>--<74.0,439.0>> -> L<<74.0,439.0>--<14.0,383.0>>
    • two: L<<311.0,226.0>--<274.0,190.0>> -> L<<274.0,190.0>--<116.0,35.0>>
    • two: L<<62.0,28.0>--<252.0,215.0>> -> L<<252.0,215.0>--<286.0,248.0>>
    • uni00B2: L<<194.0,551.0>--<177.0,535.0>> -> L<<177.0,535.0>--<108.0,469.0>>
    • uni00B2: L<<62.0,465.0>--<150.0,549.0>> -> L<<150.0,549.0>--<173.0,571.0>>
    • uni2082: L<<194.0,-64.0>--<177.0,-80.0>> -> L<<177.0,-80.0>--<108.0,-146.0>> and uni2082: L<<62.0,-150.0>--<150.0,-66.0>> -> L<<150.0,-66.0>--<173.0,-44.0>> [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:
    • six.dnom.ss01: L<<224.0,345.0>--<114.0,201.0>>/B<<114.0,201.0>-<138.0,220.0>-<172.0,220.0>> = 14.256707119590262 [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:
    • exclam: L<<103.0,138.0>--<99.0,740.0>>
    • exclamdown: L<<99.0,-216.0>--<103.0,386.0>>
    • four: L<<405.0,191.0>--<38.0,192.0>>
    • l: L<<90.0,0.0>--<91.0,760.0>>
    • lacute: L<<90.0,0.0>--<91.0,760.0>>
    • lcaron: L<<90.0,0.0>--<91.0,760.0>>
    • uni00B5: L<<71.0,-199.0>--<72.0,530.0>> and uni013C: L<<90.0,0.0>--<91.0,760.0>> [code: found-semi-vertical]

[14] BeVietnam-ThinItalic.ttf
🔥 FAIL: Does DESCRIPTION file contain broken links?
--- Rationale ---

The snippet of HTML in the DESCRIPTION.en_us.html file is added to the font
family webpage on the Google Fonts website. For that reason, all hyperlinks in
it must be properly working.


  • 🔥 FAIL The following links are broken in the DESCRIPTION file:
    github.com/bettergui/BeVietnam [code: broken-links]
🔥 FAIL: Does DESCRIPTION file contain a upstream Git repo URL?
--- Rationale ---

The contents of the DESCRIPTION.en-us.html file are displayed on the Google
Fonts website in the about section of each font family specimen page.

Since all of the Google Fonts collection is composed of libre-licensed fonts,
this check enforces a policy that there must be a hypertext link in that page
directing users to the repository where the font project files are made
available.

Such hosting is typically done on sites like Github, Gitlab, GNU Savannah or
any other git-based version control service.


  • 🔥 FAIL Please host your font project on a public Git repo (such as GitHub or GitLab) and place a link in the DESCRIPTION.en_us.html file. [code: lacks-git-url]
🔥 FAIL: PPEM must be an integer on hinted fonts.
--- Rationale ---

Hinted fonts must have head table flag bit 3 set.

Per https://docs.microsoft.com/en-us/typography/opentype/spec/head, bit 3 of
Head::flags decides whether PPEM should be rounded. This bit should always be
set for hinted fonts.

Note:
Bit 3 = Force ppem to integer values for all internal scaler math;
        May use fractional ppem sizes if this bit is clear;


  • 🔥 FAIL This is a hinted font, so it must have bit 3 set on the flags of the head table, so that PPEM values will be rounded into an integer value.

This can be accomplished by using the 'gftools fix-hinting' command.

create virtualenvpython3 -m venv venv

activate virtualenvsource venv/bin/activate

install gftoolspip install git+https://www.github.com/googlefonts/tools [code: bad-flags]

🔥 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: Checking OS/2 achVendID.
--- Rationale ---

Microsoft keeps a list of font vendors and their respective contact info. This
list is updated regularly and is indexed by a 4-char "Vendor ID" which is
stored in the achVendID field of the OS/2 table.

Registering your ID is not mandatory, but it is a good practice since some
applications may display the type designer / type foundry contact info on some
dialog and also because that info will be visible on Microsoft's website:

https://docs.microsoft.com/en-us/typography/vendors/

This check verifies whether or not a given font's vendor ID is registered in
that list or if it has some of the default values used by the most common font
editors.

Each new FontBakery release includes a cached copy of that list of vendor IDs.
If you registered recently, you're safe to ignore warnings emitted by this
check, since your ID will soon be included in one of our upcoming releases.


  • WARN OS/2 VendorID value 'YYYY' is not yet recognized. If you registered it recently, then it's safe to ignore this warning message. Otherwise, you should set it to your own unique 4 character code, and register it with Microsoft at https://www.microsoft.com/typography/links/vendorlist.aspx
    [code: unknown]
WARN: Check copyright namerecords match license file.
--- Rationale ---

A known licensing description must be provided in the NameID 14 (LICENSE
DESCRIPTION) entries of the name table.

The source of truth for this check (to determine which license is in use) is a
file placed side-by-side to your font project including the licensing terms.

Depending on the chosen license, one of the following string snippets is
expected to be found on the NameID 13 (LICENSE DESCRIPTION) entries of the name
table:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: License URL matches License text on name table?
--- Rationale ---

A known license URL must be provided in the NameID 14 (LICENSE INFO URL) entry
of the name table.

The source of truth for this check is the licensing text found on the NameID 13
entry (LICENSE DESCRIPTION).

The string snippets used for detecting licensing terms are:
- "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"
- "Licensed under the Apache License, Version 2.0"
- "Licensed under the Ubuntu Font Licence 1.0."


Currently accepted licenses are Apache or Open Font License.
For a small set of legacy families the Ubuntu Font License may be acceptable as
well.

When in doubt, please choose OFL for new font projects.


  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=13] [code: http-in-description]
  • WARN Please consider using HTTPS URLs at name table entry [plat=1, enc=0, name=14] [code: http-in-license-info]
  • WARN Please consider using HTTPS URLs at name table entry [plat=3, enc=1, name=14] [code: http-in-license-info]
  • WARN For now we're still accepting http URLs, but you should consider using https instead.
    [code: http]
WARN: Glyphs are similiar to Google Fonts version?
  • com.google.fonts/check/production_glyphs_similarity

  • WARN Following glyphs differ greatly from Google Fonts version: [.notdef, A, Amacron, Aring, Atilde, Dcroat, Eth, Uring, W, ampersand, asterisk, at, bracketleft, bracketright, colon_d_d_colon.liga, copyright, dagger, daggerdbl, dcaron, degree, dollar, dong, eight, eight.dnom, eight.numr, eth, f, five.dnom, five.numr, fiveeighths, four.dnom, four.numr, germandbls, multiply, nine, nine.dnom, nine.numr, one.dnom, one.numr, ordfeminine, ordmasculine, perthousand, quotedbl, registered, sacute, scaron, section, seven.dnom, seven.numr, six, six.dnom, six.numr, tcaron, three, three.dnom, three.numr, threeeighths, threequarters, trademark, two.dnom, two.numr, uni1EA2, uni1EA5, uni1EA7, uni1EB2, uni1EB4, uni1EB6, zero.dnom, zero.numr]

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: scaron Contours detected: 3 Expected: 2
Glyph name: scaron Contours detected: 3 Expected: 2 [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 Lam Bao 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 It seems that Tony Le 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 It seems that Vietanh Nguyen 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 It seems that beGroup Vietnam 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: Are there any misaligned on-curve points?
--- Rationale ---

This test heuristically looks for on-curve points which are close to, but do
not sit on, significant boundary coordinates. For example, a point which has a
Y-coordinate of 1 or -1 might be a misplaced baseline point. As well as the
baseline, the test also checks for points near the x-height (but only for lower
case Latin letters), cap-height, ascender and descender Y coordinates.

Not all such misaligned curve points are a mistake, and sometimes the design
may call for points in locations near the boundaries. As this test is liable to
generate significant numbers of false positives, the test will pass if there
are more than 100 reported misalignments.


  • WARN The following glyphs have on-curve points which have potentially incorrect y coordinates:
    • K: X=563.0,Y=739.0 (should be at cap-height 740?)
    • K: X=614.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=563.0,Y=739.0 (should be at cap-height 740?)
    • uni0136: X=614.0,Y=739.0 (should be at cap-height 740?)
    • f: X=334.0,Y=739.0 (should be at cap-height 740?)
    • uni0123: X=372.0,Y=738.0 (should be at cap-height 740?)
    • scaron: X=240.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=276.0,Y=739.0 (should be at cap-height 740?)
    • scaron: X=379.0,Y=739.0 (should be at cap-height 740?)
    • f_f.liga: X=334.0,Y=739.0 (should be at cap-height 740?) and 31 more. [code: found-misalignments]
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:
    • Uhorn: L<<568.0,263.0>--<640.0,711.0>> -> L<<640.0,711.0>--<645.0,740.0>>
    • ampersand: L<<284.0,408.0>--<307.0,374.0>> -> L<<307.0,374.0>--<473.0,148.0>>
    • ampersand: L<<452.0,120.0>--<279.0,355.0>> -> L<<279.0,355.0>--<252.0,395.0>>
    • hbar: L<<80.0,0.0>--<165.0,530.0>> -> L<<165.0,530.0>--<182.0,638.0>>
    • logicalnot: L<<614.0,530.0>--<609.0,496.0>> -> L<<609.0,496.0>--<575.0,285.0>>
    • onehalf: L<<521.0,23.0>--<622.0,105.0>> -> L<<622.0,105.0>--<639.0,119.0>>
    • thorn: L<<103.0,125.0>--<83.0,0.0>> -> L<<83.0,0.0>--<51.0,-195.0>>
    • thorn: L<<109.0,380.0>--<133.0,530.0>> -> L<<133.0,530.0>--<170.0,760.0>>
    • thorn: L<<17.0,-195.0>--<48.0,0.0>> -> L<<48.0,0.0>--<109.0,380.0>>
    • thorn: L<<204.0,760.0>--<168.0,530.0>> -> L<<168.0,530.0>--<151.0,426.0>> and 10 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:
    • eth: B<<455.0,504.0>-<499.0,468.0>-<522.0,416.0>>/B<<522.0,416.0>-<501.0,508.0>-<448.0,578.0>> = 11.00208501834416
    • nine: B<<502.0,218.5>-<550.0,305.0>-<566.0,404.0>>/B<<566.0,404.0>-<541.0,346.0>-<487.5,299.0>> = 14.137166429128895
    • six.dnom.ss01: L<<224.0,345.0>--<114.0,201.0>>/B<<114.0,201.0>-<138.0,220.0>-<172.0,220.0>> = 14.256707119590262 and six: B<<184.0,519.5>-<136.0,432.0>-<121.0,333.0>>/B<<121.0,333.0>-<145.0,392.0>-<198.0,440.0>> = 13.519843693936245 [code: found-jaggy-segments]

Summary

💔 ERROR 🔥 FAIL ⚠ WARN 💤 SKIP ℹ INFO 🍞 PASS 🔎 DEBUG
0 71 119 528 99 1718 0
0% 3% 5% 21% 4% 68% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • INFO
  • PASS
  • DEBUG

@RosaWagner
Copy link
Contributor

RosaWagner commented Apr 14, 2021

  • No vertical regression on Mac, but some in windows (make vertical metrics the same with use_typo_metrics on)
  • spacing and some glyph width has changed
  • previous version is 4 and now is 2 (needs to be higher)
  • OFL doesn't match the one in upstream repo (the one in upstream repo needs to be corrected)

@RosaWagner RosaWagner added -- Needs confirmation from upstream or onboarder -- Regressions Shows diff with previous published version and removed - Ready for Review labels Apr 14, 2021
@RosaWagner
Copy link
Contributor

RosaWagner commented Apr 14, 2021

Wait, it doesn't make sense cause only "win" metrics has changed between the 2 versions and fsSelection bit 7 is on in both so… the problem may be our diff tool.

Actually, the use_typo_metrics is off. It needs to be on. I thought we had a fontbakery check for that…

@RosaWagner RosaWagner added -- Needs Upstream Resolution Upstream fix required before moving forward and removed -- Needs confirmation from upstream or onboarder labels Apr 16, 2021
@RosaWagner
Copy link
Contributor

@bettergui did you see the review? do you need help to fix the issues?

@bettergui
Copy link
Contributor Author

bettergui commented Apr 20, 2021 via email

@bettergui
Copy link
Contributor Author

Hi Rosa,
Can you help us understand this better?

  • OFL doesn't match the one in upstream repo (the one in upstream repo needs to be corrected)

Does that refer to the "ofl/bevietnam/OFL.txt" file? We made the changes from 2019 to 2021 in that file. Should we revert that file back to 2019?

@bettergui bettergui changed the title Be Vietnam: Version 2.000 added Be Vietnam: Version 5.000 added Apr 24, 2021
@bettergui
Copy link
Contributor Author

Hi, we have addressed these following feedback:

  • No vertical regression on Mac, but some in windows (make vertical metrics the same with use_typo_metrics on)
    -> We flipped use_typo_metrics to ON for all ttf files.
  • previous version is 4 and now is 2 (needs to be higher)
    -> Updated all ttf's and the pull request's versions to 5.
  • OFL doesn't match the one in upstream repo (the one in upstream repo needs to be corrected)
    -> We reverted the change "2021" to "2019" to match the original "ofl/bevietnam/OFL.txt" (is this what you suggested?)
  • spacing and some glyph width has changed
    -> We think this should be expected (WAI) right? because we have spent more time tweaking glyphs and kernings for the Vietnamese language.

@RosaWagner
Copy link
Contributor

RosaWagner commented Apr 26, 2021

Thanks. I'll look at it more closely tomorrow.

For the OFL,

I see this in the OFL.txt from your repo:

Copyright 2021, Gabriel Lam, Yellow Type Foundry.

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
http://scripts.sil.org/OFL

And it should be:

Copyright 2019 The Be Vietnam Project Authors (https://github.com/bettergui/BeVietnam),

This Font Software is licensed under the SIL Open Font License, Version 1.1.
This license is copied below, and is also available with a FAQ at:
https://scripts.sil.org/OFL

The copyright string should be consistent and matching the spec. And then all fonts should have 2019 copyright date. It's also okay-ish if it is 2021, but in that case it should be also consistent everywhere.

@RosaWagner RosaWagner added - Ready for Review and removed -- Needs Upstream Resolution Upstream fix required before moving forward -- Regressions Shows diff with previous published version labels Apr 26, 2021
@RosaWagner
Copy link
Contributor

RosaWagner commented Apr 27, 2021

Will ask for confirmation about line-length regression and design changes, or if we need to onboard it under another name.
Otherwise, QA-wise, LGTM.

Desktop_OS_X_High_Sierra_safari_11 1_

@RosaWagner RosaWagner added the -- Regressions Shows diff with previous published version label Apr 27, 2021
@bettergui
Copy link
Contributor Author

Hi Rosa,
Thanks for pointing out the OFL is inconsistent. We have fixed it: https://github.com/bettergui/BeVietnam/blob/master/OFL.txt

We confirmed the line height change is intentional. We have been collecting user feedback and this 9% adjustment would make most designs using BeVietnam look more natural.

@m4rc1e
Copy link
Collaborator

m4rc1e commented Apr 28, 2021

We confirmed the line height change is intentional. We have been collecting user feedback and this 9% adjustment would make most designs using BeVietnam look more natural.

You can't just change the line height since we don't have a versioned api. You're going to upset existing users.

@yellow-type-foundry
Copy link

@m4rc1e Hi Marc, thanks for the info. We're just concerned that most of the users feedbacks were to change the default line height because currently it's a bit odd and difficult to be aligned inside a button. However, if that is something we cannot undo, then we will revert the line height.

@bettergui
Copy link
Contributor Author

bettergui commented Apr 28, 2021 via email

@davelab6
Copy link
Member

We confirmed the line height change is intentional. We have been collecting user feedback and this 9% adjustment would make most designs using BeVietnam look more natural.

I think there is a lot of personality in the original design, and I recommend we onboard with a new (related) family name.

@davelab6 davelab6 removed the -- Needs manager's opinion from upper level label Apr 29, 2021
@RosaWagner RosaWagner added -- Needs Upstream Resolution Upstream fix required before moving forward and removed -- Regressions Shows diff with previous published version labels Apr 30, 2021
@RosaWagner
Copy link
Contributor

@bettergui @yellow-type-foundry are you okay with the solution of onboarding this version of the font under another name?
In that case, you can have all the changes you want without breaking websites.

@bettergui
Copy link
Contributor Author

We need help.

We want to push for an update instead of a new font family. Our two main goals have been:

  1. To be a universal choice for corporate branding and commercial apps in Vietnam. In the current version released in 2019 on Google Fonts, we made many design mistakes due to inexperience such as stems with unintentionally varied widths or inconsistent shape angles. We appreciate that Dave liked those features as a unique personality but our intention is more towards readability.
  2. To optimize for the Vietnamese language: this has been our main motivation as native Vietnamese designers. For the past two years, we have collected feedback from users of Vietnamese commercial apps such as Be, a ride-hailing app, and popular media brands such as Kenh14. In the current version released in 2019 on Google Fonts, the font family had mainly been tested for shorter texts. The family has not been performing well when applying to more complex scenarios such as onboarding texts or longer messaging. This is an example of how we tweaked the diacritics to balance with each other and their letters:
    example

Our efforts in (2) were the reason why the line height has changed. For the past week, we have spent efforts to tweak the glyphs more to match this new version with the version currently on Google Fonts. We got the line-heights very close now, please check out our latest pull request.

However because line-height is a complex metric that is calculated by both master’s metrics and maxima points, the line-height is slight off due to this one glyph which couldn’t pass the usWinAscent test:
181579998_466302657962571_2029365833559871933_n

                "key": [
                    "<Section: fontbakery.specifications.os2>", 
                    "<FontBakeryCheck:com.google.fonts/check/040>", 

                "logs": [
                    {
                        "message": "OS/2.usWinAscent value should be equal or greater than 1239, but got 1196 instead [code: ascent]", 
                        "status": "FAIL", 

Ideally, we want to have all usWinAscent value to be 1196 (same as the current version on Google Fonts) and allow this particular glyph to overshot. But we haven’t figured out how to do that. Would you be able to help us fix this glyph issue so that the line-height can be exactly the same?

@m4rc1e
Copy link
Collaborator

m4rc1e commented May 7, 2021

I chatted to Dave and Rosa a week ago about this family. We decided a potential solution could be to release the family under a new name such as BeVietnam Pro and delist the family we currently serve. When we delist the family, it won't be removed for existing users. It just means that if you search for BeVietnam on Google Fonts, only the Pro version will be visible to new users. How does that sound?

@bettergui
Copy link
Contributor Author

Hi Marc, Rosa, and Dave,

Thank you all for your thoughts. We have discussed among all the authors and decided to take your suggestion. Please verify these next steps:

  1. We abandon this pull request.
  2. We create a new font family called "Be Vietnam Pro" = a new Github project + new pull request.
  3. You help us delist "Be Vietnam" from Google Fonts homepage and still continue supporting existing users.

By the way, we still appreciate guidance on the FontBakery check above. Is there any possible way to allows a single glyph (Ẳ) to go past the winAscent value without raising the font-height value for the entire family?

@RosaWagner
Copy link
Contributor

@bettergui in recent environments, and since you enabled the use_typo_metrics parameter, winAscent and winDescent are only used to avoid clipping effect in web browsers. Therefore, I don't see what would go against increasing the value of winAscent for this new version. As long as typo and hhea metrics don't move, it won't change the linespacing. Although, since we are onboarding this family, you can choose different metrics from the old version, it won't break the websites that are using it.

@bettergui
Copy link
Contributor Author

Woot! You fixed it! I overwrote the usWinAscent value using ttx and it worked. Linespacing was unchanged exactly as you said.

I knew a new family wouldn't need to match the metrics but I just wanted to fully understand this topic. Good call about enabling use_typo_metrics, I had been confused about the three competing vertical metrics. Only recently, I found an article by Erwin Denissen about using the flag above to overcome these compatibility issues. How did you get to know linespacing so well? Do you recommend any readings, Rosa?

New PR for new family will come up shortly.

@RosaWagner
Copy link
Contributor

@bettergui this tuto give some insight : https://glyphsapp.com/learn/vertical-metrics
Unfortunately, I don't have access anymore to the document that was given to me at my previous job (it was the most helpful).

So then I close this PR, and we wait for the new one you will open.

@RosaWagner RosaWagner closed this May 13, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
-- Needs Upstream Resolution Upstream fix required before moving forward I Font Upgrade
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Update Be Vietnam family
5 participants