laerm0 / Russolo

The Russolo typeface
SIL Open Font License 1.1
10 stars 3 forks source link

Google Fonts QA report #11

Closed m4rc1e closed 4 years ago

m4rc1e commented 4 years ago

Fontbakery report

Fontbakery version: 0.7.18

[1] Family checks
⚠ WARN: Is the command `ftxvalidator` (Apple Font Tool Suite) available? * [com.google.fonts/check/ftxvalidator_is_available](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/ftxvalidator_is_available)
--- Rationale ---

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

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

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

* ⚠ **WARN** ftxvalidator is not available.

[10] Russolo[opsz,wght].ttf
πŸ”₯ FAIL: DESCRIPTION.en_us.html must have less than 1000 bytes. * [com.google.fonts/check/description/max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/description/max_length) * πŸ”₯ **FAIL** DESCRIPTION.en_us.html must have size smaller than 1000 bytes. [code: too-long]
πŸ”₯ FAIL: Variable font weight coordinates must be multiples of 100. * [com.google.fonts/check/varfont_weight_instances](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/varfont_weight_instances)
--- Rationale ---

The named instances on the weight axis of a variable font must have coordinates
that are multiples of 100 on the design space.

* πŸ”₯ **FAIL** Found a variable font instance with 'wght'=275.0. This should instead be a multiple of 100. [code: bad-coordinate] * πŸ”₯ **FAIL** Found a variable font instance with 'wght'=275.0. This should instead be a multiple of 100. [code: bad-coordinate] * πŸ”₯ **FAIL** Found a variable font instance with 'wght'=275.0. This should instead be a multiple of 100. [code: bad-coordinate]
πŸ”₯ FAIL: A static fonts directory with at least two fonts must accompany variable fonts * [com.google.fonts/check/repo/vf_has_static_fonts](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/repo/vf_has_static_fonts)
--- Rationale ---

Variable font family directories kept in the google/fonts git repo must include
a static/ subdir containing static fonts.
These files are meant to be served for users that still lack support for
variable fonts in their web browsers.

* πŸ”₯ **FAIL** Please create a subdirectory called "static/" and include in it static font files. [code: missing]
πŸ”₯ FAIL: Check variable font instances have correct coordinate values * [com.google.fonts/check/varfont_instance_coordinates](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/varfont_instance_coordinates) * πŸ”₯ **FAIL** Instance "10pt ExtraLight" wght value is "275.0". It should be "200.0" [code: bad-coordinate] * πŸ”₯ **FAIL** Instance "24pt ExtraLight" wght value is "275.0". It should be "200.0" [code: bad-coordinate] * πŸ”₯ **FAIL** Instance "72pt ExtraLight" wght value is "275.0". It should be "200.0" [code: bad-coordinate]
πŸ”₯ FAIL: Checking OS/2 Metrics match hhea Metrics. * [com.google.fonts/check/os2_metrics_match_hhea](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/os2_metrics_match_hhea)
--- Rationale ---

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

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

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

