Просмотр исходного кода

resolve and document fontbakery FAILs

Stephen Nixon 6 лет назад
Родитель
Сommit
6ee86a64b8

+ 30 - 14
FiraCode.glyphs

@@ -234,11 +234,11 @@ capHeight = 1374;
 customParameters = (
 {
 name = typoAscender;
-value = 1870;
+value = 1980;
 },
 {
 name = typoDescender;
-value = -530;
+value = -644;
 },
 {
 name = typoLineGap;
@@ -246,19 +246,19 @@ value = 0;
 },
 {
 name = winAscent;
-value = 1870;
+value = 2164;
 },
 {
 name = winDescent;
-value = 530;
+value = 1000;
 },
 {
 name = hheaAscender;
-value = 1870;
+value = 1980;
 },
 {
 name = hheaDescender;
-value = -530;
+value = -644;
 },
 {
 name = hheaLineGap;
@@ -300,11 +300,11 @@ capHeight = 1386;
 customParameters = (
 {
 name = typoAscender;
-value = 1870;
+value = 1980;
 },
 {
 name = typoDescender;
-value = -530;
+value = -644;
 },
 {
 name = typoLineGap;
@@ -312,19 +312,19 @@ value = 0;
 },
 {
 name = winAscent;
-value = 1870;
+value = 2164;
 },
 {
 name = winDescent;
-value = 530;
+value = 1000;
 },
 {
 name = hheaAscender;
-value = 1870;
+value = 1980;
 },
 {
 name = hheaDescender;
-value = -530;
+value = -644;
 },
 {
 name = hheaLineGap;
@@ -107244,6 +107244,10 @@ name = "Remove Features";
 value = (
 cpsp
 );
+},
+{
+name = weightClass;
+value = 300;
 }
 );
 interpolationWeight = 62;
@@ -107260,6 +107264,10 @@ name = "Remove Features";
 value = (
 cpsp
 );
+},
+{
+name = weightClass;
+value = 400;
 }
 );
 interpolationWeight = 84;
@@ -107270,11 +107278,10 @@ instanceInterpolations = {
 name = Regular;
 },
 {
-exports = 0;
 customParameters = (
 {
 name = weightClass;
-value = 900;
+value = 450;
 },
 {
 name = "Remove Features";
@@ -107289,6 +107296,7 @@ instanceInterpolations = {
 "B67F0F2D-EC95-4CB8-966E-23AE86958A69" = 0.64583;
 };
 name = Retina;
+weightClass = Normal;
 },
 {
 customParameters = (
@@ -107297,6 +107305,10 @@ name = "Remove Features";
 value = (
 cpsp
 );
+},
+{
+name = weightClass;
+value = 500;
 }
 );
 interpolationWeight = 112;
@@ -107334,6 +107346,10 @@ name = "Remove Features";
 value = (
 cpsp
 );
+},
+{
+name = weightClass;
+value = 700;
 }
 );
 interpolationWeight = 158;

BIN
distr/ttf/FiraCode-Bold.ttf


BIN
distr/ttf/FiraCode-Light.ttf


BIN
distr/ttf/FiraCode-Medium.ttf


BIN
distr/ttf/FiraCode-Regular.ttf


BIN
distr/ttf/FiraCode-Retina.ttf


BIN
distr/variable_ttf/FiraCode-VF.ttf


+ 0 - 57
distr/variable_ttf/FiraCode-VF.ttx

