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

IBM Plex Sans Arabic: Version 1.101 added #8475

Merged
merged 1 commit into from
Nov 14, 2024

Conversation

yanone
Copy link
Collaborator

@yanone yanone commented Nov 8, 2024

Taken from the upstream repo https://github.com/googlefonts/plex at commit googlefonts/plex@e80bf92.

Resolves #7611

PR Checklist:

  • primary_script definition in the METADATA.pb file for all projects that have a primary non-Latin based language support target
  • Diffenator2 regression checks for revisions on all projects that are currently in production

@yanone
Copy link
Collaborator Author

yanone commented Nov 8, 2024

Expect tons of fails here. I already fixed the most important ones regarding vmetrics and name table. The rest we intend to leave it as IBM has made them. We have done the same for all previous IBM Plex fonts.

I checked the regressions. They are mostly progressions, like newly introduced ligatures and kerning which affects the metrics quite a bit but are all better in the new version, so we should accept that.

Copy link

github-actions bot commented Nov 8, 2024

FontBakery report

fontbakery version: 0.13.0a4

Check results

[2] Family checks
🔥 FAIL Fonts have consistent underline thickness?
  • 🔥 FAIL

    Thickness of the underline is not the same across this family. In order to fix this, please make sure that the underlineThickness value is the same in the 'post' table of all of this family font files.
    Detected underlineThickness values are:
    ofl/ibmplexsansarabic/IBMPlexSansArabic-Medium.ttf: 77
    ofl/ibmplexsansarabic/IBMPlexSansArabic-Light.ttf: 43
    ofl/ibmplexsansarabic/IBMPlexSansArabic-Regular.ttf: 60
    ofl/ibmplexsansarabic/IBMPlexSansArabic-Thin.ttf: 16
    ofl/ibmplexsansarabic/IBMPlexSansArabic-SemiBold.ttf: 88
    ofl/ibmplexsansarabic/IBMPlexSansArabic-ExtraLight.ttf: 26
    ofl/ibmplexsansarabic/IBMPlexSansArabic-Bold.ttf: 100


    [code: inconsistent-underline-thickness]
ℹ️ INFO Check axis ordering on the STAT table.
  • ℹ️ INFO

    All of the fonts lack a STAT table.


    [code: summary]
[34] IBMPlexSansArabic-Medium.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- fourdotscenterar

- foururducenterar

- 11 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* uni0643 (U+0643): L<<46.0,113.0>--<494.0,114.0>>

* uni06AC (U+06AC): L<<46.0,113.0>--<494.0,114.0>>

* uni06AD (U+06AD): L<<46.0,113.0>--<494.0,114.0>>

* uni06AE (U+06AE): L<<46.0,113.0>--<494.0,114.0>>

* uni077F (U+077F): L<<46.0,113.0>--<494.0,114.0>>

* uniFED9 (U+FED9): L<<46.0,113.0>--<494.0,114.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-Medium.ttf
Dehinted Size 172.9kb
Hinted Size 236.4kb
Increase 63.5kb
Change 36.7 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[33] IBMPlexSansArabic-Light.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- hamzacenterar

- jacute

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-Light.ttf
Dehinted Size 169.7kb
Hinted Size 233.0kb
Increase 63.3kb
Change 37.3 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[33] IBMPlexSansArabic-Regular.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- hamzacenterar

- jacute

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-Regular.ttf
Dehinted Size 168.1kb
Hinted Size 230.4kb
Increase 62.3kb
Change 37.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[33] IBMPlexSansArabic-Thin.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- hamzacenterar

- jacute

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-Thin.ttf
Dehinted Size 169.0kb
Hinted Size 236.5kb
Increase 67.5kb
Change 39.9 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[34] IBMPlexSansArabic-SemiBold.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- fourdotscenterar

- foururducenterar

- 11 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* uniFDF4 (U+FDF4): L<<819.0,5.0>--<820.0,-126.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-SemiBold.ttf
Dehinted Size 173.1kb
Hinted Size 238.9kb
Increase 65.8kb
Change 38.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[34] IBMPlexSansArabic-ExtraLight.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Combined length of family and style must not exceed 32 characters.
  • ⚠️ WARN

    Name ID 6 'IBMPlexSansArabic-ExtraLight' exceeds 27 characters. This has been found to cause problems with PostScript printers, especially on Mac platforms.


    [code: nameid6-too-long]
⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- hamzacenterar

- jacute

- 6 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-ExtraLight.ttf
Dehinted Size 169.8kb
Hinted Size 236.0kb
Increase 66.2kb
Change 39.0 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]
[34] IBMPlexSansArabic-Bold.ttf
💥 ERROR Shapes languages in all GF glyphsets.
  • 💥 ERROR

    Failed with AttributeError: 'NoneType' object has no attribute 'get'

  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checkrunner.py", line 213, in _run_check
    subresults = list(subresults)
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/fontbakery/checks/vendorspecific/googlefonts/glyphset.py", line 140, in check_glyphsets_shape_languages
    reporter = shaperglot_checker.check(shaperglot_languages[language_code])
  File "/opt/hostedtoolcache/Python/3.10.15/x64/lib/python3.10/site-packages/shaperglot/checker.py", line 54, in check
    for check_object in self.lang.get("shaperglot_checks", []):

[code: failed-check]

🔥 FAIL Check that glyph for U+0675 ARABIC LETTER HIGH HAMZA is not a mark.
  • 🔥 FAIL

    The arabic letter high hamza (U+0675) should have roughly the same size the arabic letter hamza (U+0621), but a different glyph outline area was detected.


    [code: glyph-area]
🔥 FAIL Check that Arabic spacing symbols U+FBB2–FBC1 aren't classified as marks.
  • 🔥 FAIL

    "uniFBB2" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB3" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB4" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB5" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB6" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB7" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB8" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBB9" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBA" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBB" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBD" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBE" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBBF" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

  • 🔥 FAIL

    "uniFBC1" is defined in GDEF as a mark (class 3).


    [code: mark-in-gdef]

🔥 FAIL Ensure the font supports case swapping for all its glyphs.
  • 🔥 FAIL

    The following glyphs lack their case-swapping counterparts:

Glyph present in the font Missing case-swapping counterpart
U+0110: LATIN CAPITAL LETTER D WITH STROKE U+0111: LATIN SMALL LETTER D WITH STROKE
U+0135: LATIN SMALL LETTER J WITH CIRCUMFLEX U+0134: LATIN CAPITAL LETTER J WITH CIRCUMFLEX
[code: missing-case-counterparts]
🔥 FAIL Ensure smart dropout control is enabled in "prep" table instructions.
  • 🔥 FAIL

    The 'prep' table does not contain TrueType instructions enabling smart dropout control. To fix, export the font with autohinting enabled, or run ttfautohint on the font, or run the gftools fix-nonhinting script.


    [code: lacks-smart-dropout]
🔥 FAIL Are there unwanted tables?
  • 🔥 FAIL

    The following unwanted font tables were found:

  • DSIG - This font has a digital signature (DSIG table) which is only required - even if only a placeholder - on old programs like MS Office 2013 in order to work properly. The current recommendation is to completely remove the DSIG table.

They can be removed with the 'fix-unwanted-tables' script provided by gftools.

[code: unwanted-tables]
🔥 FAIL Does DESCRIPTION file contain a upstream Git repo URL?
  • 🔥 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 Copyright notices match canonical pattern in fonts
  • 🔥 FAIL

    Name Table entry: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
  • 🔥 FAIL

    METADATA.pb: Copyright notices should match a pattern similar to:

"Copyright 2020 The Familyname Project Authors (git url)"

But instead we have got:

"Copyright 2019 IBM Corp. All rights reserved."

[code: bad-notice-format]
🔥 FAIL Check license file has good copyright string.
  • 🔥 FAIL

    First line in license file is:

"copyright © 2017 ibm corp. with reserved font name "plex""

which does not match the expected format, similar to:

"Copyright 2022 The Familyname Project Authors (git url)"

[code: bad-format]
🔥 FAIL Ensure dotted circle glyph is present and can attach marks.
  • 🔥 FAIL

    The following glyphs could not be attached to the dotted circle glyph:

