notofonts / noto-source

Apache License 2.0
582 stars 89 forks source link

build all variable fails #368

Open kkartaltepe opened 3 years ago

kkartaltepe commented 3 years ago

There appear to be a handful of reported failures for variable fonts but it seems even NotoSans is failing now. Are these still supported, it doesnt appear any of the official google distributions (https://www.google.com/get/noto/, https://fonts.google.com/) include the option for variable fonts anymore.

fontmake: Error: In 'src/NotoSans-ItalicMM.glyphs' -> 'master_ufo/NotoSansIV-Italic.designspace': Generating fonts from Designspace failed: fonts contains incompatible glyphs: 'Phi', 'Psi', 'Sigma', 'Theta', 'alpha', 'beta', 'chi', 'delta.sc', 'gamma', 'iota', 'kaiSymbol', 'lambda.sc', 'mu', 'omega', 'phi', 'pi', 'psi', 'tau', 'theta', 'theta.sc', 'upsilon', 'zeta'
khaledhosny commented 3 years ago

Many fonts seem to not build anymore, and CI only builds changed files, so any changes in the pipeline that break unchanged files go unnoticed.

marekjez86 commented 3 years ago

@kkartaltepe : do you use released fontmake or the fontmake included in the noto-source repository... In particular I'd like know if you do

  1. git clone
  2. cd noto-source
  3. ./build setup
  4. ./build src/NotoSans-ItalicMM.glyphs OR ./build variable src/NotoSans-ItalicMM.glyphs

would/did you get this error?

@khaledhosny @kkartaltepe : IMHO, most (all?) of the people who maintain fontmake or any of libraries it uses never test the changes with noto-source. As a result there are fonts that I used to be able to build cannot be built now.... Note that some of the changes are catching legitimate source issues (and they would require a source change to build a font -- e.g., variable NotoSansDevanagari) but I'm not sure what the justification was for some of the changes.

I'd love to make building of noto-source a requirement to test fontmake (or anything that it uses) and I'd expect one of the two outcomes:

  1. new fontmake found and error in a noto-source then a bug should be filed here https://github.com/googlefonts/noto-source/issues/new
  2. fontmake should properly build a noto-source
marekjez86 commented 3 years ago

@kkartaltepe : variable fonts are supported .. see https://github.com/googlefonts/noto-fonts/tree/main/unhinted/variable-ttf OR if you want a consistent (regular through bold) set of variable weight axis only see https://github.com/googlefonts/noto-fonts/tree/main/unhinted/slim-variable-ttf

We are also working on redoing https://www.google.com/get/noto/; you'll see the variable fonts there

khaledhosny commented 3 years ago
1. git clone

2. cd noto-source

3. ./build setup

4. ./build src/NotoSans-ItalicMM.glyphs OR ./build variable src/NotoSans-ItalicMM.glyphs

would/did you get this error?

/build src/NotoSans-ItalicMM.glyphs fails with:

fontmake: Error: In 'src/NotoSans-ItalicMM.glyphs' -> 'master_ufo/NotoSansIV-Italic.designspace': Generating fonts from Designspace failed: Locations must be unique.

while ./build variable src/NotoSans-ItalicMM.glyphs fails with:

ERROR:cu2qu.ufo:Glyphs named 'psi' have incompatible segment types:
   3: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
   7: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  10: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
  16: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
ERROR:cu2qu.ufo:Glyphs named 'Phi' have incompatible segment types:
   3: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
   5: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
   8: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  10: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
  13: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  15: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
ERROR:cu2qu.ufo:Glyphs named 'lambda.sc' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'beta' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'chi' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'mu' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'gamma' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'upsilon' have incompatible segment types:
  2: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  3: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
  6: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  9: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
ERROR:cu2qu.ufo:Glyphs named 'theta' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'iota' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'Psi' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'kaiSymbol' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'tau' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'delta.sc' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'omega' have incompatible segment types:
  2: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
  5: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  6: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
ERROR:cu2qu.ufo:Glyphs named 'alpha' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'pi' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'phi' have incompatible segment types:
   3: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
   6: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
   7: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
   9: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
  10: ('curve', 'line', 'line', 'line', 'line', 'line', 'line', 'line')
  12: ('line', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve', 'curve')
ERROR:cu2qu.ufo:Glyphs named 'Sigma' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'Theta' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'zeta' have different number of segments
ERROR:cu2qu.ufo:Glyphs named 'theta.sc' have different number of segments
fontmake: Error: In 'src/NotoSans-ItalicMM.glyphs' -> 'master_ufo/NotoSansIV-Italic.designspace': Generating fonts from Designspace failed: fonts contains incompatible glyphs: 'Phi', 'Psi', 'Sigma', 'Theta', 'alpha', 'beta', 'chi', 'delta.sc', 'gamma', 'iota', 'kaiSymbol', 'lambda.sc', 'mu', 'omega', 'phi', 'pi', 'psi', 'tau', 'theta', 'theta.sc', 'upsilon', 'zeta'

(both commands produce lots of other warnings before these failures).

This is not the only failing font as well, ./build all fails for many more fonts.

kkartaltepe commented 3 years ago

@kkartaltepe : do you use released fontmake or the fontmake included in the noto-source repository... In particular I'd like know if you do

1. git clone

2. cd noto-source

3. ./build setup

4. ./build src/NotoSans-ItalicMM.glyphs OR ./build variable src/NotoSans-ItalicMM.glyphs

would/did you get this error?

I do not have fontmake installed locally, I assume the included fontmake is being used. I was following the build instructions in the readme, so yes the same 4 steps you outlined but ./build all variable.

./build src/NotoSans-ItalicMM.glyphs and ./build variable src/NotoSans-ItalicMM.glyphs completes successfully on 356962b9a but both fail on d19e3db5ab7f87bfab30b8ecf68601fd81521539. The errors Khaled posted are the ones I see as well.

We are also working on redoing https://www.google.com/get/noto/; you'll see the variable fonts there

Great I look forward to it.

marekjez86 commented 3 years ago

@moyogo : this looks that Irene's work caused some problems in this source repository. Do we have any sources that will build NotoSans (and possibly all other LGC fonts) correctly?

fontmake: Error: In 'src/NotoSans-ItalicMM.glyphs' -> 'master_ufo/NotoSansIV-Italic.designspace': Generating fonts from Designspace failed: fonts contains incompatible glyphs: 'Phi', 'Psi', 'Sigma', 'Theta', 'alpha', 'beta', 'chi', 'delta.sc', 'gamma', 'iota', 'kaiSymbol', 'lambda.sc', 'mu', 'omega', 'phi', 'pi', 'psi', 'tau', 'theta', 'theta.sc', 'upsilon', 'zeta'

moyogo commented 3 years ago

This has been fixed in notofonts/Noto-LatinGreekCyrillic. I'll make a PR so the latest files are here as well.

behdad commented 2 years ago

Should this be closed?

kkartaltepe commented 2 years ago

Feel free to close this if ./build all variable succeeds.

khaledhosny commented 2 years ago

Still failing. Current first failure:

==== building src/NotoMusic.glyphs ====
INFO:fontmake.font_project:Building master UFOs and designspace from Glyphs source
INFO:glyphsLib.classes:Parsing "src/NotoMusic.glyphs" file into <GSFont>
ERROR:ufo2ft.featureWriters:failed to load feature writer: {'class': 'CursFeatureWriter', 'options': {'mode': 'append'}}
Traceback (most recent call last):
  File "/Users/khaled/Development/attic/attic/noto-source/env/lib/python3.9/site-packages/ufo2ft/featureWriters/__init__.py", line 86, in loadFeatureWriters
    klass = getattr(module, className)
AttributeError: module 'ufo2ft.featureWriters' has no attribute 'CursFeatureWriter'
INFO:fontmake.font_project:Building variable font variable_ttf/NotoMusic-Regular-VF.ttf
fontmake: Error: In 'src/NotoMusic.glyphs' -> 'master_ufo/NotoMusic-Regular.designspace': Generating fonts from Designspace failed: Can't find base (neutral) master in DesignSpace document
behdad commented 2 years ago

Still failing. Current first failure:

Yes I noticed that: https://github.com/googlefonts/noto-source/issues/583