@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="3.32">
-
-  <OS_2>
-    <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
-         will be recalculated by the compiler -->
-    <version value="4"/>
-    <xAvgCharWidth value="600"/>
-    <usWeightClass value="400"/>
-    <usWidthClass value="5"/>
-    <fsType value="00000000 00000000"/>
-    <ySubscriptXSize value="650"/>
-    <ySubscriptYSize value="600"/>
-    <ySubscriptXOffset value="0"/>
-    <ySubscriptYOffset value="75"/>
-    <ySuperscriptXSize value="650"/>
-    <ySuperscriptYSize value="600"/>
-    <ySuperscriptXOffset value="0"/>
-    <ySuperscriptYOffset value="350"/>
-    <yStrikeoutSize value="50"/>
-    <yStrikeoutPosition value="315"/>
-    <sFamilyClass value="0"/>
-    <panose>
-      <bFamilyType value="0"/>
-      <bSerifStyle value="0"/>
-      <bWeight value="0"/>
-      <bProportion value="0"/>
-      <bContrast value="0"/>
-      <bStrokeVariation value="0"/>
-      <bArmStyle value="0"/>
-      <bLetterForm value="0"/>
-      <bMidline value="0"/>
-      <bXHeight value="0"/>
-    </panose>
-    <ulUnicodeRange1 value="11100000 00000000 00000010 11101111"/>
-    <ulUnicodeRange2 value="01010010 00000000 11111000 11111011"/>
-    <ulUnicodeRange3 value="00000000 00000000 00000000 00001000"/>
-    <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
-    <achVendID value="CTDB"/>
-    <fsSelection value="00000000 11000000"/>
-    <usFirstCharIndex value="13"/>
-    <usLastCharIndex value="65535"/>
-    <sTypoAscender value="935"/>
-    <sTypoDescender value="-265"/>
-    <sTypoLineGap value="0"/>
-    <usWinAscent value="935"/>
-    <usWinDescent value="265"/>
-    <ulCodePageRange1 value="01100000 00000000 00000000 10011111"/>
-    <ulCodePageRange2 value="11011111 11010111 00000000 00000000"/>
-    <sxHeight value="525"/>
-    <sCapHeight value="687"/>
-    <usDefaultChar value="0"/>
-    <usBreakChar value="32"/>
-    <usMaxContext value="5"/>
-  </OS_2>
-
-</ttFont>

+ 13 - 14
googlefonts-qa/checks/FiraCode-Light.checks.md

@@ -267,11 +267,10 @@ But instead we have got: 'Copyright 2012-2015 The Mozilla Foundation, Telefonica
 
 </details>
 <details>
-<summary>🔥 <b>FAIL:</b> Checking OS/2 usWinAscent & usWinDescent.</summary>
+<summary>🔥 <b>FAIL:</b> Variable font weight coordinates must be multiples of 100.</summary>
 
-* [com.google.fonts/check/family/win_ascent_and_descent](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/win_ascent_and_descent)
-* 🔥 **FAIL** OS/2.usWinAscent value should be equal or greater than 2100, but got 1870 instead [code: ascent]
-* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 1000, but got 530 instead [code: descent]
+* [com.google.fonts/check/varfont_weight_instances](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont_weight_instances)
+* 🔥 **FAIL** Found an variable font instance with 'wght'=450.0. This should instead be a multiple of 100.
 
 </details>
 <details>
@@ -444,9 +443,9 @@ But instead we have got: 'Copyright 2012-2015 The Mozilla Foundation, Telefonica
 
 |  | FiraCode-Light.ttf |
 |:--- | ---:|
-| Dehinted Size | 238.0kb |
+| Dehinted Size | 238.1kb |
 | Hinted Size | 236.1kb |
-| Increase | -1996 bytes |
+| Increase | -1992 bytes |
 | Change   | -0.8 % |
 
 
@@ -494,7 +493,7 @@ The version string must ideally include a git commit hash and either a 'dev' or
 <summary>ℹ <b>INFO:</b> Font contains all required tables?</summary>
 
 * [com.google.fonts/check/required_tables](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/required_tables)
-* ℹ **INFO** This font contains the following optional tables [GPOS, gasp, DSIG, loca, GSUB, prep]
+* ℹ **INFO** This font contains the following optional tables [GSUB, loca, GPOS, DSIG, gasp, prep]
 * 🍞 **PASS** Font contains all required tables.
 
 </details>
@@ -808,6 +807,13 @@ The version string must ideally include a git commit hash and either a 'dev' or
 * [com.google.fonts/check/varfont/has_HVAR](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont/has_HVAR)
 * 🍞 **PASS** This variable font contains an HVAR table.
 