- uni0300

- uni0301

- uni0302

- uni0303

- uni0304

- uni0307

- uni0308

- uni030A

- uni030B

- uni030C

- 5 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unattached-dotted-circle-marks]
⚠️ WARN Check GDEF mark glyph class doesn't have characters that are not marks.
  • ⚠️ WARN

    The following non-mark characters should not be in the GDEF mark glyph class:
    U+FBB2, U+FBB3, U+FBB4, U+FBB5, U+FBB6, U+FBB7, U+FBB8, U+FBB9, U+FBBA, U+FBBB and 4 more.

Use -F or --full-lists to disable shortening of long lists.

[code: non-mark-chars]
⚠️ WARN Check if each glyph has the recommended amount of contours.
  • ⚠️ 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: uni00AD	Contours detected: 1	Expected: 0
  • Glyph name: uni20A8 Contours detected: 2 Expected: 3

  • Glyph name: fi Contours detected: 2 Expected: 3

  • Glyph name: uni00AD Contours detected: 1 Expected: 0


[code: contour-count]

⚠️ WARN Are there caret positions declared for every ligature?
  • ⚠️ WARN

    This font lacks caret position values for ligature glyphs on its GDEF table.


    [code: lacks-caret-pos]
⚠️ WARN Is there kerning info for non-ligated sequences?
  • ⚠️ WARN

    GPOS table lacks kerning info for the following non-ligated sequences:

- f + i

[code: lacks-kern-info]

⚠️ WARN Does the font contain a soft hyphen?
  • ⚠️ WARN

    This font has a 'Soft Hyphen' character.


    [code: softhyphen]
⚠️ WARN Check font contains no unreachable glyphs
  • ⚠️ WARN

    The following glyphs could not be reached by codepoint or substitution rules:

- comp.barar

- comp.doublebarar

- comp.foururduar

- comp.threedotsdown

- comp.twodotsvertical

- comp.var

- comp.vinvertedar

- comp.wavyhamzaar

- fourdotscenterar

- foururducenterar

- 11 more.

Use -F or --full-lists to disable shortening of long lists.

[code: unreachable-glyphs]
⚠️ WARN Glyph names are all valid?
  • ⚠️ WARN

    The following glyph names may be too long for some legacy systems which may expect a maximum 31-characters length limit:
    alefMaksura_jehar.fina.rlig.short and alefMaksura_zainar.fina.rlig.short


    [code: legacy-long-names]
⚠️ WARN Validate size, and resolution of article images, and ensure article page has minimum length and includes visual assets.
  • ⚠️ WARN

    Family metadata at ofl/ibmplexsansarabic does not have an article.


    [code: lacks-article]
⚠️ WARN Check for codepoints not covered by METADATA subsets.
  • ⚠️ WARN

    The following codepoints supported by the font are not covered by
    any subsets defined in the font's metadata file, and will never
    be served. You can solve this by either manually adding additional
    subset declarations to METADATA.pb, or by editing the glyphset
    definitions.

  • U+02D8 BREVE: try adding one of: canadian-aboriginal, yi
  • U+02D9 DOT ABOVE: try adding one of: canadian-aboriginal, yi
  • U+02DB OGONEK: try adding one of: canadian-aboriginal, yi
  • U+0302 COMBINING CIRCUMFLEX ACCENT: try adding one of: math, coptic, cherokee, tifinagh
  • U+0307 COMBINING DOT ABOVE: try adding one of: math, hebrew, duployan, coptic, syriac, tai-le, malayalam, tifinagh, canadian-aboriginal, old-permic, todhri
  • U+030A COMBINING RING ABOVE: try adding one of: syriac, duployan
  • U+030B COMBINING DOUBLE ACUTE ACCENT: try adding one of: osage, cherokee
  • U+030C COMBINING CARON: try adding one of: cherokee, tai-le
  • U+0315 COMBINING COMMA ABOVE RIGHT: try adding math
  • U+0327 COMBINING CEDILLA: try adding math 82 more.

Use -F or --full-lists to disable shortening of long lists.