* πŸ”₯ **FAIL** OS/2 sTypoDescender (-486) and hhea descent (-526) must be equal. [code: descender]
πŸ”₯ FAIL: Are there unwanted tables? * [com.google.fonts/check/unwanted_tables](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/universal.html#com.google.fonts/check/unwanted_tables)
--- Rationale ---

Some font editors store source data in their own SFNT tables, and these can
sometimes sneak into final release files, which should only have OpenType spec
tables.

* πŸ”₯ **FAIL** The following unwanted font tables were found: Table: MVAR Reason: Produces a bug in DirectWrite which causes https://bugzilla.mozilla.org/show_bug.cgi?id=1492477, https://github.com/google/fonts/issues/2085 They can be removed with the gftools fix-unwanted-tables script.
πŸ”₯ FAIL: Check glyphs do not have duplicate components which have the same x,y coordinates. * [com.google.fonts/check/glyf_non_transformed_duplicate_components](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/glyf.html#com.google.fonts/check/glyf_non_transformed_duplicate_components)
--- Rationale ---

There has been cases in which fonts had faulty double quote marks, with each of
them containing two single quote marks as components with the same x, y
coordinates which makes them visually look like single quote marks.

This check ensures that glyphs do not contain duplicate components which have
the same x,y coordinates.

* πŸ”₯ **FAIL** The following glyphs have duplicate components which have the same x,y coordinates: * {'glyph': 'uni2052', 'component': 'bullet', 'x': 0, 'y': 0} [code: found-duplicates]
⚠ WARN: Is there kerning info for non-ligated sequences? * [com.google.fonts/check/kerning_for_non_ligated_sequences](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/kerning_for_non_ligated_sequences)
--- Rationale ---

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

* ⚠ **WARN** GPOS table lacks kerning info for the following non-ligated sequences: - f + f - f + i - i + f - f + l - l + f - i + l [code: lacks-kern-info]
⚠ WARN: Combined length of family and style must not exceed 27 characters. * [com.google.fonts/check/name/family_and_style_max_length](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/googlefonts.html#com.google.fonts/check/name/family_and_style_max_length)
--- Rationale ---

According to a GlyphsApp tutorial [1], in order to make sure all versions of
Windows recognize it as a valid font file, we must make sure that the
concatenated length of the familyname (NameID.FONT_FAMILY_NAME) and style
(NameID.FONT_SUBFAMILY_NAME) strings in the name table do not exceed 20
characters.

After discussing the problem in more detail at `FontBakery issue #2179 [2] we
decided that allowing up to 27 chars would still be on the safe side, though.

[1]
https://glyphsapp.com/tutorials/multiple-masters-part-3-setting-up-instances
[2] https://github.com/googlefonts/fontbakery/issues/2179

* ⚠ **WARN** The combined length of family and style exceeds 27 chars in the following 'WINDOWS' entries: FONT_FAMILY_NAME = 'Russolo 10pt ExtraLight' / SUBFAMILY_NAME = 'Regular' Please take a look at the conversation at https://github.com/googlefonts/fontbakery/issues/2179 in order to understand the reasoning behind these name table records max-length criteria. [code: too-long]
⚠ WARN: Checking Vertical Metric Linegaps. * [com.google.fonts/check/linegaps](https://font-bakery.readthedocs.io/en/latest/fontbakery/profiles/hhea.html#com.google.fonts/check/linegaps) * ⚠ **WARN** OS/2 sTypoLineGap is not equal to 0. [code: OS/2]

Summary

πŸ’” ERROR πŸ”₯ FAIL ⚠ WARN πŸ’€ SKIP β„Ή INFO 🍞 PASS πŸ”Ž DEBUG
0 7 4 72 8 72 0
0% 4% 2% 44% 5% 44% 0%

Note: The following loglevels were omitted in this report:

Diff images: russolo_qa.zip

laerm0 commented 4 years ago

Okay, great, thank you. So looking at these issues one-by-one:

  1. Description over 1000 bytes, @davelab6 said this is fine (maybe this should be switched to a warn)
  2. Font weight must be 100s: aha, this is switched now officially, cool, fixing.
  3. Static dir needed: There was an issue somewhere on google/fonts where Rod said that since the statics can be generated from the VF, putting the statics online was irrelevant. I'm trying to find it.
  4. See 2
  5. Vert metrics: okay, totally stumped. My masters have identical metrics between hhea and typo, the instances have no metrics specified. Can't figure out where the build changes this.
  6. whoops MVAR
  7. uni0252 isn't in this font; it has bullet at uni2022 and bulletoperator at uni2219 as a composite of bullet. bullet is a real glyph without components and bulletoperator only has the single component.
laerm0 commented 4 years ago

Okay, fixed 2 and 6, new issue with names:

**Check name table: TYPOGRAPHIC_SUBFAMILY_NAME entries.

* πŸ”₯ **FAIL** TYPOGRAPHIC_SUBFAMILY_NAME entry for Win "24pt Regular" must be "Regular". Please note, since the font style is RIBBI, this record can be safely deleted. [code: bad-win-name]*

but screenshot_2020-02-20_12-25-40 so where's the error?

m4rc1e commented 4 years ago

πŸ”₯ FAIL: DESCRIPTION.en_us.html must have less than 1000 bytes.

Ignore

πŸ”₯ FAIL: Variable font weight coordinates must be multiples of 100.

Fix. Probably linked to the ExtraLight being 250

πŸ”₯ FAIL: A static fonts directory with at least two fonts must accompany variable fonts

Ignore. This is an issue with FB.

πŸ”₯ FAIL: Checking OS/2 Metrics match hhea Metrics.

Why not run grep on the dir with the values FB is finding? this should tell you which files you need to modify.

πŸ”₯ FAIL: Are there unwanted tables?

Use gftools fix-unwanted-tables

πŸ”₯ FAIL The following glyphs have duplicate components which have the same x,y coordinates: {'glyph': 'uni2052', 'component': 'bullet', 'x': 0, 'y': 0} [code: found-duplicates]

That glyph is in the font, it is the commercialMinusSign. Remember we're checking binaries so the glyph names may have been converted from human readable names to uni names.

Screenshot 2020-02-21 at 14 56 53

Interestingly the glyph has been marked as non-exportable. I guess fontmake ignores this. If you don't need this glyph, you may as well delete it.

laerm0 commented 4 years ago

Why not run grep on the dir with the values FB is finding? this should tell you which files you need to modify.

Hey, great idea. πŸŽ‰

I'll delete the commercialMinusSign.

Thanks Marc.

m4rc1e commented 4 years ago

Okay, fixed 2 and 6, new issue with names: so where's the error?

Remember these checks are broken for multi axes vfs so I'm rewriting them.

As long as the instances comply to https://gist.github.com/m4rc1e/8f4c4498519e8a36cd54e16a004275cb#instance-names I'm happy.

laerm0 commented 4 years ago

Excellent. Thanks again.

laerm0 commented 4 years ago

Hey @m4rc1e, I now have a clean build except for fontbakery disliking 200 as a weight and the lack of a statics directory.

https://travis-ci.org/laerm0/Russolo/builds/654569964

m4rc1e commented 4 years ago

Thanks!