+</details>
+<details>
+<summary>🍞 <b>PASS:</b> Checking OS/2 usWinAscent & usWinDescent.</summary>
+
+* [com.google.fonts/check/family/win_ascent_and_descent](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/win_ascent_and_descent)
+* 🍞 **PASS** OS/2 usWinAscent & usWinDescent values look good!
+
 </details>
 <details>
 <summary>🍞 <b>PASS:</b> Checking OS/2 Metrics match hhea Metrics.</summary>
@@ -850,13 +856,6 @@ The version string must ideally include a git commit hash and either a 'dev' or
 * [com.google.fonts/check/varfont_has_instances](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont_has_instances)
 * 🍞 **PASS** OK
 
-</details>
-<details>
-<summary>🍞 <b>PASS:</b> Variable font weight coordinates must be multiples of 100.</summary>
-
-* [com.google.fonts/check/varfont_weight_instances](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont_weight_instances)
-* 🍞 **PASS** OK
-
 </details>
 <details>
 <summary>🍞 <b>PASS:</b> Checking with ftxvalidator.</summary>

+ 74 - 38
googlefonts-qa/notes/QA-notes.md

@@ -1,36 +1,37 @@
 # QA Notes – checking & polishing Fira Code for Google Fonts
 
-- [ ] autohint static TTFs
+- [x] autohint static TTFs
 
 ## Checks to resolve
 
-
 <details>
-<summary>🔥 <b>FAIL:</b> Variable font weight coordinates must be multiples of 100.</summary>
+<summary>🔥 <b>FAIL:</b> Checking OS/2 usWeightClass.</summary>
 
-* [com.google.fonts/check/varfont_weight_instances](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont_weight_instances)
-* 🔥 **FAIL** Found an variable font instance with 'wght'=450.0. This should instead be a multiple of 100.
+* [com.google.fonts/check/usweightclass](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/usweightclass)
+* 🔥 **FAIL** OS/2 usWeightClass expected value for 'Light' is 300 but this font has 400.
 
 </details>
 
-- (fontmake also started to fail, as "Retina" instance was given a custom param of `weightClass: 900`)
+- [ ] explore to find why this would be happening ... 
+  - Encode Sans gets an OS/2 usWeightClass of `100`, matching its default instance.
 
-- [x] uncheck "Retina" instance as `is active` instance
-- [ ] file issue with FontBakery to ask Dave/Marc about this `450` weight "Retina" instance
+======================================================================================
 
-----------------------------
+## Waiting on others
 
 <details>
-<summary>🔥 <b>FAIL:</b> Checking OS/2 usWinAscent & usWinDescent.</summary>
+<summary>🔥 <b>FAIL:</b> Copyright notices match canonical pattern in fonts</summary>
 
-* [com.google.fonts/check/family/win_ascent_and_descent](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/win_ascent_and_descent)
-* 🔥 **FAIL** OS/2.usWinAscent value should be equal or greater than 1050, but got 935 instead [code: ascent]
-* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 500, but got 265 instead [code: descent]
+* [com.google.fonts/check/font_copyright](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/font_copyright)
+* 🔥 **FAIL** Name Table entry: Copyright notices should match a pattern similar to: 'Copyright 2017 The Familyname Project Authors (git url)'
+But instead we have got: 'Copyright 2012-2015 The Mozilla Foundation, Telefonica S.A., and Nikita Prokopov (https://github.com/tonsky/FiraCode)'
 
 </details>
 
-- [ ] run script to correct vertical metrics, recheck
+- additionally, it's unclear how the original copyright on Fira Mono & Fira Code should best be integrated to credit all designers involved
 