Or you can add the above codepoints to one of the subsets supported by the font: arabic, cyrillic-ext, latin, latin-ext, menu

[code: unreachable-subsetting]
⚠️ WARN DESCRIPTION.en_us.html should end in a linebreak.
  • ⚠️ WARN

    The last characther on DESCRIPTION.en_us.html is not a line-break. Please add it.


    [code: missing-eof-linebreak]
⚠️ WARN Check OFL body text is correct.

Lines changed:

+ \n

- This license is copied below, and is also available with a FAQ at:\n

+ This license is copied below, and is also available with a FAQ at: https://openfontlicense.org\n

- https://openfontlicense.org\n

[code: incorrect-ofl-body-text]
⚠️ WARN Check copyright namerecords match license file.
⚠️ WARN License URL matches License text on name table?
  • ⚠️ 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=3, enc=1, 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 Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.
  • ⚠️ WARN

    The dot of soft dotted characters should disappear in other cases, for example: ĩ̧ ī̧ i̧̇ i̧̊ i̧̋ ǐ̧ į̃ į̄ į̇ į̊ į̋ į̌ j̧̀ j̧́ j̧̃ j̧̄ j̧̇ j̧̈ j̧̊ j̧̋

Your font fully covers the following languages that require the soft-dotted feature: Lithuanian (Latn, 2,357,094 speakers), Dutch (Latn, 31,709,104 speakers).

Your font does not cover the following languages that require the soft-dotted feature: Avokaya (Latn, 100,000 speakers), Southern Tutchone (Latn, 65 speakers), Kaska (Latn, 125 speakers), Southern Kisi (Latn, 360,000 speakers), Northern Tutchone (Latn, 85 speakers), Ijo, Southeast (Latn, 2,471,000 speakers), Longto (Latn, 5,000 speakers), Mango (Latn, 77,000 speakers), Ejagham (Latn, 120,000 speakers), Dan (Latn, 1,099,244 speakers), South Central Banda (Latn, 244,000 speakers), Abua (Latn, 25,000 speakers), Koonzime (Latn, 40,000 speakers), Kom (Latn, 360,685 speakers), Kpelle, Guinea (Latn, 622,000 speakers), Igbo (Latn, 27,823,640 speakers), Mfumte (Latn, 79,000 speakers), Sar (Latn, 500,000 speakers), Basaa (Latn, 332,940 speakers), Keliko (Latn, 63,000 speakers), Yala (Latn, 200,000 speakers), Han (Latn, 6 speakers), Gulay (Latn, 250,478 speakers), Ikwere (Latn, 717,000 speakers), Zapotec (Latn, 490,000 speakers), Teke-Ebo (Latn, 260,000 speakers), Dii (Latn, 71,000 speakers), Nateni (Latn, 100,000 speakers), Western Krahn (Latn, 97,800 speakers), Belarusian (Cyrl, 10,064,517 speakers), Navajo (Latn, 166,319 speakers), Vute (Latn, 21,000 speakers), Ekpeye (Latn, 226,000 speakers), Cicipu (Latn, 44,000 speakers), Aghem (Latn, 38,843 speakers), Lugbara (Latn, 2,200,000 speakers), Makaa (Latn, 221,000 speakers), Mundani (Latn, 34,000 speakers), Bete-Bendi (Latn, 100,000 speakers), Ebira (Latn, 2,200,000 speakers), Ma’di (Latn, 584,000 speakers), Nzakara (Latn, 50,000 speakers), Fur (Latn, 1,230,163 speakers), Heiltsuk (Latn, 300 speakers), Ngbaka (Latn, 1,020,000 speakers), Ukrainian (Cyrl, 29,273,587 speakers), Bafut (Latn, 158,146 speakers).

[code: soft-dotted]
⚠️ WARN Do outlines contain any semi-vertical or semi-horizontal lines?
  • ⚠️ WARN

    The following glyphs have semi-vertical/semi-horizontal lines:

* uniFDF4 (U+FDF4): L<<835.0,7.0>--<836.0,-143.0>>

[code: found-semi-vertical]

⚠️ WARN Is the Grid-fitting and Scan-conversion Procedure ('gasp') table set to optimize rendering?
  • ℹ️ INFO

    These are the ppm ranges declared on the gasp table:

PPM <= 8: flag = 0x0A - Use grayscale rendering - Use smoothing along multiple axes with ClearType® PPM <= 16: flag = 0x07 - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing PPM <= 65535: flag = 0x0F - Use grid-fitting - Use grayscale rendering - Use gridfitting with ClearType symmetric smoothing - Use smoothing along multiple axes with ClearType®

[code: ranges]
  • ⚠️ WARN

    The gasp table has a range of 8 that may be unneccessary.


    [code: non-ffff-range]

  • ⚠️ WARN

    The gasp table has a range of 16 that may be unneccessary.


    [code: non-ffff-range]

ℹ️ INFO List all superfamily filepaths
  • ℹ️ INFO

    ofl/ibmplexsansarabic


    [code: family-path]
ℹ️ INFO Show hinting filesize impact.
  • ℹ️ INFO

    Hinting filesize impact:

ofl/ibmplexsansarabic/IBMPlexSansArabic-Bold.ttf
Dehinted Size 172.4kb
Hinted Size 241.2kb
Increase 68.8kb
Change 39.9 %
[code: size-impact]
ℹ️ INFO Font contains all required tables?
  • ℹ️ INFO

    This font contains the following optional tables:

- cvt 

- fpgm

- loca

- prep

- GPOS

- GSUB

- gasp

[code: optional-tables]

ℹ️ INFO METADATA.pb: Validate family.minisite_url field.
  • ℹ️ INFO

    Please consider adding a family.minisite_url entry.


    [code: lacks-minisite-url]
ℹ️ INFO Check for presence of an ARTICLE.en_us.html file
  • ℹ️ INFO

    This font doesn't have an ARTICLE.en_us.html file.


    [code: missing-article]
ℹ️ INFO EPAR table present in font?
ℹ️ INFO Ensure fonts have ScriptLangTags declared on the 'meta' table.
  • ℹ️ INFO

    Arab


    [code: dlng-tag]

  • ℹ️ INFO

    Arab, Latn


    [code: slng-tag]

ℹ️ INFO Font has old ttfautohint applied?
  • ℹ️ INFO

    Could not detect which version of ttfautohint was used in this font. It is typically specified as a comment in the font version entries of the 'name' table. Such font version strings are currently: ['Version 1.101']


    [code: version-not-detected]

Summary

💥 ERROR ☠ FATAL 🔥 FAIL ⚠️ WARN ⏩ SKIP ℹ️ INFO ✅ PASS 🔎 DEBUG
7 0 64 109 429 57 990 0
0% 0% 4% 7% 26% 3% 60% 0%

Note: The following loglevels were omitted in this report:

  • SKIP
  • PASS
  • DEBUG

@vv-monsalve
Copy link
Collaborator

I checked the regressions. They are mostly _pro_gressions, like newly introduced ligatures and kerning which affects the metrics quite a bit but are all better in the new version, so we should accept that.

Hi @yanone, this is probably part of what you are saying here but not being an expert in Arabic I prefer to confirm these are the expected changes here :)

Regular

Diff-IbmArabicPlex

Bold

Diff-IbmArabicPlex-Bold

@vv-monsalve vv-monsalve added the -- Needs confirmation from upstream or onboarder label Nov 14, 2024
@yanone
Copy link
Collaborator Author

yanone commented Nov 14, 2024

Yes, those are exactly the ligatures they added. These are expected changes. And that one letter in the upper line was just wrong entirely.

@vv-monsalve vv-monsalve removed the -- Needs confirmation from upstream or onboarder label Nov 14, 2024
@vv-monsalve
Copy link
Collaborator

Excellent! Thanks for the confirmation.

@vv-monsalve vv-monsalve merged commit 27bbb56 into main Nov 14, 2024
7 of 8 checks passed
@vv-monsalve vv-monsalve deleted the gftools_packager_ofl_ibmplexsansarabic branch November 14, 2024 14:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
Status: In Dev / PR Merged
Development

Successfully merging this pull request may close these issues.

IBM Plex Sans Arabic issue with Tashkeel
2 participants