+- [x] file issue on fontbakery (https://github.com/googlefonts/fontbakery/issues/2419)
+- [x] confirm that current approach is fine (https://github.com/google/fonts/issues/1460#issuecomment-476713822) (seems okay, based on Hangouts discussion)
 
 ----------------------------
 
@@ -44,62 +45,97 @@
 * 🔥 **FAIL** Please change the font filename to use one of the following valid suffixes for variable fonts: VF, Italic-VF, Roman-VF
 
 </details>
+
+- [x] ask if/when this is changing (via hangouts) – Marc: "We’ll batch the vfs once they’ve implemented it"
+
+----------------------------
+
+======================================================================================
+
+## Edits and corrected FontBakery checks
+
+
+
 <details>
-<summary>🔥 <b>FAIL:</b> Checking OS/2 usWeightClass.</summary>
+<summary>⚠ <b>WARN:</b> Stricter unitsPerEm criteria for Google Fonts. </summary>
 
-* [com.google.fonts/check/usweightclass](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/usweightclass)
-* 🔥 **FAIL** OS/2 usWeightClass expected value for 'Light' is 300 but this font has 400.
+* [com.google.fonts/check/unitsperem_strict](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/unitsperem_strict)
+* ⚠ **WARN** Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations.
 
 </details>
 
+- [x] scale UPM to 2000
 
-======================================================================================
-
-## Waiting on others
+----------------------------
 
 <details>
-<summary>🔥 <b>FAIL:</b> Copyright notices match canonical pattern in fonts</summary>
+<summary>🔥 <b>FAIL:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
 
-* [com.google.fonts/check/font_copyright](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/font_copyright)
-* 🔥 **FAIL** Name Table entry: Copyright notices should match a pattern similar to: 'Copyright 2017 The Familyname Project Authors (git url)'
-But instead we have got: 'Copyright 2012-2015 The Mozilla Foundation, Telefonica S.A., and Nikita Prokopov (https://github.com/tonsky/FiraCode)'
+* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
+* 🔥 **FAIL** There are 1 strings containing non-ASCII characters in the ASCII-only NAME table entries.
+* ℹ **INFO** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright &#169; 2015 by Nikita Prokopov''
 
 </details>
 
-- additionally, it's unclear how the original copyright on Fira Mono & Fira Code should best be integrated to credit all designers involved
+- [x] remove © symbol
 
-- [x] file issue on fontbakery (https://github.com/googlefonts/fontbakery/issues/2419)
-- [ ] confirm that current approach is fine (https://github.com/google/fonts/issues/1460#issuecomment-476713822)
+----------------------------
+
+<details>
+<summary><b>[31] Family checks</b></summary>
+<details>
+<summary>🔥 <b>FAIL:</b> METADATA.pb: According Google Fonts standards, families should have a Regular style.</summary>
+
+* [com.google.fonts/check/metadata/has_regular](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/metadata/has_regular)
+* 🔥 **FAIL** This family lacks a Regular (style: normal and weight: 400) as required by Google Fonts standards.
+
+</details>
+
+- [x] this issue is already filed with fontbakery (https://github.com/googlefonts/fontbakery/issues/2378)
 
 ----------------------------
 
-======================================================================================
+<details>
+<summary>🔥 <b>FAIL:</b> Checking OS/2 usWinAscent & usWinDescent.</summary>
 
-## Edits and corrected FontBakery checks
+* [com.google.fonts/check/family/win_ascent_and_descent](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/family/win_ascent_and_descent)
+* 🔥 **FAIL** OS/2.usWinAscent value should be equal or greater than 1050, but got 935 instead [code: ascent]
+* 🔥 **FAIL** OS/2.usWinDescent value should be equal or greater than 500, but got 265 instead [code: descent]
 
+</details>
+
+- [x] run script to correct vertical metrics, recheck
+- [x] ~~add issue~~ issue exists to gf-docs to update vertical metrics to recommendation at https://github.com/googlefonts/fontbakery/issues/2164#issuecomment-436595886 (will track / manage separately)
 
 
+----------------------------
+
 <details>
-<summary>⚠ <b>WARN:</b> Stricter unitsPerEm criteria for Google Fonts. </summary>
+<summary>🔥 <b>FAIL:</b> Glyph names are all valid?</summary>
 
-* [com.google.fonts/check/unitsperem_strict](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/unitsperem_strict)
-* ⚠ **WARN** Even though unitsPerEm (1000) in this font is reasonable. It is strongly advised to consider changing it to 2000, since it will likely improve the quality of Variable Fonts by avoiding excessive rounding of coordinates on interpolations.
+* [com.google.fonts/check/valid_glyphnames](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/valid_glyphnames)
+* 🔥 **FAIL** The following glyph names do not comply with naming conventions: ['numbersign_numbersign_numbersign.liga', 'numbersign_numbersign_numbersign_numbersign.liga', 'numbersign_underscore_parenleft.liga', 'backslash_backslash_backslash.rem', 'numbersign_numbersign_numbersign.liga.rem', 'numbersign_numbersign_numbersign_numbersign.liga.rem', 'semicolon_semicolon_semicolon.rem', 'quadrantUpperLeftAndLowerLeftAndLowerRight', 'quadrantUpperLeftAndUpperRightAndLowerLeft', 'quadrantUpperLeftAndUpperRightAndLowerRight', 'quadrantUpperRightAndLowerLeftAndLowerRight', 'whiteSquareWithUpperLeftQuadrant', 'whiteSquareWithLowerLeftQuadrant', 'whiteSquareWithLowerRightQuadrant', 'whiteSquareWithUpperRightQuadrant', 'asciitilde_asciitilde_greater.liga', 'ampersand_ampersand_ampersand.rem', 'asciitilde_asciitilde_asciitilde.rem'] A glyph name may be up to 31 characters in length, must be entirely comprised of characters from the following set: A-Z a-z 0-9 .(period) _(underscore). and must not start with a digit or period. There are a few exceptions such as the special character ".notdef". The glyph names "twocents", "a1", and "_" are all valid, while "2cents" and ".twocents" are not.
 
 </details>
 
-- [x] scale UPM to 2000
+- [x] issue filed at https://github.com/tonsky/FiraCode/issues/730 – I'm guessing this won't cause any real issues on the web fonts.
+    - I'll leave these glyphs as they are for now, and let @tonsky handle it if it seems to be the cause of an actual user issue
 
 ----------------------------
 
 <details>
-<summary>🔥 <b>FAIL:</b> Are there non-ASCII characters in ASCII-only NAME table entries?</summary>
+<summary>🔥 <b>FAIL:</b> Variable font weight coordinates must be multiples of 100.</summary>
 
-* [com.google.fonts/check/name/ascii_only_entries](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/name/ascii_only_entries)
-* 🔥 **FAIL** There are 1 strings containing non-ASCII characters in the ASCII-only NAME table entries.
-* ℹ **INFO** Bad string at [nameID 0, 'utf_16_be']: 'b'Copyright &#169; 2015 by Nikita Prokopov''
+* [com.google.fonts/check/varfont_weight_instances](https://github.com/googlefonts/fontbakery/search?q=com.google.fonts/check/varfont_weight_instances)
+* 🔥 **FAIL** Found an variable font instance with 'wght'=450.0. This should instead be a multiple of 100.
 
 </details>
 
-- [x] remove © symbol
+- (fontmake also started to fail, as "Retina" instance was given a custom param of `weightClass: 900`)
 
+- [x] uncheck "Retina" instance as `is active` instance
+- [x] file issue with FontBakery to ask Dave/Marc about this `450` weight "Retina" instance (https://github.com/googlefonts/fontbakery/issues/2420)- 
+- [x] change if you find a better approach to keep Retina without disrupting builds / Regular weight
+  - To set up the instance in GlyhpsApp such that it exports a font as expected: "Retina" gets a custom parameter of `weightClass: 450`, and a glyphs menu-weight of "Normal." Tested in axis-praxis, it seems to work well. All instances have a `weightClass` custom parameter.
+  
 ----------------------------

Некоторые файлы не были показаны из-за большого количества измененных файлов